您刚刚听说了 Databricks Unity Catalog,现在正想知道它到底是什么,以及它在现代数据管理中扮演什么角色。
本综合指南将向您介绍 Databricks Unity Catalog,并帮助您理解它在现代数据栈中的数据分析工作中的重要性。
什么是 Databricks Unity Catalog?
Databricks Unity Catalog 是一项统一的数据治理服务,用于简化并优化分析工作负载的 数据管理 。它将各类 商业智能工具 、 数据库 、 数据仓库 和 数据湖 所使用的不同类型的元数据汇聚到一个中心位置。这促进了跨系统的互操作性,使查找和访问结构化与非结构化数据更加容易。
随着组织扩展其数据运营,在多个数据平台上管理访问、治理与合规性会变得复杂。Unity Catalog 通过提供统一的元数据、访问控制和血缘追踪层来应对这一挑战,从而降低运维开销。
这种集中式数据治理方法在共享常见数据产品时带来一些益处,例如:
Databricks Unity Catalog 的核心组件包括:
Metastore :用于存储元数据的存储层,简化数据发现并改进数据血缘。
Catalog :用于存储、管理与发现数据资产的中央存储库。
Schema :在 Databricks Unity Catalog 中用于组织和管理数据资产的数据模型。
Granularity :元数据追踪的明细级别。它允许团队在不同层级(目录、架构、表,甚至列)上管理访问,确保对数据资产的细粒度控制。"。
表、视图与卷 :这些是 Databricks Unity Catalog 中用于表示结构化与非结构化数据的基础数据对象。
数据血缘 :对数据从源到目的地的流动进行可视化表示,有助于跟踪变更并确保数据完整性。
这些组件协同工作,提供全面的数据治理解决方案,简化数据管理并促进团队间协作。
Unity Catalog 的优势
使用 Databricks Unity Catalog 有多项关键优势,概述如下:
1. 数据治理与合规
Databricks Unity Catalog 为存储与管理元数据提供了集中位置,确保跨不同系统的 数据治理 与合规。
例如,Unity Catalog 会为生产环境中的机器学习模型提供潜在 PII(个人可识别信息)检测警报。借助数据血缘,这些模型可以轻松回滚。
这有助于组织维护数据完整性、遵守法规并降低风险。
2. 协作与自助分析
Unity Catalog 通过提供用于存储数据资产的中心位置来促进跨团队协作。这消除了信息孤岛并加强跨职能沟通,推动 自助式分析 。
数据分析师与业务用户可以轻松发现并访问相关数据资产,从而减少花在数据准备上的时间。
Unity Catalog 的关键用例
Unity Catalog 可通过多种方式落地实施:
1. 数据访问控制与安全
Databricks Unity Catalog 支持对数据资产实施细粒度访问控制,确保数据仅可由授权用户访问。它还允许在团队之间安全共享敏感数据。
2. 数据发现与血缘
Unity Catalog 的 元数据管理 能力支持高效的数据发现,并提供数据从源头到目的地的可视化表示,有助于追踪数据集变更,便于审计与故障排查。
3. 简化合规与审计
借助集中存放的所有数据资产及其血缘,Unity Catalog 简化了合规报告与审计流程,降低确保法规合规所需的时间与精力。
如何在 Databricks 中启用 Unity Catalog
现在,让我们通过一个简单的设置教程来上手 Unity Catalog:
先决条件
在启用并使用 Unity Catalog 之前,请确保满足以下要求:
Databricks 高级版或企业版方案
Unity Catalog 仅支持 Databricks 的 Premium 或 Enterprise 等级。请确保您的 Databricks 工作区使用其中一种方案。
适当的权限
账户管理员 :您必须在 Databricks 中拥有 Account Admin 角色,才能在账户级别设置与管理 Unity Catalog。
工作区管理员 :您应当是要启用 Unity Catalog 的该工作区中的 Workspace Admin。
Unity Catalog 需要在账户级别配置 metastore。如果尚未创建,则需要在设置过程中创建。对于试用版 Databricks 账户,系统会为您预先创建带有 metastore 的目录。
支持的云平台
当前,Unity Catalog 支持:
请确保您在上述云中的受支持 Databricks 环境中使用。
托管存储或外部位置
决定您是要使用托管表(托管存储),还是创建引用外部位置(如 S3、ADLS 或 GCS)数据的外部表。不同方式可能涉及不同的权限要求。
启用 Unity Catalog:分步指南
浏览 Databricks 设置
登录 Databricks 账户控制台
进入 Catalog 页面
在(账户控制台的)左侧导航窗格中,查找 Catalog (取决于您的 Databricks 版本)。
在 Databricks 试用版中,应已创建 Serverless Starter Warehouse 的 metastore 与目录。
启动 SQL warehouse 计算
在左侧导航窗格中选择 SQL Warehouses ,然后点击右侧的 播放 图标启动 Serverless Starter Warehouse。
分配到工作区
在目录配置中的 Workspaces 下,附加应使用该目录的工作区。
配置 Unity Catalog
分配权限
作为管理员,在 Databricks 工作区左侧边栏进入 Catalog 。
选择您想要管理的工作区。
点击 Permissions 选项卡来设置权限(例如,谁可以创建目录、架构和表)。默认情况下,账户管理员或工作区管理员可能拥有全部权限,但您可以将权限委派给其他用户或用户组。
创建目录和架构(如需)
您可以为不同团队、项目或数据域创建更多目录与架构。这通常通过 SQL 命令完成(如下所示)。
CREATE CATALOG IF NOT EXISTS demo_catalog
COMMENT 'This catalog is created for Unity Catalog demo' ; 技术支持
配置外部位置(可选) 如果您需要存放在外部位置的外部表:
在 Unity Catalog 中创建指向云存储(S3、ADLS 或 GCS)的外部位置。
通过 Unity Catalog 向用户或用户组授予对这些位置的读写权限。
示例代码与用法
以下是当 Unity Catalog 在您的工作区中配置完成后,可使用的一些 Databricks 笔记本/SQL 命令示例。
您可以在 Databricks 笔记本或工作区内的 SQL 编辑器中运行它们。
为目录授予权限
为目录授予权限可确保特定用户组能够访问并与其中的数据交互。然而,仅有 USAGE 并不允许用户查询数据——它只是让用户看到该目录的存在。若要允许完整交互,您需要在架构或表级别授予其他权限。
例如,要让数据工程师访问某个目录:
GRANT USAGE ON CATALOG demo_catalog TO data_engineers_group; 技术支持
如果他们还需要在该目录中创建架构:
GRANT CREATE ON CATALOG demo_catalog TO data_engineers_group; 技术支持
在目录内创建架构(数据库)
Unity Catalog 中的架构用于在目录内组织表与视图,类似于传统关系型数据库系统中数据库承载表的方式。使用 IF NOT EXISTS 可避免在架构已存在时产生错误。
要在 demo_catalog 中创建一个用于分析数据的架构:
CREATE SCHEMA IF NOT EXISTS demo_catalog. analytics
COMMENT 'Schema for analytics data' ; 技术支持
创建后,您可能需要为特定用户授予权限 :
GRANT USAGE ON SCHEMA demo_catalog. analytics TO data_analysts_group; 技术支持
这允许 data_analysts_group 看到该架构,但尚不能查询其中的表。
创建托管表
托管表完全由 Unity Catalog 控制,这意味着 Databricks 会处理存储与元数据追踪。这简化了管理,但也意味着删除表时数据会一并被删除。
要创建一个用于销售数据的托管表:
USE CATALOG demo_catalog;
USE SCHEMA analytics;
CREATE TABLE IF NOT EXISTS sales_data (
transaction_id STRING,
product_id STRING,
quantity INT ,
price DECIMAL ( 10 , 2 ) ,
transaction_date DATE
)
COMMENT 'Managed table for sales data' ;
技术支持
为表授予权限
为表授予权限可确保用户能够查询或修改数据。SELECT 权限允许用户读取数据,但不能修改。
要允许数据科学家 读取销售表:
GRANT SELECT ON TABLE demo_catalog. analytics. sales_data TO data_scientists_group;
技术支持
如果他们需要插入新记录 ,请授予 INSERT:
GRANT INSERT ON TABLE demo_catalog. analytics. sales_data TO data_scientists_group;
技术支持
若需完全控制 (读、写、修改),请使用:
GRANT ALL PRIVILEGES ON TABLE demo_catalog. analytics. sales_data TO data_scientists_group;
技术支持
外部位置设置
如果您有外部数据位置(例如 AWS 上的 S3),可以在 Unity Catalog 中创建一个外部位置对象:
CREATE EXTERNAL LOCATION demo_external_location
URL 's3://my-demo-bucket/my-path/'
WITH CREDENTIAL my_storage_credential
COMMENT 'External location for demo data' ;
GRANT READ , WRITE ON EXTERNAL LOCATION demo_external_location
TO data_engineers_group; 技术支持
Databricks Unity Catalog 架构
Databricks Unity Catalog 构建于开源项目 Apache Spark 之上,后者为大规模数据处理提供分布式计算平台。它使用 Hive Metastore 存储关于数据集与表的元数据,从而实现高效的管理与查询性能。
Unity Catalog 的架构包含三个主要组件:
元数据存储(Metadata Store) :用于存储与数据集、表、外部位置及其他对象相关的全部元数据。
目录(Catalog) :作为元数据存储与计算层之间的接口。它提供存储于元数据存储中的所有元数据的统一视图,便于用户访问与查询数据。
工作区(Workspaces) :工作区是可安全存储和管理数据的虚拟位置。它们通过提供数据访问与操作的中心位置,便于团队间协作。
来源: Databricks
借助 Databricks Unity Catalog,用户无需关心底层基础设施即可轻松管理和查询数据。用户还可以通过向他人授予特定权限(例如读写权限)来开展协作,权限对象可以是不同的 数据集 或表。
要授予这些权限,用户可以使用类似“ GRANT ”的 SQL 命令来指定哪些用户或用户组可以访问特定数据。这确保只有授权人员才能访问敏感信息。
Unity Catalog 如何与现有数据系统集成
Unity Catalog 可与现有数据系统无缝集成,如 Amazon S3 与 Azure Blob Storage ,便于从不同来源访问与管理数据。这样,用户无需手动将数据移动或复制到 Databricks,即可快速分析大型数据集。
Unity Catalog 还支持多种文件格式,如 CSV、JSON、Parquet 和 Avro,使处理不同类型数据更加灵活。
Databricks Unity Catalog 最佳实践
在使用 Unity Catalog 时,有一些最佳实践可帮助确保高效、有效的数据管理。
包括以下方面:
为表与列使用描述性命名约定,便于理解数据。
定期更新 Unity Catalog 中的元数据,以跟踪对底层数据所做的任何更改。
使用访问控制来限制对敏感数据的访问,遵循“最小权限”原则。即根据用户或用户组的角色与职责,仅授予必要权限。
使用标签与标记对 Unity Catalog 中的数据集进行分类与组织,便于搜索特定数据。
这些措施将有助于确保有效的数据治理与最佳性能。
常见挑战及应对方法
Unity Catalog 并非万无一失,在有效管理数据方面也会面临一些挑战。
常见问题包括:
数据重复 :同一数据被多次存储,导致不一致与错误。
数据质量 :维护不善或不准确的数据会影响业务决策与流程。
复杂数据层级 :大型数据集具有复杂关系时,可能难以在 Unity Catalog 中进行组织与管理。
为应对这些挑战,建议:
定期审查与清理数据以避免重复 ,包括移除不必要或过时的数据。
实施数据质量检查与校验 ,以确保 Unity Catalog 中数据的准确性。
结语
Unity Catalog 借助 metastore、目录与工作区,将数据以单一视图进行管理,是一款功能强大的工具。它为存储与组织数据提供集中位置,使数据更易于在您的业务流程中进行管理与利用。
想进一步了解 Databricks?不妨查看我们的 Databricks 入门 课程、 Databricks 教程 指南,以及 Databricks 网络研讨会 。
您刚刚听说了 Databricks Unity Catalog,现在正想知道它到底是什么,以及它在现代数据管理中扮演什么角色。
本综合指南将向您介绍 Databricks Unity Catalog,并帮助您理解它在现代数据栈中的数据分析工作中的重要性。
什么是 Databricks Unity Catalog?
Databricks Unity Catalog 是一项统一的数据治理服务,用于简化并优化分析工作负载的数据管理。它将各类商业智能工具、数据库、数据仓库和数据湖所使用的不同类型的元数据汇聚到一个中心位置。这促进了跨系统的互操作性,使查找和访问结构化与非结构化数据更加容易。
随着组织扩展其数据运营,在多个数据平台上管理访问、治理与合规性会变得复杂。Unity Catalog 通过提供统一的元数据、访问控制和血缘追踪层来应对这一挑战,从而降低运维开销。
这种集中式数据治理方法在共享常见数据产品时带来一些益处,例如:
Databricks Unity Catalog 的核心组件包括:
这些组件协同工作,提供全面的数据治理解决方案,简化数据管理并促进团队间协作。
Unity Catalog 的优势
使用 Databricks Unity Catalog 有多项关键优势,概述如下:
1. 数据治理与合规
Databricks Unity Catalog 为存储与管理元数据提供了集中位置,确保跨不同系统的数据治理与合规。
例如,Unity Catalog 会为生产环境中的机器学习模型提供潜在 PII(个人可识别信息)检测警报。借助数据血缘,这些模型可以轻松回滚。
这有助于组织维护数据完整性、遵守法规并降低风险。
2. 协作与自助分析
Unity Catalog 通过提供用于存储数据资产的中心位置来促进跨团队协作。这消除了信息孤岛并加强跨职能沟通,推动自助式分析。
数据分析师与业务用户可以轻松发现并访问相关数据资产,从而减少花在数据准备上的时间。
Unity Catalog 的关键用例
Unity Catalog 可通过多种方式落地实施:
1. 数据访问控制与安全
Databricks Unity Catalog 支持对数据资产实施细粒度访问控制,确保数据仅可由授权用户访问。它还允许在团队之间安全共享敏感数据。
2. 数据发现与血缘
Unity Catalog 的元数据管理能力支持高效的数据发现,并提供数据从源头到目的地的可视化表示,有助于追踪数据集变更,便于审计与故障排查。
3. 简化合规与审计
借助集中存放的所有数据资产及其血缘,Unity Catalog 简化了合规报告与审计流程,降低确保法规合规所需的时间与精力。
如何在 Databricks 中启用 Unity Catalog
现在,让我们通过一个简单的设置教程来上手 Unity Catalog:
先决条件
在启用并使用 Unity Catalog 之前,请确保满足以下要求:
Databricks 高级版或企业版方案
Unity Catalog 仅支持 Databricks 的 Premium 或 Enterprise 等级。请确保您的 Databricks 工作区使用其中一种方案。
适当的权限
Metastore 可用性
Unity Catalog 需要在账户级别配置 metastore。如果尚未创建,则需要在设置过程中创建。对于试用版 Databricks 账户,系统会为您预先创建带有 metastore 的目录。
支持的云平台
当前,Unity Catalog 支持:
请确保您在上述云中的受支持 Databricks 环境中使用。
托管存储或外部位置
决定您是要使用托管表(托管存储),还是创建引用外部位置(如 S3、ADLS 或 GCS)数据的外部表。不同方式可能涉及不同的权限要求。
启用 Unity Catalog:分步指南
浏览 Databricks 设置
配置 Unity Catalog
示例代码与用法
以下是当 Unity Catalog 在您的工作区中配置完成后,可使用的一些 Databricks 笔记本/SQL 命令示例。
您可以在 Databricks 笔记本或工作区内的 SQL 编辑器中运行它们。
为目录授予权限
为目录授予权限可确保特定用户组能够访问并与其中的数据交互。然而,仅有
USAGE并不允许用户查询数据——它只是让用户看到该目录的存在。若要允许完整交互,您需要在架构或表级别授予其他权限。例如,要让数据工程师访问某个目录:
如果他们还需要在该目录中创建架构:
在目录内创建架构(数据库)
Unity Catalog 中的架构用于在目录内组织表与视图,类似于传统关系型数据库系统中数据库承载表的方式。使用
IF NOT EXISTS可避免在架构已存在时产生错误。要在
demo_catalog中创建一个用于分析数据的架构:创建后,您可能需要为特定用户授予权限:
这允许 data_analysts_group 看到该架构,但尚不能查询其中的表。
创建托管表
托管表完全由 Unity Catalog 控制,这意味着 Databricks 会处理存储与元数据追踪。这简化了管理,但也意味着删除表时数据会一并被删除。
要创建一个用于销售数据的托管表:
为表授予权限
为表授予权限可确保用户能够查询或修改数据。
SELECT权限允许用户读取数据,但不能修改。要允许数据科学家读取销售表:
如果他们需要插入新记录,请授予
INSERT:若需完全控制(读、写、修改),请使用:
外部位置设置
如果您有外部数据位置(例如 AWS 上的 S3),可以在 Unity Catalog 中创建一个外部位置对象:
Databricks Unity Catalog 架构
Databricks Unity Catalog 构建于开源项目Apache Spark 之上,后者为大规模数据处理提供分布式计算平台。它使用Hive Metastore 存储关于数据集与表的元数据,从而实现高效的管理与查询性能。
Unity Catalog 的架构包含三个主要组件:
来源:Databricks
借助 Databricks Unity Catalog,用户无需关心底层基础设施即可轻松管理和查询数据。用户还可以通过向他人授予特定权限(例如读写权限)来开展协作,权限对象可以是不同的数据集或表。
要授予这些权限,用户可以使用类似“GRANT”的 SQL 命令来指定哪些用户或用户组可以访问特定数据。这确保只有授权人员才能访问敏感信息。
Unity Catalog 如何与现有数据系统集成
Unity Catalog 可与现有数据系统无缝集成,如Amazon S3 与Azure Blob Storage,便于从不同来源访问与管理数据。这样,用户无需手动将数据移动或复制到 Databricks,即可快速分析大型数据集。
Unity Catalog 还支持多种文件格式,如 CSV、JSON、Parquet 和 Avro,使处理不同类型数据更加灵活。
Databricks Unity Catalog 最佳实践
在使用 Unity Catalog 时,有一些最佳实践可帮助确保高效、有效的数据管理。
包括以下方面:
这些措施将有助于确保有效的数据治理与最佳性能。
常见挑战及应对方法
Unity Catalog 并非万无一失,在有效管理数据方面也会面临一些挑战。
常见问题包括:
为应对这些挑战,建议:
结语
Unity Catalog 借助 metastore、目录与工作区,将数据以单一视图进行管理,是一款功能强大的工具。它为存储与组织数据提供集中位置,使数据更易于在您的业务流程中进行管理与利用。
想进一步了解 Databricks?不妨查看我们的Databricks 入门课程、Databricks 教程指南,以及Databricks 网络研讨会。