Unity目录是什么

本文章介绍UnityCatalog统一治理解决方案Lakehouse上的数据和AI资产

Unity目录概述

UnityCatalog提供中央存取控制、审核和数据发现能力横跨Databricks工作空间

Unity目录图

Unity目录关键特征包括:

  • 定义一次,安全无处Unity目录提供单位管理数据访问策略,该策略适用于所有工作空间和个人

  • 达标安全模型UnityCatalog安全模型以ANSI标准SQL为基础,允许管理员使用熟悉语法、目录级数据库(也称Schemas)、表和视图在现有数据湖中授予权限

  • 内建审计Unity目录自动捕捉记录访问数据用户级审计日志

  • 数据发现Unity目录允许你标签并文档数据资产,并提供一个搜索接口帮助数据消费者查找数据

Unity目录对象模型

Unity目录中初级数据对象层次从元存储器流到表或卷:

  • 元存储器:顶级元数据容器元存储显示三级命名空间目录.模式化.表格显示组织数据

  • 分类表:对象层次第一层用于组织数据资产

  • 切马:图则二层对象层次并包含表和视图

  • 卷积:卷与表和视图并排对象层次最小层,为非表数据提供管治

  • 表2:最小对象层次为表视图

Unity目录对象模型图

简单视图易容UnityCatalog对象更多细节见安全对象Unity目录.

UnityCatalog使用a引用所有数据三级命名空间:catalog.schema.table.

元存储器

元存储器是Unity目录中顶级对象容器存储数据资产元数据(表视图)和访问权限Databricks账号管理员应为其运营的每个区域创建一个元存储器并分配到同一区域Databricks工作空间工作空间使用UnityCatalog时,必配有UnityCatalog元库

每一个元商店配置管理存储位置 谷歌云帐户中GCS桶看吧托管存储器.

注解

元存储器不同于Hive元存储器,它包含在Unity目录无法实现的Databricks工作空间中工作空间包含遗留Hive元存储器时,元存储器中的数据与UnityCatalog定义数据并存,编成目录命名hive-metasre.注意hive-metasre目录非Unity目录管理,不从Unity目录定义的特征集中得益

看吧创建Unity目录元件.

托管存储器

账户管理员创建元存储器时,必须将Google云账户中GCS桶中的存储点相联使用管理存储器.UnityCatalog还允许用户将受控存储点与目录和模式关联

托管存储有下列属性:

  • 托管表和管理批量存储数据 和元文件管理存储

  • 托管存储程序无法与外部表、外部容量或其他托管存储程序重叠

下表描述管理存储方式申报并关联UnityCatalog对象

关联Unity目录对象

如何设置

关系外部位置

元存储器

元商店创建期间由账号管理员配置

无法重叠外部位置

分类表

使用目录创建时指定定位关键字

必须是外部位置内封存

切马

使用 scheme创建时指定定位关键字

必须是外部位置内封存

管理存储位置用于存储数据和元数据管理表和管理量使用下列规则:

  • 内装模式拥有受控位置时,数据存储在受控位置

  • 内装模式没有受控位置但目录有受控位置时,数据存储在目录受控位置

  • 内存模式或内存目录都没有受控位置时,数据存储于元站管理位置

存储证书和外部定位

管理下云存储外部表、外部容量和管理存储时 Unity目录介绍下列对象类型:

  • 存储证书封装长云证书提供云存储举例说,服务帐户可访问GCS桶

  • 外部位置内含存储证书路径和云存储路径引用

看吧管理外部位置和存储证书.

类集

目录是Unity目录三大级命名空间的第一层用来组织数据资产用户可以看到所有目录使用CATALOG数据权限.

所有用户都拥有使用CATALOG权限发布主控目录整理上头主控目录面向刚开始使用Unity目录的组织添加用户和数据时,应添加目录以维护数据层次结构,从而有效控制访问

看吧创建并管理目录.

轮廓图

schema(也称数据库)为UnityCatalog三级命名空间第二层系统整理表和视图用户可查看所有模式分配使用雪马市权限并发使用CATALOGschema父目录许可访问或列表图案中表或视图时,用户也必须有安全选择权限表或视图

