本文属于【Azure 架构师学习笔记】系列。
本文属于【Azure Databricks】系列。
接上文 【Azure 架构师学习笔记】- Azure Databricks (7) –Unity Catalog(UC) 基本概念和组件
前言
UC 简单来说,就是管理两样东西:用户和元存储。
用户管理
所有Databricks的用户和Service Principal都存储在UC内部。这些实体的授权,身份验证等都由UC 来管理。
如果一个新用户(如数据科学家)需要访问ADB 的资源,Databricks 组件引用 Unity Catalog 元存储来检索和验证元数据,从而确保整个环境的一致性和安全性。
同时UC 的认证服务会检查用户的实体是否在UC 的数据库中, 然后是否有足够的权限进行所需的操作。
元存储
ADB 里面有各种对象,如数据库,表和试图等,对象也有解释自己的数据,称之为元数据, 比如表的结构定义,数据的类型等,都会集中存储在元存储中,然后通过统一的视图来展示各个workspace的信息。
当一个数据工程师在workspace中创建一个数据库及表,那么这些对象的元数据就会存储到UC 的元存储中。这些信息通常包括schema,位置,授权情况等。
小结ei
当workspace 与UC 整合之后,你的workspace就被UC 进行了集中管控,UC 可以记录在workspace中的一切操作,如用户,用户正在使用的表,使用了什么权限进行操作。
UC 就类似家里的监控一样(不止一个),对你的家里进行全方位的监视。一旦连接到UC 之后,每次你运行一个查询,UC都会检查是否有权限,然后操作了什么。
再细化地说, 当你在ADB中想更新一个表,UC 会检查你的权限是否足以查看这个表,查看这个列,然后是否有权限进行更新。在这方面来说,它起到了过去各种数据库管理工具中的权限管理的工作,但是如果没有UC ,ADB 中的权限就只能到workspace级别,一旦workspace多起来管理将会越来越复杂。
现在的Spark SQL 引擎已经开始依赖于UC 进行权限检查和分析你的查询。对于用户而言,你可以把管理权限的工作交给UC ,只需要专注数据分析上。
当然UC 需要不少的额外配置,然后还没有完全兼容需要原有的功能,在使用过程中需要调整和适应。