繁体   English   中英

Databricks、Synapse 和 ADLS gen2 的数据治理解决方案

[英]Data Governance solution for Databricks, Synapse and ADLS gen2

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

客观的

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

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

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

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

我的解决方法

我还没有使用过任何数据治理解决方案。 我喜欢AWS Data Lake解决方案,因为它提供了开箱即用的基本功能。 据我所知, Azure 数据目录已过时,因为它不支持 ADLS gen2

经过非常快速的谷歌搜索后,我找到了三个选项:

  1. 数据块 Privacera
  2. Databricks Immuta 数据库
  3. Apache 游侠 & Apache 阿特拉斯。

目前我什至不确定第三个选项是否完全支持我们的 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. 也许其他数据治理相关的东西,比如数据质量等。

我目前正在探索 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、路径、保留时间、区域、sensitive_columns、所有者等)。 您的 Databricks 用户使用小型包装器来读/写:

    DataWrapper.Read("dataset_friendly_name")

    DataWrapper.Write("destination_dataset_friendly_name")

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

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

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

为了更好地理解您在 Azure 上为数据治理引用的选项 #2,这里有一个操作指南,演示了在 Databricks 上应用 RLS的经验; 相关的Databricks 视频演示 和其他数据治理教程

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

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/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM