创建kudu表_kudu详细架构与入门使用

Kudu是一种分布式列式存储数据库,旨在提供实时写入和更新的同时支持快速数据分析。与HDFS和HBase相比,Kudu弥补了它们在数据更新和实时查询方面的不足。Kudu的基本架构包括Table、Tablet、Tablet Server和Master组件。存储机制中,Tablet由MetaData和RowSet组成,RowSet分为MemRowSet和DiskRowSet,数据以列式存储。Kudu的工作流程包括读取、插入和更新,其中插入和更新涉及WAL日志和DeltMemStore。此外,文章还介绍了如何使用Java API进行Kudu操作,如表创建、数据插入、更新和查询。
摘要由CSDN通过智能技术生成

1、 kudu简介

1.1、kudu是什么?

简单来说:dudu是一个与hbase类似的列式存储分布式数据库。

官方给kudu的定位是:在更新更及时的基础上实现更快的数据分析

1.2、为什么需要kudu?

1.2.1、hdfs与hbase数据存储的缺点

目前数据存储有了HDFS与hbase,为什么还要额外的弄一个kudu呢?

HDFS:使用列式存储格式Apache Parquet,Apache ORC,适合离线分析,不支持单条纪录级别的update操作,随机读写性能差

HBASE:可以进行高效随机读写,却并不适用于基于SQL的数据分析方向,大批量数据获取时的性能较差。

正因为HDFS与HBASE有上面这些缺点,KUDU较好的解决了HDFS与HBASE的这些缺点,它不及HDFS批处理快,也不及HBase随机读写能力强,但是反过来它比HBase批处理快(适用于OLAP的分析场景),而且比HDFS随机读写能力强(适用于实时写入或者更新的场景),这就是它能解决的问题。

架构介绍

2.1、基本架构

48f9fe714270994767aaa8ff98e193ea.png

2.1.1、概念

 Table(表):一张table是数据存储在kudu的位置。Table具有schema和全局有序的primary key(主键)。Table被分为很多段,也就是tablets.

 Tablet (段):一个tablet是一张table连续的segment,与其他数据存储引擎或关系型数据的partition相似。Tablet存在副本机制,其中一个副本为leader tablet。任何副本都可以对读取进行服务,并且写入时需要在所有副本对应的tablet server之间达成一致性。

 Tablet server:存储tablet和为tablet向client提供服务。对于给定的tablet,一个tablet server充当leader,其他tablet server充当该tablet的follower副本。只有leader服务写请求,leader与follower为每个服务提供读请求。

 Master:主要用来管理元数据(元数据存储在只有一个tablet的catalog table中),即tablet与表的基本信息,监听tserver的状态

 Catalog Table: 元数据表,用来存储table(schema、locations、states)与tablet(现有的tablet列表,每个tablet及其副本所处tserver,tablet当前状态以及开始和结束键)的信息。

3、存储机制

3.1 存储结构全景图

04e2e95c0dfe7215b7aaef87e1452464.png

3.2、存储结构解析

 一个Table包含多个Tablet,其中Tablet的数量是根据hash或者range进行设置

 一个Tablet中包含MetaData信息和多个RowSet信息

 一个Rowset中包含一个MemRowSet与0个或多个DiskRowset࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值