看吧创建并管理smetas.

卷积

预览

音量输入公开预览databricks运行时13.2

卷存于UnityCatalog三级命名空间第三层音量是表表、视图和其他对象的兄弟姐妹,按UnityCatalog模式组织

卷中包含目录和文件存储于任何格式卷提供非表访问数据,意指卷文件无法注册为表

  • 创建卷量用户必有环境变换VOLUME系统使用雪马市权限模式, 并必须拥有使用CATALOG权限父目录

  • 读文件目录存储卷内时,用户必须拥有读取VOLUME系统权限,使用雪马市权限自父机程使用CATALOG权限父目录

  • 要添加、删除或修改卷内存储的文件和目录,用户必须拥有写作VOLUME系统权限,使用雪马市权限自父机程使用CATALOG权限父目录

音量可以是管理式外部.

托管卷

UnityCatalog默认存储位置管理批量存储文件受控卷提供受控文件工作位置时,方便解析,无需管理创建和管理外部位置和存储证书

下优先级指哪个位置用于管理容量 :

  • Schema定位

  • Catalog位置

  • UnityCatalog根存储位置

当删除受控卷时,封存卷中的文件在30天内从云租户中删除

看吧管束量是什么.

外部卷

外部卷注册到 Unity目录外部位置并存取云存储中的现有文件而无需数据迁移用户必须拥有环境变换外部化VOLUME系统外部位置权限创建外部音量

外部量支持假想文件由其他系统生成并从Databricks内部使用对象存储或Databricks外工具需要直接文件存取

UnityCatalog不管理外部量文件生命周期和布局下降外部卷时UnityCatalog不删除底层数据

看吧外部体积是什么.

表单

表格居于UnityCatalog三级命名空间第三层内含数列数据创建表时用户必有环境变换使用雪马市权限模式, 并必须拥有使用CATALOG权限父目录查询表时用户必须拥有安全选择权限表,使用雪马市权限自父机程使用CATALOG权限父目录

可选表管理式外部.

托管表

托管表默认创建Unity目录表UnityCatalog管理生命周期文件布局数据库外工具不可直接操作这些表内文件

默认时管理表存储根存储位置可任选指定目录或模式级表控存储位置,压倒根存储位置托管表总使用三角洲表格式

当受控表下降时,30天内从云租户删除底层数据

看吧托管表.

外部表

外部表数据生命周期表和文件布局不由Unity目录管理外部表格注册Unity目录中大量现有数据,或需要直接访问数据使用工具数据bricks集群或DatabricksSQL仓库

下拉外部表时 Unity目录不删除底层数据管理外部表特权并用它查询与管理表相同方式查询

外部表可使用以下文件格式:

  • DELTA系统

  • CSV

  • JSON系统

  • AVRO系统

  • PARQUET数据库

  • ORC语言

  • 文部文摘

看吧外部表.

视图

视图指从元站内一个或多个表视图创建的单读对象居于UnityCatalog第三层三级命名空间.可从表和其他视图创建视图多式编程和目录可创建动态视图启动行和列权限

看吧创建动态视图.

模型类

模型建在UnityCatalog三级命名空间第三层上下文中,模型指机学习模型注册MLFl模式寄存器.创建Unity目录模型时用户必须拥有环境变换MODEL特权目录或模式用户也必须拥有使用CATALOG父目录特权使用雪马市上父机

Unity目录身份管理

UnityCatalog使用Databricks账号中的身份解决用户、服务主体和分组问题并强制执行权限

配置账号标识管理用户、服务主体和分组.创建时参考用户、服务主体和分组访问控制策略Unity目录

Unity目录用户、服务主体和分组也必须加到工作空间中,以笔记本访问Unity目录数据,数据bricksSQL查询,数据探索者或RESTAPI命令用户分配服务主体和分组工作空间调用身份协联.

拥有UnityCatalog元站的所有工作空间都启动身份协联

