优化

适用于:勾选“是”砖的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。

参数

  • table_name

    标识现有的Delta表。名称中不能包含时间规范

  • 在哪里

    优化与给定分区谓词匹配的行子集。只支持包含分区键属性的筛选器。

  • ZORDER通过

    在同一组文件中合并列信息。Delta Lake数据跳过算法使用共局部性来显著减少需要读取的数据量。可以为指定多个列ZORDER通过作为逗号分隔的列表。但是,每增加一列,局部性的有效性就会下降。

例子

优化事件优化事件在哪里日期> =“2017-01-01”优化事件在哪里日期> =current_timestamp()-时间间隔1一天ZORDER通过eventType

有关的更多信息优化命令,看到紧凑的数据文件与优化三角洲湖