我正在尝试将大型镶木地板文件转换为delta格式,以实现性能优化和更快的作业运行。
我正在努力研究在Databricks上将巨大的镶木地板文件迁移到delta格式的最佳实践。
有两种通用方法,但这实际上取决于您的需求:
-
使用CONVERT TO DELTA(SQL命令(或相应的Python/Scala/Java API(doc(进行就地升级。您需要考虑以下因素——如果您有一个巨大的表,那么默认的
CONVERT TO DELTA
命令可能会花费太长时间,因为它需要收集数据的统计信息。您可以通过将NO STATISTICS
添加到命令中来避免这种情况,这样它就会运行得更快。使用它,您将无法获得数据跳过和其他优化的好处,但这些统计信息可以在稍后执行OPTIMIZE
命令时收集。 -
通过读取原始Parquet数据创建原始表格的副本&作为Delta表进行书写。检查所有内容是否正确后,可以删除原始表。这种方法有以下好处:
- 如果原始表中的分区级别太多,则可以更改分区模式
- 您可以更改表中列的顺序,以利用数值&日期/时间数据类型-它应该可以提高查询性能