大数据入门-什么是Kudu(3)

1.建普通表

2.建分区表

2.删除表

3.查询数据

4.添加数据

5.更新数据

6.删除数据

7.新增单个分区

8.删除单个分区

9.新增多个分区

10.删除多个分区

11.新增列

12.删除列

13.修改列名

14.分区为多列

1.新建表

2.新增分区

3.删除分区

五、大白话

六、其他

大数据入门系列文章


这里简单介绍的Kudu的一些常见的名词,简单的架构,一些常用的语句。至于后续比较详细的介绍,会单独针对这个组件进行详细介绍,可以关注博客后续阅读。

一、概念

====

Kudu是Cloudera开源的新型列式存储系统,是Apache Hadoop生态圈的成员之一,专门为了对快速变化的数据进行快速的分析,填补了以往Hadoop存储层的空缺。

Kudu提供了更接近于RDBMS的功能和数据模型,提供类似于关系型数据库的存储结构来存储数据,允许用户以和关系型数据库相同的方式插入、更新、删除数据。

Kudu仅仅是一个存储层,它并不存储数据,而是依赖外部的Hadoop处理引擎(MapReduce,Spark,Impala)。Kudu把数据按照自己的列存储格式存储在底层Linux文件系统中。

Kudu中的核心是基于表的存储引擎。Kudu存储自己的元数据(有关表的)信息和用户的数据,保存在Tablet中。

Kudu有Upsert来更新数据,类似于Oracle的Merge。

二、架构

====

与HDFS和HBase相似,Kudu使用单个的Master节点,用来管理集群的元数据,并且使用任意数量的Tablet Server(可对比理解HBase中的RegionServer角色)节点用来存储实际数据。可以部署多个Master节点来提高容错性。一个Table表的数据,被分割成1个或多个Tablet,Tablet被部署在Tablet Server来提供数据读写服务。

1.Master Server


Kudu集群中的老大,可以有多个Master Server提高集群的容错能力,但是只有一个Master Server对外提供服务,负责管理集群和管理元数据。

2.Tablet Server


Kudu集群中的小弟,可以有任意多个,负责存储数据和数据读写。在Tablet Server上存储Tablet,对于一个Tablet,只有其中一个Table Server作为Leader,提供读写服务,其他Table Server都是Follower,只提供读服务。

3.Table


Table: Kudu中的表概念,有Schema和Primary Key概念,Kudu中的表会被水平方向分为多个Tablet片段存储在Tablet Server上。

4.Tablet


一个Tablet是一张表的一个连续片段,Tablet是表的水平分区,Tablet之间的Primary Key范围不会重叠,一张表的所有Tablet片段构成了这张表的所有Primary Key范围。Tablet会冗余存储在多个Tablet Server上设置副本,任何时刻只有一个Tablet Server是Leader,其他都是Follower。

三、特性

====

​​​​​​​

1.重要性


1.大数据分析的复杂性往往是存储系统的局限性带来的,Kudu 的局限性小很多,一定程度使大数据分析变得简单。

2.新的应用场景需要 Kudu,例如越来越多的应用集中在机器生成的数据和实时分析领域。

3.适配新的硬件环境,从而带来更高的性能和应用灵活性。

2.易用性


1.提供了更接近于 RDBMS 的功能和数据模型;

2.提供类似 RDBMS 的库表存储结构;

3.允许用户以和 RDBMS 相同的方式插入、更新和删除数据。

3.优势


Kudu 同时具备了逐行插入、低延迟随机访问、更新和快速分析扫描的能力,使得它在 OLAP 和 OLTP 中都能提供较好的支持,这些原本需要多个存储系统同时支持的复杂架构被替换成只有一个存储系统,所有的数据被存放在这个存储系统里,极大地简化了大数据的架构。

4.与传统关系型数据库比较


1.跟关系型数据库一样,Kudu 表有一个唯一的主键。

2.关系型数据库中常见的特性,比如事务、外键和非主键索引,目前在Kudu中是不支持的。

3.Kudu拥有一些OLAP和OLTP特性,但是缺少对跨行的原子性、一致性、隔离性、持久性事务的支持。

4.Kudu可被归为混合食物/分析处理(Hybrid Transaction/Analytic Processing,HTAP)类型数据库。

5.Kudu支持快速主键检索,并能在数据持续输入的同时进行分析,而 OLAP 数据库在这种场景下性能通常不是很好。

6.Kudu的持久性保证和 OLTP 数据库更为接近。

7.Kudu的Quorum 能力可以实现一种名为Fractured Mirrors的机制,即一个或两个节点使用行存储,另外的节点使用列存储。这样就可以在行存储的节点上执行OLTP类型的查询,在列存储的节点上执行OLAP查询,混合两种负载。

5.与其他大数据组件比较


1.HDFS擅长大规模扫描,但不擅长随机读,严格来说,并不支持随机写,可以通过合并的方式模拟随机写,但成本很高。

2.HBase和Cassandra擅长随机访问,随机读取和修改数据,但大规模扫描性能较差。

3.Kudu的目标是把扫描性能做到HDFS的两倍,而随机读性能接 HBase和Cassandra,实际目标是在SSD上随机读/写的延迟在1ms以内。

四、常用语句

======

1.建表


Kudu建表是需要主键的,主键不能为空。

1.建普通表

create table test.test1 (

date_timekey string not null,

username string null,

product_qty string null

)

stored as kudu

2.建分区表

create table test.test1 (

date_timekey string not null,

username string null,

product_qty string null,

primary key (date_timekey)

)

partition by range (date_timekey) (value=‘20220417’)

stored as kudu

2.删除表


drop table if exists test.test1;

3.查询数据


注意:查询数据的时候,最好是把要查询的列带上,这样可以减少查询的列,减轻查询的Loading。在写SQL的时候,使用指定的列对大数据集群压力更小,系统健壮性更加强。

select date_timekey,username from test.test1

4.添加数据


注意:分区表插入数据之前,一定要先建好分区。

insert into test.test1 (date_timekey,username)values(‘20200330’,‘shuijianshiqing’);

注意:添加的数据主键不能为空,否则数据进去不。

insert into test.test1 (date_timekey,b)values(null,‘shuijianshiqing’);

5.更新数据


upsert into test.test1 (date_timekey,username)values(‘20200330’,‘shuijianshiqing’);

6.删除数据


注意:删除数据时候,不能使用别名删除,比如test.test t,然后条件里面是t.date_timekey,这样数据删除不了。

delete from test.test1 where date_timekey=‘20200328’;

7.新增单个分区


alter table test.test1 add range partition value=‘20200325’;

8.删除单个分区


alter table test.test1 drop range partition value=‘20200325’;

9.新增多个分区


alter table test.test1 add range partition ‘20200327’<=values<‘20200331’;

10.删除多个分区


alter table test.test1 drop range partition ‘20200327’<=values<‘20200331’;

11.新增列


自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数大数据工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)
img

因此收集整理了一份《2024年大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
[外链图片转存中…(img-8WnDURxR-1712888885589)]
[外链图片转存中…(img-7BqOwemz-1712888885590)]
[外链图片转存中…(img-yySV0oeC-1712888885590)]
[外链图片转存中…(img-o4WxxQuf-1712888885590)]
[外链图片转存中…(img-4XuHfObG-1712888885591)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)
[外链图片转存中…(img-lrmBhyrF-1712888885591)]

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值