特殊考量分组

工作空间中已存在的分组贴上标签工作空间局部帐户控制台工作空间局部分组无法用于Unity目录定义访问策略您必须使用账号级分组工作空间局部组在命令中引用时,该命令返回未发现组的错误先前使用工作空间局部组管理笔记本和其他人工制品存取时,这些权限继续有效

看吧管理分组.

Unity目录管理角色

Unity目录管理需要下列管理员作用:

  • 账号管理员可管理身份、云资源并创建工作空间和Unity目录元

    账号管理员可启动Unity目录工作空间工地和元管理权限都可授予

  • 元控件管理元件存储器内所有可解密对象的特权和所有制,例如谁能创建目录或查询表

    创建UnityCatalog元站的账号管理员成为初始元站管理员元存储器管理员也可以选择将此角色委托给另一个用户或组我们建议分配元商店管理员集团,在这种情况下,集团成员获得元商店管理员特权看吧向集团转移对元存储器的所有权.

  • 工作空间管理员可增加用户工作空间,分配工作空间管理员角色,并管理工作空间对象和功能访问,如创建集群和改变作业所有制的能力

看吧管理用户、服务主体和分组.

Unity目录数据权限

Unity目录中数据默认安全用户初始无法访问元楼数据存取权可由元管理器、对象所有者或目录或图内对象所有者提供Unity目录中安全对象等级分明,特权向下继承

可使用数据探索器、SQL命令或RESTAPIs分配并撤销权限

看吧Unity目录管理权限.

Unity目录集群访问模式

存取Unity目录数据时,集群必须配置正确访问模式.UnityCatalog默认安全如果集群不配置Unity-Cata可访问模式(即共享或分配),集群无法访问UnityCatalog数据

看吧创建集群SQL仓库并存UnityCatalog.

湖中联合会和Unity目录

bob体育客户端下载Lakehouse联合会是Databricks查询联合会平台词名查询联合会描述集合特征使用户和系统对多片数据源运行查询而无需将所有数据迁移到统一系统

databricks使用Unity目录管理查询协联Unity目录配置只读连接热门外部数据库系统并创建外国目录镜外数据库UnityCatalog数据管治和数据线程工具确保数据存取得到管理并审核用户在数据库工作空间中所有联想查询

看吧使用Lakehouse联合会运行查询.

如何为组织建立Unity目录

建立Unity目录

  1. 配置GCS桶 Unity目录可用于存储并访问GCP账号中的数据

    数据布列克生成服务账号 并使用GSS水桶访问权限

  2. 创建区域元存储器

  3. 工作空间附加元站工作空间对UnityCatalog中数据管理将拥有相同的视图

  4. 新建账号时,向Databricks账号添加用户、分组和服务本金

接下去,你创建并授权访问目录、图案和表

完整设置指令见开始使用Unity目录.

支持计算

Unity分类库运行数据bricks运行时间11.3LTS或以上UnityCatalog默认支持全部SQL仓库计算版本

先前版本数据库运行时不支持 UnityCatalogGA特性和功能

更新UnityCatalog功能后端Databricks运行时版信息见发布注解供那些版本使用

支持区域

支持Unity目录区域列表见数据砖云与区域.

支持数据文件格式

UnityCatalog支持表格式

  • 托管表必须使用三角洲表格式

  • 外部表可使用性三角洲,CSV,JSON系统,阿夫罗,解析器,ORC语言文本翻译.

约束

UnityCatalog有下列限制

注解

数据库运行时间小11.3LTS下方可能存在额外限制,此处不列UnityCatalog使用数据bricks运行时间11.3LTS或以上支持

