常见问题解答(FAQ)
在本文中:
什么是Delta Lake?
Delta Lake是一个开源存储层,为数据湖带来可靠性。Delta Lake提供ACID事务、可扩展的元数据处理,并统一了流式和批处理数据处理。Delta Lake运行在您现有的数据湖之上,并与Apache Spark API完全兼容。
Delta Lake 使用什么格式存储数据?
Delta Lake使用版本化的Parquet文件将数据存储在您的云存储中。除了版本控制外,Delta Lake还维护一个事务日志,用于追踪对表或blob存储目录所做的所有提交,以提供ACID事务支持。
Delta Lake 存储数据的位置在哪里?
写入数据时,您可以指定云存储中的位置。Delta Lake会以Parquet格式将数据存储在该位置。
可以将Delta Lake表复制到另一个位置吗?
是的,您可以将Delta Lake表复制到另一个位置。请记住在不更改时间戳的情况下复制文件,以确保基于时间戳的时间旅行功能保持一致。
能否直接将数据流式传输到Delta表或从中读取?
是的,你可以使用结构化流式处理(Structured Streaming)直接将数据写入Delta表并从Delta表中读取数据。请参阅将数据流式传输到Delta表和从Delta表流式传输数据。
Delta Lake是否支持使用Spark Streaming DStream API进行写入或读取?
Delta不支持DStream API。我们推荐表流式读写。
使用Delta Lake时,能否轻松将代码移植到其他Spark平台?
是的。当您使用Delta Lake时,您使用的是开源的Apache Spark API,因此可以轻松将代码移植到其他Spark平台。要进行代码移植,只需将delta格式替换为parquet格式即可。
Delta Lake 是否支持多表事务?
Delta Lake 不支持多表事务和外键。Delta Lake 支持表级别的事务。
如何更改列的数据类型?
更改列的类型或删除列需要重写表。有关示例,请参阅更改列类型。