有人可以解释如何将三角湖“金”桌推到数据仓库中?有没有一种方法可以转换为Delta格式到DataFrame?

问题描述 投票:0回答:1

我自己还在学习这个,但这是我到目前为止对此的了解。

青铜水平是来自来源的数据。它应该没有变化,并简单地保存在青铜级别的三角洲桌子上。

银级是清洁的第一阶段。在这里,您进行数据治理,删除零等等。

黄金水平是应准备好由不同的应用程序或ML平台使用的清洁数据的最终水平。 每个步骤之间是一个工作,应该在上一个级别的数据上运行以清理并为下一步准备。
azure databricks delta-lake
1个回答
0
投票
https://databricks.com/blog/2019/08/14/productionizing-machine-learning-with-with-delta-lake.html

这是我们目前组织它的方式。我们已经与分配给我们的Databricks顾问讨论了我们的架构,到目前为止,还没有提出强烈的反对意见。也就是说,我相信允许基于个体用例中的体系结构灵活性。

在原始层中,我们有来自各种来源的原始文件。例如,API调用可以产生我们作为JSON文件存储的JSON输出。我们也可以在此处复制存储的数据库备份。这个想法是,这些文件是按原样存储的,因为在出现问题的情况下,我们至少希望仍然拥有我们的原始数据。当无法从您的来源检索历史数据时,这一点尤其重要 - 例如,快照数据。

在青铜中,我们将所有内容转换为三角洲表。您可以将其视为将所有内容都以三角洲格式为单位的RAW的版本。我们想在三角洲表上建立基础,以便我们有一种常见的方法来查询和分析我们的原始数据。

在银中,我们进行数据清洁和转换。我们尽可能地尝试在此处逐步处理任何可以逐步完成的事情,因为Pyspark可以更好地实现复杂转换与SQL的更可读的实现,并且我们希望将我们的SQL查询保持在黄金中。

黄金,我们进行了构成构成我们明星模式的事实和维度表的查询。在这里,我们运行了一些聚合并重命名列,以便我们的业务用户可以阅读它们。

从那里,您可以设置一个SQL仓库,也可以使用Delta共享连接到BI工具。或者,您可以将银或金桌用于ML目的。

P.S。通常,我建议将Unity目录用作使用三层名称空间查询表,使代码看起来更加可读。它还使控制对某些目录/模式/表的访问更加容易。原始数据可以作为卷存储,一旦您在青铜层中拥有三角洲表,就可以将它们存储为桌子。 P.P.S。话虽如此,我认为您总是不需要所有层。实际上,我们正在考虑摆脱非常快速到达银层的数据的原始和青铜层,并且可以在以后很容易地再次检索,因为在失败时通过银层重新启动原始层的成本很低,但是存储,读写它们的成本相对较高。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.