常见问题 (FAQ)
什么是 Delta Lake?
部分标题为“什么是 Delta Lake?”Delta Lake 是一个开源存储层,为数据湖带来可靠性。Delta Lake 提供 ACID 事务、可扩展的元数据处理,并统一流式和批处理数据处理。Delta Lake 运行在您现有的数据湖之上,并与 Apache Spark API 完全兼容。
Delta Lake 与 Apache Spark 有何关系?
部分标题为“Delta Lake 与 Apache Spark 有何关系?”Delta Lake 位于 Apache Spark 之上。格式和计算层有助于简化大数据管道的构建并提高管道的整体效率。
Delta Lake 使用什么格式存储数据?
部分标题为“Delta Lake 使用什么格式存储数据?”Delta Lake 使用版本化的 Parquet 文件将您的数据存储在云存储中。除了版本,Delta Lake 还存储一个事务日志,以跟踪对表或 Blob 存储目录进行的所有提交,从而提供 ACID 事务。
如何使用 Delta Lake 读取和写入数据?
部分标题为“如何使用 Delta Lake 读取和写入数据?”您可以使用您喜欢的 Apache Spark API 通过 Delta Lake 读取和写入数据。请参阅读取表和写入表。
Delta Lake 将数据存储在哪里?
部分标题为“Delta Lake 将数据存储在哪里?”写入数据时,您可以指定云存储中的位置。Delta Lake 将数据以 Parquet 格式存储在该位置。
我可以将 Delta Lake 表复制到其他位置吗?
部分标题为“我可以将 Delta Lake 表复制到其他位置吗?”是的,您可以将 Delta Lake 表复制到其他位置。请记住复制文件时不要更改时间戳,以确保使用时间戳的时间旅行保持一致。
我可以直接将数据流式传输到 Delta 表或从 Delta 表流式传输数据吗?
部分标题为“我可以直接将数据流式传输到 Delta 表或从 Delta 表流式传输数据吗?”是的,您可以使用 Structured Streaming 直接将数据写入 Delta 表并从 Delta 表读取数据。请参阅将数据流式传输到 Delta 表和从 Delta 表流式传输数据。
Delta Lake 是否支持使用 Spark Streaming DStream API 进行写入或读取?
部分标题为“Delta Lake 是否支持使用 Spark Streaming DStream API 进行写入或读取?”Delta 不支持 DStream API。我们建议使用表流式读取和写入。
当我使用 Delta Lake 时,我能否轻松地将我的代码移植到其他 Spark 平台?
部分标题为“当我使用 Delta Lake 时,我能否轻松地将我的代码移植到其他 Spark 平台?”是的。当您使用 Delta Lake 时,您使用的是开放的 Apache Spark API,因此您可以轻松地将您的代码移植到其他 Spark 平台。要移植您的代码,请将 delta
格式替换为 parquet
格式。
Delta Lake 是否支持多表事务?
部分标题为“Delta Lake 是否支持多表事务?”Delta Lake 不支持多表事务和外键。Delta Lake 支持表级别的事务。
如何更改列的类型?
部分标题为“如何更改列的类型?”更改列的类型或删除列需要重写表。有关示例,请参阅更改列类型。