kudu-impala分区表(hash和range分区)

2024-06-02 17:08

本文主要是介绍kudu-impala分区表(hash和range分区),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


展开
1、分区表支持hash分区和range分区,根据主键列上的分区模式将table划分为 tablets 。每个 tablet 由至少一台 tablet server提供。理想情况下,一张table分成多个tablets分布在不同的tablet servers ,以最大化并行操作。 
2、Kudu目前没有在创建表之后拆分或合并 tablets 的机制。 
3、创建表时,必须为表提供分区模式。 
4、在设计表格时,使用主键,就可以将table分为以相同速率增长的 tablets 。 
5、您可以使用 Impala 的 PARTITION BY 关键字对表进行分区,该关键字支持 RANGE 或 HASH分发。分区方案可以包含零个或多个 HASH 定义,后面是可选的 RANGE 定义。 RANGE 定义可以引用一个或多个主键列

1、PARTITION BY RANGE ( 按范围划分 ) 
优点:允许根据所选分区键的特定值或值的范围拆分表。这样可以平衡并行写入与扫描效率 
缺点:如果您在其值单调递增的列上按范围进行分区,则最后一个tablet的增长将远大于其他的,此外,插入的所有数据将一次写入单个 tablet ,限制了数据摄取的可扩展性 
例子:

CREATE TABLE customers ( 
state STRING, 
name STRING, 
purchase_count int, 
PRIMARY KEY (state, name) 
) PARTITION BY RANGE (state) ( 
PARTITION VALUE = ‘al’, 
PARTITION VALUE = ‘ak’, 
PARTITION VALUE = ‘ar’, 
PARTITION VALUE = ‘wv’, 
PARTITION VALUE = ‘wy’ 
) STORED AS KUDU 
TBLPROPERTIES( 
‘kudu.table_name’ = ‘customers ‘,’kudu.master_addresses’ = ‘hadoop5:7051’);

2、PARTITION BY HASH ( 哈希分区 ) 
优点:数据均匀地分布在数据桶之间 
缺点:对值的查询可能要读取所有的tablet,也就是自定义的3个 
例子:

CREATE TABLE cust_behavior ( 
id BIGINT, 
sku STRING, 
salary STRING, 
edu_level INT, 
usergender STRING, 
group STRING, 
city STRING, 
postcode STRING, 
last_purchase_price FLOAT, 
last_purchase_date BIGINT, 
category STRING, 
rating INT, 
fulfilled_date BIGINT, 
PRIMARY KEY (id, sku) 

PARTITION BY HASH PARTITIONS 3 
STORED AS KUDU 
TBLPROPERTIES( 
‘kudu.table_name’ = ‘cust_behavior ‘,’kudu.master_addresses’ = ‘hadoop5:7051’);

3、高级分区 
①、PARTITION BY HASH and RANGE 
优点:既可以数据分布均匀,又可以在每个分片中保留指定的数据 
例子:

CREATE TABLE cust_behavior_1 ( 
id BIGINT, 
sku STRING, 
salary STRING, 
edu_level INT, 
usergender STRING, 
group STRING, 
city STRING, 
postcode STRING, 
last_purchase_price FLOAT, 
last_purchase_date BIGINT, 
category STRING, 
rating INT, 
fulfilled_date BIGINT, 
PRIMARY KEY (id, sku) 

PARTITION BY HASH (id) PARTITIONS 4, 
RANGE (sku) 

PARTITION VALUES < ‘g’, 
PARTITION ‘g’ <= VALUES < ‘o’, 
PARTITION ‘o’ <= VALUES < ‘u’, 
PARTITION ‘u’ <= VALUES 
) STORED AS KUDU 
TBLPROPERTIES( 
‘kudu.table_name’ = ‘cust_behavior_1 ‘,’kudu.master_addresses’ = ‘hadoop5:7051’);
 

这篇关于kudu-impala分区表(hash和range分区)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1024573

相关文章

Mysql实现范围分区表(新增、删除、重组、查看)

《Mysql实现范围分区表(新增、删除、重组、查看)》MySQL分区表的四种类型(范围、哈希、列表、键值),主要介绍了范围分区的创建、查询、添加、删除及重组织操作,具有一定的参考价值,感兴趣的可以了解... 目录一、mysql分区表分类二、范围分区(Range Partitioning1、新建分区表:2、分

MySQL 定时新增分区的实现示例

《MySQL定时新增分区的实现示例》本文主要介绍了通过存储过程和定时任务实现MySQL分区的自动创建,解决大数据量下手动维护的繁琐问题,具有一定的参考价值,感兴趣的可以了解一下... mysql创建好分区之后,有时候会需要自动创建分区。比如,一些表数据量非常大,有些数据是热点数据,按照日期分区MululbU

python中Hash使用场景分析

《python中Hash使用场景分析》Python的hash()函数用于获取对象哈希值,常用于字典和集合,不可变类型可哈希,可变类型不可,常见算法包括除法、乘法、平方取中和随机数哈希,各有优缺点,需根... 目录python中的 Hash除法哈希算法乘法哈希算法平方取中法随机数哈希算法小结在Python中,

MySQL分区表的具体使用

《MySQL分区表的具体使用》MySQL分区表通过规则将数据分至不同物理存储,提升管理与查询效率,本文主要介绍了MySQL分区表的具体使用,具有一定的参考价值,感兴趣的可以了解一下... 目录一、分区的类型1. Range partition(范围分区)2. List partition(列表分区)3. H

MySQL数据库实现批量表分区完整示例

《MySQL数据库实现批量表分区完整示例》通俗地讲表分区是将一大表,根据条件分割成若干个小表,:本文主要介绍MySQL数据库实现批量表分区的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录一、表分区条件二、常规表和分区表的区别三、表分区的创建四、将既有表转换分区表脚本五、批量转换表为分区

MySQL 分区与分库分表策略应用小结

《MySQL分区与分库分表策略应用小结》在大数据量、复杂查询和高并发的应用场景下,单一数据库往往难以满足性能和扩展性的要求,本文将详细介绍这两种策略的基本概念、实现方法及优缺点,并通过实际案例展示如... 目录mysql 分区与分库分表策略1. 数据库水平拆分的背景2. MySQL 分区策略2.1 分区概念

Mysql表如何按照日期字段的年月分区

《Mysql表如何按照日期字段的年月分区》:本文主要介绍Mysql表如何按照日期字段的年月分区的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、创键表时直接设置分区二、已有表分区1、分区的前置条件2、分区操作三、验证四、注意总结一、创键表时直接设置分区

MySQL大表数据的分区与分库分表的实现

《MySQL大表数据的分区与分库分表的实现》数据库的分区和分库分表是两种常用的技术方案,本文主要介绍了MySQL大表数据的分区与分库分表的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. mysql大表数据的分区1.1 什么是分区?1.2 分区的类型1.3 分区的优点1.4 分

mysql数据库分区的使用

《mysql数据库分区的使用》MySQL分区技术通过将大表分割成多个较小片段,提高查询性能、管理效率和数据存储效率,本文就来介绍一下mysql数据库分区的使用,感兴趣的可以了解一下... 目录【一】分区的基本概念【1】物理存储与逻辑分割【2】查询性能提升【3】数据管理与维护【4】扩展性与并行处理【二】分区的

Redis的Hash类型及相关命令小结

《Redis的Hash类型及相关命令小结》edisHash是一种数据结构,用于存储字段和值的映射关系,本文就来介绍一下Redis的Hash类型及相关命令小结,具有一定的参考价值,感兴趣的可以了解一下... 目录HSETHGETHEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSET