Azure Data Lake Gen 2商店中的Parquet与Delta格式



我正在将事实和维度表从SQL Server导入Azure Data Lake Gen 2。

我应该将数据保存为";Parquet";或";Δ;如果我要争论这些表来创建一个对在Azure Databricks上运行ML模型有用的数据集?

储存为镶木地板和delta有什么区别?

Delta将数据存储为镶木地板,只是在上面有一个具有高级功能的附加层,提供事件历史记录(事务日志(,并在更改内容方面具有更大的灵活性,如更新、删除和合并功能。这个链接delta很好地解释了文件的组织方式。

一个缺点是,它可能会在大量更新中变得非常分散,这可能对性能有害。由于AZ Data Lake Store Gen2没有针对大型IO进行优化,所以这并不是一个大问题。对拼花地板格式进行一些优化,但这种方式不会很有效。

我会使用delta,只是为了高级功能。如果存在数据随时间更新而不仅仅是追加的情况,那么这将非常方便。特别好的功能是,您可以在给定的时间点读取delta表。

SQL自语法

这对于具有一致的训练集(始终具有相同的训练数据集而不分离到单独的镶木地板文件(非常有用。对于处理delta格式作为输入的ML模型来说,可能会有问题,因为可能只有少数框架能够直接读取它,所以您需要在一些预处理步骤中转换它。

Delta Lake使用版本化的Parquet文件将数据存储在云存储中。除了版本之外,DeltaLake还存储了一个事务日志,以跟踪对表或blob存储目录的所有提交,从而提供ACID事务。

参考:https://learn.microsoft.com/en-us/azure/databricks/delta/delta-faq

根据其他答案,三角洲湖是Parquet之上的一个功能层。

考虑一下-您需要Delta功能吗?如果你只是在阅读数据&德尔塔在其他地方的争论只是额外的复杂性,几乎没有额外的好处。

Parquet几乎与所有数据系统兼容,Delta被广泛采用,但并非所有数据系统都能与Delta兼容。

最新更新