一个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.新增列
alter table test.test1 add columns(column_new string);
12.删除列
alter table test.test1 drop column column_new;
13.修改列名
username是列的原来的名称,username_new是新列的名称,
alter table test.test1 change column username username_new string;
14.分区为多列
1.新建表
drop table if exists test.test2;
create table test.test2 (
id String not null,
date_timekey String not null,
hour_timekey String not null,
username STRING,
password STRING,
interface_time String,
primary key (id,date_timekey,hour_timekey)
)
partition by range (date_timekey,hour_timekey) (partition value=(‘20200601’,‘20200601 0730’))
stored as kudu
2.新增分区
alter table test.test2_kudu add range partition value=(‘20200601’,‘20200601 0830’);
3.删除分区
alter table test.test2_kudu drop range partition value=(‘20200601’,‘20200601 0830’);
五、大白话
=====
Kudu就是一个存储引擎,类似于RDBMS,能够增删改查,让大数据分析更加便捷。他的存储不是基于Hadoop,而是自己有一套独立的系统在Linux。至于Kudu的读写等更加细致的内容,后面会详细介绍。
六、其他
====
鸡汤:世间最怕认真二字,这二字值千金,千金不换!
大数据入门系列文章
=========
4.大数据入门-三分钟读懂Hadoop
5.大数据入门-五分钟读懂HDFS
6.大数据入门-五分钟读懂Hive
帅哥美女们走过路过不要错过,关注点赞走上人生巅峰!!!
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://i-blog.csdnimg.cn/blog_migrate/1e38faa27bf17bc62c131dd9a8bc039c.jpeg)
复习的面试资料
这些面试全部出自大厂面试真题和面试合集当中,小编已经为大家整理完毕(PDF版)
- 第一部分:Java基础-中级-高级
- 第二部分:开源框架(SSM:Spring+SpringMVC+MyBatis)
- 第三部分:性能调优(JVM+MySQL+Tomcat)
- 第四部分:分布式(限流:ZK+Nginx;缓存:Redis+MongoDB+Memcached;通讯:MQ+kafka)
- 第五部分:微服务(SpringBoot+SpringCloud+Dubbo)
- 第六部分:其他:并发编程+设计模式+数据结构与算法+网络
进阶学习笔记pdf
- Java架构进阶之架构筑基篇(Java基础+并发编程+JVM+MySQL+Tomcat+网络+数据结构与算法)
- Java架构进阶之开源框架篇(设计模式+Spring+SpringMVC+MyBatis)
- Java架构进阶之分布式架构篇 (限流(ZK/Nginx)+缓存(Redis/MongoDB/Memcached)+通讯(MQ/kafka))
- Java架构进阶之微服务架构篇(RPC+SpringBoot+SpringCloud+Dubbo+K8s)
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
IU8VkaG-1713628078238)]
[外链图片转存中…(img-9sfL0i7a-1713628078238)]
- Java架构进阶之分布式架构篇 (限流(ZK/Nginx)+缓存(Redis/MongoDB/Memcached)+通讯(MQ/kafka))
[外链图片转存中…(img-3b9gdIrO-1713628078238)]
[外链图片转存中…(img-b2FEFHxq-1713628078239)]
[外链图片转存中…(img-CGuIY0Qj-1713628078239)]
- Java架构进阶之微服务架构篇(RPC+SpringBoot+SpringCloud+Dubbo+K8s)
[外链图片转存中…(img-u5rJiHbv-1713628078239)]
[外链图片转存中…(img-QkNWnnGK-1713628078239)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!