9 个回答
变更数据流 (CDF)
变更数据流 (CDF)[26] 功能允许表跟踪版本之间的行级更改。启用后,运行时会记录写入表中的所有数据的“更改事件”。CDF 包括行数据和元数据,记录是否插入、删除或更新了指定的行。
发布于:11个月前 (06-17) IP属地:四川省
数据共享
减少数据重复的一个新的令人兴奋和必要的功能是数据共享。在 Delta Lake 中,它被称为 Delta Sharing[24]。Snowflake 宣布他们也将在 Iceberg 表中添加此功能。目前来看,这些是 Databricks 和 Snowflake 中的商业版功能。用于安全数据共享的开源 Delta 共享协议[25]使得与其他组织共享数据变得简单,无论他们使用哪种计算平台。
发布于:11个月前 (06-17) IP属地:四川省
统一批流处理
统一的批处理和流式处理意味着 Lambda[23] 架构已过时。数据架构无需在批处理和流式中区分——它们都以相同的表视图对外暴露,复杂性更低,速度更快。无论是从流还是批处理中读取都能获取一致的数据快照。开箱即用的 MERGE 语句适用于流式的条件更新分布式文件。
发布于:11个月前 (06-17) IP属地:四川省
文件大小调整
可以在 Delta Lake 中使用 OPTIMIZE[21]压缩数据,并通过 VACUUM[22] 设置保留日期删除旧版本(其他数据湖表格式具有类似功能)。开箱即用支持数据压缩,您可以选择不同的重写策略,例如分 bucket 或文件内排序,以优化文件布局和大小。文件布局优化在解决小文件问题时特别有效,随着时间的推移摄入的小文件会增加,但查询数千个小文件很慢,文件布局优化可以将文件碎片重新整理为更大的文件,从而在许多方面提高性能。
发布于:11个月前 (06-17) IP属地:四川省
分区 Evolution
分区和分区 Evolution[20] 处理为表中的行自动生成繁琐且容易出错的分区值,通过过滤器自动优化跳过不必要的分区和文件。快速查询目标文件,表格布局可以随着数据的变化而更新。
发布于:11个月前 (06-17) IP属地:四川省
时间旅行
随着时间的推移,数据湖表格式会将存储在数据湖中的大数据版本化并形成多版本。您可以访问该数据的任何历史版本,在意外写入或删除错误的情况下回滚数据,或者重现历史测试和报告。时间旅行支持可重现的查询,可以同时查询两个不同的版本。所有版本都使用时间旅行功能进行快照,它简化了一些实现例如渐变维度[16]。甚至可以像数据库一样捕获数据变更 (CDC)[17]。事务日志[18]是每个事务自开始以来的有序记录。事务日志是上述许多功能使用的通用组件,包括 ACID 事务、可扩展的元数据处理和时间旅行。例如,Delta Lake 创建一个名为 _delta_log的文件夹[19]。可扩展的元数据处理:这些表通过自动检查点和汇总来大规模处理大量文件及其元数据。
发布于:11个月前 (06-17) IP属地:四川省
ACID 事务、回滚、并发控制
ACID 事务确保所有更改都成功提交或回滚。确保永远不会以不一致的状态结束。有不同的并发控制,例如保证读取和写入之间的一致性。每种 Table format 都有其相应的实现。
发布于:11个月前 (06-17) IP属地:四川省
Schema Evolution、Enforcement Schema
evolution[15]是 Table format 的一个关键特性,因为改表 schema 仍然是当今数据工程中的一个难题。Schema Evolution 意味着在不破坏任何内容甚至扩大某些类型的情况下添加新列,甚至可以重命名或重新排序列(尽管这可能会破坏向后兼容性)。我们可以更改一张表格,Table format 负责在所有分布式文件上切换它而不需要重写表和基础文件。
发布于:11个月前 (06-17) IP属地:四川省
DML 和 SQL 支持
直接在分布式文件上提供 Merge Into、Update 和 Delete 操作。除了 SQL,有些还支持 Scala/Java 和 Python API。
发布于:11个月前 (06-17) IP属地:四川省
我来回答
您需要 登录 后回答此问题!