【问题标题】:Do I track changes to my data in a data lake?我是否跟踪数据湖中数据的更改?
【发布时间】:2019-07-24 14:21:13
【问题描述】:

最近我发现了数据湖世界,我计划用 ADL 建立一个数据湖。我不确定的一件事是数据湖应该如何跟踪随时间的变化/处理来自源的不同版本。

我遇到过声称数据湖按原样提供数据的网站,其他声明数据应加时间戳或文件夹结构应反映时间戳。

无论如何,有什么最佳做法吗?

干杯!

【问题讨论】:

    标签: business-intelligence scd data-lake


    【解决方案1】:

    数据湖中通常有不同的区域。这是good explanation of common zones。在原始区域中,数据通常与源数据保持不变。它可能是自上次加载以来更改的记录的增量加载,也可能是数据源实体的完整副本。这通常是您会看到每个实体的时间戳文件夹的地方。例如,您可能具有以下文件夹结构。

    原始数据

    Organizational Unit
    
          Subject Area
    
               Original Data Source
    
                    Object
    
                         Date Loaded
    
                              File(s)
    

    用户通常不会查询原始区域。它充当数据的历史档案。

    用户经常会查询 Curated zone。此区域通常包含来自 Raw 的数据子集,这些数据已被转换以满足用户需求。通常,这包含实体当前外观的副本,省略旧版本,因为这是分析师/数据科学家想要看到的,或者因为这是需要馈送到从数据湖获取数据的另一个应用程序的内容。您可以找到关于 Raw 和 Curated zone here 的一个很好的解释。

    因此,您可能会同时拥有用于跟踪更改的时间戳数据以及当前快照。您可能读到的是,数据湖应该允许您重新创建实体在特定时间的样子,而这可以在 Raw 中完成。但其他区域可以满足您组织的数据需求,无论是当前数据、所有历史数据还是特定日期的快照。

    【讨论】:

    • 谢谢!因此,基本上数据湖不会像数据仓库(例如类型 2 scd)那样保留更改。如果我对您的理解正确,它会收到满载或增量负载(某种 CDC)。
    • 是的,您的数据湖通常会从源接收完整或增量负载,并且您将其存储不变。如果您想要 2 类 SCD 之类的东西,您可以创建它并将其放在精选区域中。这是否必要取决于哪些用户和应用程序需要它,并且应该从数据湖而不是其他位置(如 DW)获取。
    • 谢谢,这就是我需要知道的!
    • 对此的修正:Databricks Delta Lake 可以跟踪数据湖中的变化。请参阅databricks.com/product/delta-lake-on-databricks 了解更多信息。
    猜你喜欢
    • 2021-09-28
    • 1970-01-01
    • 2011-09-30
    • 2018-07-07
    • 2011-08-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2015-02-27
    相关资源
    最近更新 更多