通用限制

  • scala、R和用Databricks运行机器学习时间支持集群使用单用户访问模式工作载量不支持行级或列级安全使用动态视图

  • Databricks运行时间13.1及以上支持浅克隆从现有的UnityCatalog管理表创建UnityCatalog管理表Databricks运行时间13.0和13.0均不支持UnityCatalog浅克隆看吧浅克隆Unity目录管理表.

  • 贪心表不支持 UnityCatalog表运行命令试图创建Unity目录表时,它会破例

  • 多区工作空间写同道或三角湖表可能导致不可靠性能,如果某些集群访问UnityCatalog

  • 自定义分区程序使用命令类远洋表单ADD系统构件Unity目录表不支持UnityCatalog访问表使用目录式分区

  • DataFrame编译运算UnityCatalog模式只支持Delta表,不支持其他文件格式用户必须拥有环境变换特权父机并必须是现有对象的拥有者或拥有对象模范特权对象

  • spark上传作业支持单用户存取,但不共享集群看吧集群存取模式是什么.

  • Databricks运行时间13.1和13.1和13.1中,你无法使用PythonUDFs,包括UDAFs、UDTFs和spandasspark应用PandasmapInPandas地图)databricks运行时13.2和以上,ythonUDFs支持

  • 前工作空间组(即工作空间级组)无法用于UnityCatalogGrant以确保对跨工作空间分组的一致视图grant语句使用群集,创建帐户级群集并更新主机或群管理自动化程序(如SCIM、Okta和AAD连接器和Terraform)转参考帐户端点而非工作空间端点看吧账户组和工作空间局部组之间的差异.

  • 标准scala线程池不支持反之,使用特殊线程池org.apache.spark.util.ThreadUtils举个例子org.apache.spark.util.ThreadUtils.newDaemonFixedThreadPool.下线程池线程UTLS不支持 :ThreadUtils.newForkJoinPool和任何ScheduledExecutorService线程池

Unity目录中所有对象名均适用下列限制:

  • 对象名称不得超过255个字符

  • 禁止下列特殊字符:

    • 周期性.)

    • 空间类)

    • 向前斜线/)

  • ASCII控件字符

  • Delete字符 (7Fhx)

  • UnityCatalog存储所有对象名小写

  • sql中引用UC名称时,必须使用回溯式解密以跳出名中包含词像连字符等特殊字符(betphens)-)

注解

列名使用特殊字符,但如果使用特殊字符,则所有SQL语句中必须用回溯式解析UnityCatalog保留列名外壳,但UnityCatalog表查询不敏感

结构流支持

Unity目录表结构流支持(管理或外部)取决于运行中的Databricks Runtime版本以及使用共享或单用户访问模式

共享集群支持需要Databricks Runtime12.2LTS

  • ython专用

  • Apache连续处理模式不支持看吧连续处理Spark结构流编程指南

  • applyInPandasWithState不支持 。

  • socket源码工作不支持

  • StreamingQueryListener无法使用证书或与Unity目录管理对象交互

  • 上头sourceArchiveDir使用时必须和源相同外部位置option("cleanSource",档案化Unity目录管理数据源

  • kafka源码和汇码选择不支持

    • kafka.sasl.client.callback.handler.class

    • kafka.sasl.login.callback.handler.class

    • kafka.sasl.login.class

    • kafka.partition.assignment.strategy

  • Kafka选项在Databricks运行时间13.0中支持,但在Databricks运行时间12.2LTS中不支持只能指定Unity目录管理外部位置

    • kafka.ssl.truststore.location

    • kafka.ssl.keystore.location

单用户存取支持可见数据列车运行时间11.3LTS以上,限制如下:

  • Apache连续处理模式不支持看吧连续处理Spark结构流编程指南

  • StreamingQueryListener无法使用证书或与Unity目录管理对象交互

  • 异步检查站不支持Databricks运行时间11.3LTS数据库运行时间12.0和12.0以上支持

并见Unity编程结构化流.

资源定额

UnityCatalog执行所有隐密对象资源定额限制在整个UnityCatalog中尊重相同的层次组织期望超出资源限值时,联系您的Databricks账号代言人

下定值表示Unity目录父对象

对象类

父级

值传

表格显示

schema数据库

万万

音量

schema数据库

万万

模式化

目录

万万

目录

元存储器

1000

存储证书

元存储器

二百

外部位置

元存储器

500

函数类

模式化

万万

三角洲共享限值见资源定额.