kudu大量数据更新_kudu原理与使用

Kudu是一种列式存储的分布式数据库,旨在弥补HDFS和HBase在实时更新和数据分析上的不足。它支持快速的批量处理和随机读写,适用于OLAP分析和实时写入场景。Kudu的架构包括Table、Tablet、Tablet Server和Master,其存储机制包括MemRowSet和DiskRowSet,以及delta Stores的compaction。Kudu的工作机制涉及Master和Tablet Server的角色,以及数据的读、插入和更新流程。
摘要由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、架构介绍

2.1、基本架构

0823e0e850bac1bfbb5430bdaaf2b3e4.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 存储结构全景图

2ab9689d2566120792c120bdadc207b9.png

3.2、存储结构解析一个Table包含多个Tablet,其中Tablet的数量是根据hash或者range进行设置 一个Tablet中包含MetaData信息和多个RowSet信息一个Rowset中包含一个MemRowSet与0个或多个DiskRowset,其中MemRowSet存储insert的数据,一旦MemRowSet写满会flush到磁盘生成一个或多个DiskRowSet,此时MemRowSet清空。MemRowSet默认写满1G或者120s flush一次(注意:memRowSet是行式存储,DiskRowSet是列式存储,MemRowSet基于primary key有序)。每隔tablet中会定期对一些diskrowset做compact

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值