如何简化疾控中心与三角洲湖的改变数据提要
2021年6月9日 在工程的博客
在砖试试这个笔记本
变化数据捕获(CDC)是一个用例,我们看到许多客户实现在砖-你可以查看我们之前的话题上深潜水在这里。通常我们看到的疾病预防控制中心用于分析架构称为的摄入大奖章架构。图案结构,原始数据从源系统和改进了数据通过青铜,白银和黄金表。疾病预防控制中心和图案架构为用户提供许多好处,因为只有更改或添加数据需要处理。此外,不同表的架构允许不同的角色,比如数据科学家和BI分析人士,为他们的需要使用正确的最新数据。我们很高兴地宣布了令人兴奋的新改变数据提要(CDF)特性在三角洲湖使得这个体系结构容易实现和合并操作日志三角洲湖可能的版本!
得到的早期预览O ' reilly的新电子书一步一步的指导你需要开始使用三角洲湖。
为什么需要提供功能?
许多客户使用砖执行中心,因为它更容易实现与三角洲湖比其他大数据的技术。然而,即使有了正确的工具,美国疾病控制和预防中心执行仍然可以是一个挑战。我们设计CDF使编程更加简单和地址的最大痛点在疾控中心,包括:
- 质量控制——行级版本之间的变化是很难达到。
- 效率低下不变——它可以低效占行自当前版本更改的文件而不是行级。
这是改变数据提要(CDF)实现如何帮助解决上述问题:
- 简单和方便——使用一个共同的、易于使用的模式识别变化,使您的代码简单,方便和容易理解。
- 效率——能力只有行版本之间发生了变化,使得下游消费合并,更新和删除操作极其有效。
提供了改变只有从三角洲表只有前瞻性一旦启用。
改变数据提要在行动!
让我们深入一个例子提供一个常见的用例:财务预测。笔记本引用这个博客的顶部吸入财务数据。估计每股收益(EPS)是金融数据分析师预测公司的季度每股收益。原始数据可以从许多不同的来源和来自多个多只股票分析师。
CDF实验组的特性,数据只是插入铜表(原始摄入),然后过滤、清洗和增强银表,最后,金总值计算表的基础上改变了银表中的数据。
虽然这些转换可以复杂,值得庆幸的是,现在的基于行的CDF实验组的特点是简单、高效。但你如何使用它呢?让我们挖!
注:例子着重于提供的SQL版本和一个特定的方式使用操作,评估变化,请参阅文档在这里
使CDF实验组的三角洲湖表
提供功能可以在一个表,你必须首先说桌子上启用这个特性。下面是一个例子使提供的青铜在表创建表。你还可以启用CDF实验组的表作为更新表。此外,您可以启用CDF集群上的所有表创建的集群。对于这些变化,请参阅文档在这里。
查询更改数据
要查询的变化数据,使用table_changes操作。下面的例子包括插入的行和两行,代表一个更新的预处理和post-image行,这样我们可以评估的差异变化。还有一个删除改变类型返回删除行。
这个例子中访问基于更改的记录版本开始,但是你也可以根据限制版本终结版,以及开始和结束时间戳如果需要的话。这个例子着重于SQL,但也有方法来访问这个数据在Python中,Scala中,Java和r .对于这些变化,请参阅文档在这里。
在MERGE语句中使用CDF实验组的行数据
聚合MERGE语句,如合并成黄金表,可以通过自然复杂,但提供的编码特性使得这些语句更简单和更有效率。
在上面的图中可以看到,它使它简单获得哪些行已经改变了,因为它只执行所需的聚合的数据已经改变或新使用table_changes操作。下面,你可以看到如何使用更改后的数据,以确定哪些日期和股票代码已经改变了。
如下所示,您可以使用数据从银表改为总只行上的数据需要更新或插入到黄金表。要做到这一点,使用内连接在table_changes ('table_name”、“版本”)
最终的结果是一个明确而简洁的版本的黄金表可以增量随时间变化!
典型用例
下面是一些常见的用例和福利提供的新功能:
银和金的表
提高三角洲性能通过处理只改变初始合并后比较加速和简化ETL /英语教学操作。
物化视图
创建最新的聚合视图的信息用于BI和分析,而无需再加工完整的底层表,而不是只在更新变化。
传输变化
发送改变数据提要下游系统如卡夫卡或RDBMS,可以使用它来逐步过程后期的数据管道。
审计跟踪表
捕获变更数据提要输出作为三角洲表提供永久存储和高效的查询功能查看所有变化随着时间的推移,包括删除发生时和更新。
何时使用更改数据提要
结论
在砖,我们努力把不可能变为可能,很难简单。疾病预防控制中心、日志版本控制和合并实现几乎不可能在规模直到三角洲湖创建。现在我们使它更简单、更有效率和令人兴奋的改变数据提要(CDF)功能!