使用液体集群为三角洲表
重要的
三角洲湖液体聚类可以在公共预览砖运行时13.2及以上。
三角洲湖液体聚类表分区和替换ZORDER
为了简化数据布局决策和优化查询性能。液体聚类提供了灵活性重新定义集群键没有重写现有的数据,允许数据布局演变与分析需求。
砖支持提高并发三角洲表启用了液体聚类。看到提高并发性在砖。
警告
砖13.2运行时,需要编写或以上优化
δ表启用了液体聚类。
液体聚类用于什么?
砖建议液体聚类为所有新三角洲表。下面是场景的例子从集群中受益:
表通常由高基数过滤列。
表数据分布的显著倾斜。
表快速增长,需要维护和调优工作。
与并发写需求表。
表的访问模式随时间变化的。
表,一个典型的分区键可以把表过多或过少的分区。
使液体聚类
你必须使三角洲湖液体聚类时,首先创建一个表。集群与分区或不兼容ZORDER
,需要砖的客户管理表中数据的布局和优化操作。
使液体聚类,添加集群通过
短语表创建语句,在下面的例子中:
——创建一个空表创建表table1 (col0 int, col1字符串)使用三角洲集群(col0);——使用cta语句创建外部表表集群(col0)位置的table_location SELECT *从表1;——使用一个像CREATE TABLE语句复制配置table3像表1;
警告
表创建启用了液体聚集有大量的表特性使得在创建和使用δversion 7的作家和读者版本3。表协议版本不能降级,和表启用了集群不是由三角洲湖读客户不支持所有启用三角洲读者协议表功能。看到砖三角洲湖管理功能的兼容性如何?。
选择集群键
砖建议选择集群键基于常用查询过滤器。集群键可以被定义在任何顺序。如果两列是相关的,你只需要添加一个集群的关键。
如果你将一个现有表,可以考虑以下建议:
当前数据优化技术 |
建议为集群键 |
---|---|
Hive-style分区 |
使用分区列作为集群键。 |
z值的索引 |
使用 |
Hive-style分区和z顺序 |
同时使用分区列和 |
生成的列来减少基数(例如,日期时间戳) |
使用原始的列作为一个集群键,不要创建一个生成的列。 |
提高并发性在砖
砖为集群提供增强型并发的表比其他三角洲表。除非有行级冲突,并发写操作不冲突,包括优化
,插入
,合并
,更新
,删除
操作。
为了减少行级冲突的可能性,您可以过滤并发查询,如以下示例:
插入成table_name取代在哪里column_name=“some_value”选择*从staging_table;
写数据到一个集群表
您必须使用一个作家客户机支持所有δ写协议表功能使用的液体聚类。在砖上,您必须使用砖运行时13.2及以上。
最不自动集群数据写操作。操作集群编写包括以下:
插入成
操作商品交易顾问基金
语句复制成
从拼花格式spark.write.format(“δ”).mode(“追加”)
请注意
集群上写是一个尽力服务的应用程序。如果写操作超过512 gb的数据,液体聚类不应用于写作。因为并不是所有的操作应用液体聚类,砖建议经常运行优化
确保所有的数据都是有效地聚集。
如何触发集群
引发聚类时,您必须使用砖运行时的13.2或以上。使用优化
命令你的桌子上,就像下面的例子:
优化table_name;
液体聚类是增量,这意味着数据只是重写为必要适应数据需要集群。数据文件与集群键不匹配数据集群不重写。
为获得最佳性能,砖建议定期优化
集群的数据工作。表经历许多更新或插入,砖建议安排一个优化
每一个或两个小时的工作。因为液体聚类是增量,最多优化
工作群集表运行很快。
从集群表读取数据
您可以使用任何集群表中读取数据三角洲湖客户机支持阅读删除向量。最佳查询结果,包括集群键查询过滤器,像下面的例子:
选择*从table_name在哪里cluster_key_column_name=“some_value”;