【问题标题】:Delta Lake storage Layers - ConceptsDelta Lake 存储层 - 概念
【发布时间】:2021-09-20 14:32:52
【问题描述】:

我是 Databricks 的新手,有以下疑问 -

Databricks 提出了 3 层存储 Bronze(原始数据)、Silver(清洁数据)和 Gold(聚合数据)。这些存储层的存储目的是明确的。但我怀疑这些实际上是如何创建或识别的。从 Silver 或 Gold 检索数据时我们如何指定。这些是不同的数据库还是不同的格式或其他什么?

请帮助我弄清楚这个概念。

【问题讨论】:

    标签: databricks delta-lake


    【解决方案1】:

    这些逻辑层:

    • Bronze 层存储原始数据而无需修改 - 最常见的更改通常只是更改数据格式,例如将输入数据作为 CSV 并将数据存储为 Delta。拥有 Bronze 层的主要目标是确保您拥有原始数据,并且您可以在必要时重建 Silver 和 Gold 数据,例如,如果您在生成 Silver 层的代码中发现错误。青铜层的必要性严重依赖于数据源。例如,如果您的数据来自某个数据库,那么您可以预期那里的数据已经干净,在这种情况下,您可以将它们直接摄取到 Silver 层。青铜层通常不被最终用户直接访问
    • Silver 层是通过应用一些转换、丰富和清理程序从青铜创建的。例如,如果某列中的数据必须为非空,或者在一定范围内,则可以添加bronze_df.filter("col1 is not null") 之类的代码并存储结果。如果您在转换中发现错误,或者需要添加额外的检查,则可以从青铜中重新生成银层。需要行级别详细数据的最终用户通常可以访问银层
    • Gold 层通常是某种聚合数据,将用于报告、仪表板等。Gold 层中可能有多个表从一个或多个 Silver 表生成。

    Databricks 通常建议对所有这些层使用 Delta Lake,因为它更容易在层之间以增量方式处理数据,通常使用结构化流。但你不受此限制。我见过很多客户将 Gold 层的结果输出到 Azure SQL 数据库、NoSQL 数据库或其他东西中,从中可以被仅适用于这些系统的应用程序使用。

    【讨论】:

      猜你喜欢
      • 2019-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-24
      • 2019-11-11
      • 1970-01-01
      • 1970-01-01
      • 2021-03-26
      相关资源
      最近更新 更多