适用于Databricks,Synapse和ADLS gen2的数据治理解决方案

时间:2020-05-11 22:20:36

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

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

客观

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

我们已经有大约每年25 TB的输入表。将来我们会期望更多。

企业对云不可知的解决方案有强烈的要求。由于Databricks可以在AWS和Azure上使用,因此他们仍然可以接受。

问题

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

我的工作坊

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

快速浏览后,我发现了三个选择:

  1. Databricks Privacera
  2. Databricks Immuta
  3. Apache Ranger和Apache Atlas。

目前,我甚至不确定第3个选项是否完全支持我们的Azure堆栈。此外,它将有更大的发展(基础架构定义)工作。 那么我有什么理由应该关注Ranger / Atlas的方向?

为什么优先选择Privacera而不是Immuta,反之亦然?

我还应该评估其他选项吗?

已经完成的事情

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

  1. 在ADLS内定义数据区域
  2. 由于GDPR要求,对敏感数据应用加密/混淆。
  3. 在Synapse和Power BI层上实现行级安全(RLS)
  4. 用于记录什么和何时保留的自定义审核框架

要做的事情

  1. 数据血统和真理的单一来源。即使从开始起的四个月,了解数据集之间的依赖关系仍然是一个痛苦的痛点。沿袭信息存储在Confluence内部,很难在多个地方进行维护和持续更新。即使到现在,它在某些地方也已经过时了。
  2. 安全性。将来,业务用户可能会在Databricks Notebook中进行一些数据探索。我们需要针对Databrick的RLS。
  3. 数据生命周期管理。
  4. 也许其他与数据治理有关的东西,例如数据质量等。

3 个答案:

答案 0 :(得分:2)

为了更好地理解您为Azure上的数据治理所引用的选项#2,这是一个方法指南,展示了applying RLS on Databricks的经验;相关的Databricks video demo;和其他data governance tutorials

全面披露:我的团队为Immuta的数据工程师提供内容,我希望这可以为您节省一些研究时间。

答案 1 :(得分: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,路径,保留时间,区域,sensitive_columns,所有者等)。您的Databricks用户使用一个小的包装器来读取/写入:

    DataWrapper.Read(“ dataset_friendly_name”)

    DataWrapper.Write(“ destination_dataset_friendly_name”)

然后由您决定实现日志记录,在后台加载数据。另外,您还可以跳过sensitive_columns(基于保留时间)(在数据集信息表中均可用)。需要一些努力

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

希望您能从我的回答中找到有用的信息。知道您走哪条路会很有趣。

答案 2 :(得分:0)

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/