紧凑的数据文件与优化在三角洲湖

看到优化

三角洲湖砖可以提高阅读的速度从表查询。改善这种速度的一个方法是将小文件合并成更大的。

请注意

在砖运行时的13.2及以上,砖建议使用集群为三角洲表布局。看到使用液体集群为三角洲表

语法的例子

你触发压缩通过运行优化命令:

优化δ' /数据/事件
delta.tables进口*deltaTable=DeltaTableforPath(火花,“/数据/事件”)deltaTable优化()executeCompaction()
进口ioδ_瓦尔deltaTable=DeltaTableforPath(火花,“/数据/事件”)deltaTable优化()。executeCompaction()

或者,交替:

优化事件
delta.tables进口*deltaTable=DeltaTableforName(火花,“事件”)deltaTable优化()executeCompaction()
进口ioδ_瓦尔deltaTable=DeltaTableforName(火花,“事件”)deltaTable优化()。executeCompaction()

如果你有一个大的数据量,只有想优化的一个子集,您可以指定一个可选的分区使用谓词在哪里:

优化事件在哪里日期> =“2022-11-18”
delta.tables进口*deltaTable=DeltaTableforName(火花,“事件”)deltaTable优化()在哪里(“日期= 2021-11-18”)executeCompaction()
进口ioδ_瓦尔deltaTable=DeltaTableforName(火花,“事件”)deltaTable优化()。在哪里(“日期= 2021-11-18”)。executeCompaction()

请注意

  • 装箱优化幂等,也就是说,如果是相同的数据集上运行两次,第二次运行没有影响。

  • 装箱计划生产均衡数据文件对磁盘上它们的大小,但不一定是元组每个文件的数量。然而,这两个指标往往是相关的。

  • Python和Scala api执行优化操作可从砖运行时11.0及以上。

三角洲的读者表使用快照隔离,这意味着他们不中断时优化从事务日志删除不必要的文件。优化没有相关数据修改表,所以读之前和之后的一个优化有相同的结果。执行优化桌子上这是一个流源不影响任何当前或未来的流,将此表作为一个源。优化返回文件的统计数据(最小、最大、总,等等)的文件删除和添加的文件操作。优化数据也包含z值统计,批次的数量,和分区优化。

你也可以紧凑的小文件自动使用汽车压实。看到汽车压实对砖三角洲湖

我应该运行多长时间优化吗?

当你选择要运行多长时间优化,有一个性能和成本之间的权衡。为了更好的终端用户查询性能,运行优化更多。这将导致更高的成本,因为增加的资源使用情况。优化成本,少运行它。

砖建议你开始运行优化每天晚上(最好是当现货价格低),然后调整频率来平衡成本和性能的权衡。

什么是最好的实例类型运行优化(装箱和z值)?

两个操作是CPU密集型操作做大量的拼花解码和编码。

砖建议计算优化实例类型。优化也得益于ssd。