我是数据治理的新手,如果问题缺少某些信息,请原谅我。
我们正在从零开始为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。
快速浏览后,我发现了三个选择:
目前,我甚至不确定第3个选项是否完全支持我们的Azure堆栈。此外,它将有更大的发展(基础架构定义)工作。 那么我有什么理由应该关注Ranger / Atlas的方向?
为什么优先选择Privacera而不是Immuta,反之亦然?
我还应该评估其他选项吗?
从数据治理的角度来看,我们仅做以下事情:
答案 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。数据质量
4。数据生命周期管理
一种选择是使用本机数据湖存储生命周期管理。在Delta / Parquet格式之后,这不是可行的选择。
如果使用Delta格式,则可以更轻松地应用保留或伪匿名化
第二个选项,假设您有一个表,其中包含有关所有数据集的信息(dataset_friendly_name,路径,保留时间,区域,sensitive_columns,所有者等)。您的Databricks用户使用一个小的包装器来读取/写入:
DataWrapper.Read(“ dataset_friendly_name”)
DataWrapper.Write(“ destination_dataset_friendly_name”)
然后由您决定实现日志记录,在后台加载数据。另外,您还可以跳过sensitive_columns(基于保留时间)(在数据集信息表中均可用)。需要一些努力
希望您能从我的回答中找到有用的信息。知道您走哪条路会很有趣。
答案 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/