本文属于【Azure 架构师学习笔记】系列。
本文属于【Azure Databricks】系列。
接上文 【Azure 架构师学习笔记】- Azure Databricks (5) - Unity Catalog 简介
UC的关键特性
之所以DataBricks要用UC, 很大程度是对安全的管控。从上文可以了解到它的四大特性:
- 数据访问控制: 谁可以访问什么数据
- 数据访问审计: 收集访问数据的行为
- 数据血缘: 收集上游来源和下游消费者
- 数据发现: 可用于查询和发现已授权的资产
UC开启前后的变化
这是一个很重要的图,如果不是从0开始使用UC 而是迁移,那么很有必要了解前后发生了什么事。
从下图可以看出,UC 把User/Group management, Metastore, Access controls 从过去单个workspace中提取出来集中管理。workspace只负责计算资源的管理。
这种变化会使得原有在单个workspace上的配置迁移到UC 内部,这个过程会出现很多问题和改动, 所以要有心理准备在迁移过程中会花费不少时间。
接下来我们先搭建环境,以便后续重现很多问题。
创建UC
首先假设你已经有了一个ADB, 并具有了Admin的权限。然后进去ADB的workspace,从右上角如下图所示的“Manage Account”进去配置界面。
然后从下图所示点击“data”进入常见Metastore界面。
点击“Create metastore”
配置必填信息,对于非必填的选项(在稍微旧一点的版本中这四个都是必填项)我们可以看看它的说明,对于实际项目而言,我们最好建立一个单独的Storage Account(ADLS Gen2 类型)来存储。
接下来快速演示一下,创建一个ADLS Gen 2 ,过程略。然后创建一个container, 我这里叫uccontainer, 并在其内部创建一个目录名为:folder
然后从endpoint处找到“Data Lake Storage”的endpoint值, 这个值以"Container名字@endpoint名字/目录名"的格式填入,如我这里:
uccontainer@georgesa202311.dfs.core.windows.net/folder 为录入值。
接下来看access connector,如果上面指定了ADLS , 那么这个值就要同时提供。
从portal上搜索并点击进去创建。
可以简单默认创建。
获取下图中的值。填入上面metastore的创建界面中。
在点击创建时,可能会出现以下报错,这是因为引入了额外的Storage Account后需要赋权:
授权ADLS Gen2
在所用的ADLS 上点击IAM, 选择“storage blob data contributor”:
授权给Accessconnector:
授权成功:
除了RBAC 外,还要授权ACL:
这里把Access Connector授予Read, Write 和Execute权限:
除了Access Permissions之外,还要配置Default permissions,这是针对后续新增加的子目录,如果没有这个配置,权限仅针对当前配置有效。
配置完毕之后,再次点击创建,可以看到创建metastore成功:
启用metastore
按下图步骤启用metastore
启用成功。
点击【open】即可开始使用UC。
从下面图中可以看到前一章提到的一些关于UC 的内容。
也可以在此处进行控制访问。
小结
到此为止,我们有了一个初步的环境,接下来将继续深入研究UC。