首页 > 解决方案 > 适用于 Databricks、Synapse 和 ADLS gen2 的数据治理解决方案

问题描述

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

客观的

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

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

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

问题

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

我的解决方法

我还没有使用任何数据治理解决方案。我喜欢AWS Data Lake解决方案,因为它提供了开箱即用的基本功能。AFAIK,Azure 数据目录已过时,因为它不支持 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. 也许其他与数据治理相关的东西,例如数据质量等。

标签: azurearchitecturedatabricksdata-lakeazure-data-catalog

解决方案


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

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

1. 安全

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

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

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

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

2. 血统

3. 数据质量

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

4.数据生命周期管理

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

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

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

    DataWrapper.Read("dataset_friendly_name")

    DataWrapper.Write("destination_dataset_friendly_name")

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

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

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


推荐阅读