优化
适用于:砖的SQL砖运行时
优化Delta Lake数据布局。可选地优化数据子集或按列组合数据。如果未指定托管位置,则执行打包优化。
语法
优化table_name[在哪里谓词][ZORDER通过(col_name1(,...])]
请注意
装箱优化是幂等,这意味着如果在同一数据集上运行两次,第二次运行没有影响。它的目标是根据数据文件在磁盘上的大小生成均衡的数据文件,但不一定是每个文件的元组数量。然而,这两项指标通常是相关的。
z值是不是幂等但目标是一个增量操作。z排序所花费的时间不能保证在多次运行中减少。然而,如果没有新的数据被添加到一个Z-Ordered分区,那么该分区的另一个Z-Ordered将不会有任何影响。它的目标是根据元组的数量生成均衡的数据文件,但不一定是磁盘上的数据大小。这两个度量通常是相关的,但有时情况并非如此,从而导致优化任务时间的倾斜。
请注意
在使用Databricks Runtime时,要控制输出文件大小,请设置火花配置spark.databricks.delta.optimize.maxFileSize
.默认值为1073741824
,将大小设置为1gb。指定值104857600
设置文件大小为100mb。
参数
标识现有的Delta表。名称中不能包含时间规范.
在哪里
优化与给定分区谓词匹配的行子集。只支持包含分区键属性的筛选器。
ZORDER通过
在同一组文件中合并列信息。Delta Lake数据跳过算法使用共局部性来显著减少需要读取的数据量。可以为指定多个列
ZORDER通过
作为逗号分隔的列表。但是,每增加一列,局部性的有效性就会下降。
例子
优化事件优化事件在哪里日期> =“2017-01-01”优化事件在哪里日期> =current_timestamp()-时间间隔1一天ZORDER通过(eventType)
有关的更多信息优化
命令,看到紧凑的数据文件与优化三角洲湖.