【问题标题】:Data Governance solution for Databricks, Synapse and ADLS gen2适用于 Databricks、Synapse 和 ADLS gen2 的数据治理解决方案
【发布时间】:2020-08-27 15:01:18
【问题描述】:

我是数据治理的新手,如果问题缺少一些信息,请原谅我。

目标

我们正在 Azure 平台上为中型电信公司从头开始构建数据湖和企业数据仓库。我们将 ADLS gen2、Databricks 和 Synapse 用于 ETL 处理、数据科学、ML 和 QA 活动。

我们已经有大约 100 个输入表和 25 TB/年。未来我们期待更多。

企业对与云无关的解决方案有着强烈的需求。他们仍然可以使用 Databricks,因为它在 AWS 和 Azure 上可用。

问题

什么是最适合我们的堆栈和要求的数据治理解决方案?

我的解决方法

我还没有使用任何数据治理解决方案。我喜欢AWS Data Lake 解决方案,因为它提供了开箱即用的基本功能。 AFAIK,Azure Data Catalog 已过时,因为它是doesn't support ADLS gen2

经过快速谷歌搜索后,我发现了三个选项:

  1. Databricks Privacera
  2. Databricks Immuta
  3. 阿帕奇游侠和阿帕奇阿特拉斯。

目前我什至不确定第三个选项是否完全支持我们的 Azure 堆栈。此外,它将有更大的开发(基础设施定义)工作。 那么我有什么理由应该研究 Ranger/Atlas 方向吗?

为什么更喜欢 Privacera 而不是 Immuta,反之亦然?

我还有其他选择吗?

已经完成的事情

从数据治理的角度来看,我们只做了以下事情:

  1. 在 ADLS 中定义数据区域
  2. 对敏感数据应用加密/混淆(根据 GDPR 要求)。
  3. 在 Synapse 和 Power BI 层实施行级安全 (RLS)
  4. 用于记录持久化内容和时间的自定义审计框架

要做的事情

  1. 数据沿袭和单一事实来源。即使在开始的 4 个月内,理解数据集之间的依赖关系也成为一个痛点。血统信息存储在 Confluence 内部,很难在多个地方维护和持续更新。即使现在它在某些地方已经过时了。
  2. 安全。未来业务用户可能会在 Databricks Notebooks 中进行一些数据探索。我们需要用于 Databricks 的 RLS。
  3. 数据生命周期管理。
  4. 可能还有其他与数据治理相关的内容,例如数据质量等。

【问题讨论】:

    标签: azure architecture databricks data-lake azure-data-catalog


    【解决方案1】:

    我目前正在探索 Immuta 和 Privacera,所以我还不能详细评论这两者之间的差异。到目前为止,Immuta 优雅的基于策略的设置给我留下了更好的印象。

    不过,有一些方法可以在不购买外部组件的情况下解决您上面提到的一些问题:

    1.安全

    • 对于 RLS,请考虑使用表 ACL,并仅授予对某些 Hive 视图的访问权限。

    • 要访问 ADLS 中的数据,请查看在集群上启用密码传递。不幸的是,你禁用了 Scala。

    • 您仍然需要在 Azure Data Lake Gen 2 上设置权限,这对于授予现有子项的权限来说是一种糟糕的体验。

    • 请避免使用列/行子集创建数据集副本,因为数据重复绝不是一个好主意。

    2。血统

    3.数据质量

    • 调查 Amazon Deequ - Scala 到目前为止,但有一些很好的预定义数据质量函数。
    • 在许多项目中,我们最终编写了集成测试,检查从青铜(原始)到白银(标准化)之间的数据质量。没有什么花哨的,纯粹的 PySpark。

    4.数据生命周期管理

    • 一种选择是使用本机数据湖存储生命周期管理。这不是 Delta/Parquet 格式的可行替代方案。

    • 如果您使用 Delta 格式,您可以更轻松地应用保留或伪匿名化

    • 第二个选项,假设您有一个包含所有数据集信息的表(dataset_friendly_name、路径、保留时间、区域、敏感列、所有者等)。您的 Databricks 用户使用小型包装器来读取/写入:

      DataWrapper.Read("dataset_friendly_name")

      DataWrapper.Write("destination_dataset_friendly_name")

    然后由您在后台实现日志记录和数据加载。此外,您可以跳过sensitive_columns,基于保留时间的行为(均在数据集信息表中提供)。需要相当的努力

    • 您始终可以将此表扩展为更高级的架构,添加有关管道、依赖项等的额外信息(参见 2.4)

    希望您在我的回答中找到有用的东西。知道你走哪条路会很有趣。

    【讨论】:

    • 很抱歉打扰您。您最终使用的是 Immuta 还是 Privacera?
    • 我们决定首先解决的还有更多与团队结构、所有权、角色和职责相关的基础数据治理问题。 Databricks ACL 与 Data Lake ACL 的组合满足我目前的要求 - 不是很好,也不是很糟糕。我在其他公司的同事成功地使用了 Immuta 和 Privacera。
    【解决方案2】:

    为了更好地理解您引用的用于 Azure 数据治理的选项 #2,这里有一个操作教程,展示了 applying RLS on Databricks 的体验;一个相关的Databricks video demo;和其他data governance tutorials

    全面披露:我的团队为 Immuta 的数据工程师制作内容,我希望这有助于为您节省一些研究时间。

    【讨论】:

      【解决方案3】:

      Azure Purview 是一项新服务,它可以很好地满足您的数据治理需求。目前 (2020-12-04) 处于公共预览阶段。它包含您在问题中查看的功能,例如数据沿袭,并且可以与您正在使用的 Azure 服务(Synapse、Databricks、ADLSg2)很好地配合。

      Purview 不是与云无关的解决方案。它公开了 Apache Atlas API,因此一些核心功能和集成可以在任何云中运行。我仍然会将 Purview 归类为 Azure 特定的解决方案。

      Purview 可以管理混合数据,例如数据本地或其他云。这样,它就无法确定您的数据在哪里。如果您需要在 Azure 之外拥有一些数据或用例,Purview 也将能够管理这些数据资产。

      我看到数据质量功能已在 Purview 路线图中,并将在稍后提供。稍后还将介绍其他治理主题,例如政策。

      在此处了解有关 Purview 的更多信息:https://azure.microsoft.com/en-us/services/purview/

      【讨论】:

        猜你喜欢
        • 2021-01-30
        • 2021-11-25
        • 2020-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多