使用Delta Lake的变更数据源,如何简化CDC?
如何使用Delta Lake的变更数据源简化CDC——Databricks博客的翻译。
在Databricks上尝试使用笔记本
为什么需要CDF的功能呢?
由于与其他大数据技术相比,使用Delta Lake可以使实施变得更简单,因此许多客户选择使用Databricks进行CDC。然而,即使使用了适当的工具,CDC的执行仍然是一个问题。为了进一步简化编码并解决涉及CDC的最大问题,我们设计了CDF。
品質コントロール – バージョンに渡る行レベルの変更を行うことが困難です。
非効率性 – 現在のバージョンの変更はファイルレベルであり、行レベルでないため、変更されていない行を考慮するのが非効率的になり得ます。
通过实施数据交换平台(CDF),可以协助解决上述问题。
シンプルさと便利さ – 変更を特定するための一般的、使いやすいパターンを活用することで、コードをシンプルかつ便利にし、理解やすくします。
効率 – バージョン間で変化した行の身を持つ能力によって、後段でのMerge、Update、Deleteオペレーションを劇的に効率的なものにします。
CDF仅捕捉Delta表的变更,并仅捕捉自其启用以后的变更。
实践使用数据源!
让我们深入探讨财务预测中常见的用例之一,即CDF样本。本文顶部提及的笔记本将导入财务数据。每股收益预估(EPS)是预测企业每个季度股价收益的财务数据,由分析师提供。原始数据来自多个不同的来源,由多个分析师提供,涉及多个股票。
通过使用CDF功能,数据将被简单地导入到铜表中,然后在银表中进行过滤、清洗和扩展,最后根据银表的更改数据,在金表中进行值的聚合和计算。
这些转换过程可能会变得复杂,但多亏了行级的CDF功能,它变得简单而高效。那么,该如何使用它呢?让我们来看看!
在Delta Lake表中启用CDF。
为了在表上启用CDF功能,必须首先在该表上启用功能。以下是在创建表时使用Bronze表启用CDF的示例。还可以在更新表时启用CDF。此外,可以在集群中创建的所有表上启用CDF。有关这些变体,请参阅文档。
更改数据的查询
这个示例访问基于起始版本的更改记录,但也可以根据结束版本、起始时间戳和结束时间戳来限制版本。虽然这个例子主要关注SQL,但也可以使用Python、Scala、Java和R来访问数据。请参阅此文档。
在MERGE文中使用CDF行数据。
典型的案例
在这里,我们将解释关于新的CDF功能的常见用例和好处。
银与金色的桌子
为了加快和简化ETL/ELT操作,通过仅处理首次MERGE比较之后的变更,来提高Delta的性能。
实际化视角
通过仅更新应用更改的位置,而无需重新处理背后的所有表格,可以创建用于BI和分析的最新且已聚合的视图。
发送更改
为了在数据管道的后续阶段进行增量处理,会将变更数据发送到像Kafka或RDBMS这样的后续系统中。
审计记录表
为了查看删除操作何时进行、以及哪些操作进行了更新等时间序列的变化,Delta表提供了持久化存储和高效的查询功能,可以捕捉到变更数据源的输出。
什么时候应该使用数据供应源?
总结
在Databricks中,我们希望能够实现不可能的事情,简化复杂的任务。在Delta Lake出现之前,CDC、日志版本控制和MERGE操作实际上是不可能的。现在,通过出色的变更数据Feed(CDF)功能,我们变得更加简单和高效!
请在Databricks上尝试使用笔记本。
Databricks 免费试用
DataBricks 免费试用