Workday Data Connect 目录联合

Important

此功能在 Beta 版中。 要使用它,工作区管理员必须从预览页面开启 Workday Data Connect Connector。 请参阅 Manage Azure Databricks 预览版。

使用 Workday Data Connect 目录联合,直接从云存储读取 Workday Data Connect 表,并将其作为外部表添加到 Unity 目录。 查询完全运行在 Azure Databricks 计算上,因此数据团队可以在无需构建 ETL 管道的情况下,从 Azure Databricks 中发现、管理和查询这些表。 数据访问是只读的。

Azure Databricks 使用基于私钥的 OAuth,以您注册为主体的 Workday 集成系统用户(ISU)身份向 Workday Data Connect 目录进行身份验证。

Workday 称该产品为 Workday Data Lake。 合作伙伴文档(包括此页面在内)将其称为 Workday Data Connect。

想了解更多关于目录联合的信息,请参见什么是目录联合?

注释

该连接器不会将数据导入或复制到 Azure Databricks,也与 Workday 的 Lakeflow Connect 导入连接器无关。 要将Workday数据导入Azure Databricks,请参见Workday Reports连接器或Workday HCM连接器。

在您开始之前

在设置 Workday Data Connect 目录联合功能之前,请先查看以下要求。

工作区要求:

计算要求:

  • Azure Databricks 计算必须使用 Databricks 运行时 19.8 或更高版本,并采用标准访问模式。 不支持专用访问模式。

网络要求:

  • 从 Azure Databricks 到位于 https://<workday-host>/api/catalog 的您的 Workday Data Connect 目录终结点的网络连接。 你无需在 Workday 中将 Azure Databricks 的 IP 地址加入允许列表。

所需的权限:

  • 若要创建连接,你必须是元存储管理员或对附加到工作区的 Unity Catalog 元存储具有 CREATE CONNECTION 权限的用户。
  • 若要创建外部目录,必须对元存储具有 CREATE CATALOG 权限,并且是连接的所有者或对连接具有 CREATE FOREIGN CATALOG 特权。

工作日要求:

  • Workday Data Connect 已为你的 Workday 租户启用,你想查询的表通过其 Iceberg REST 目录共享。 参见“开始使用Workday Data Lake”。
  • 在 Workday Data Connect 目录中注册为主体身份的 Workday 集成系统用户(ISU)、为该 ISU 分配的授予对共享表读取权限的主体角色,以及该主体的 RSA 密钥对。 要注册 API 客户端,请参见 为 Data Lake 注册 API 客户端(JWT Bearer 授权)。

第一步:建立联系

连接指定了 Azure Databricks 用来与 Workday Data Connect 目录通信的端点和凭证。

要创建连接,请使用目录资源管理器或SQL CREATE CONNECTION 命令:

目录浏览器

若要创建连接,请执行以下操作:

  1. 在 Azure Databricks 工作区中,单击 Data icon.Catalog。
  2. 在 “目录 ”窗格顶部,单击 “添加”或“加号”图标 ,然后从菜单中选择“ 创建连接 ”。
  3. 在 连接基础 页面输入连接 名称。
  4. 选择连接类型为Workday Data Connect。
  5. 单击 “下一步” 。
  6. 在 连接详情 页面输入以下数值:
    • Host:例如 mycompany.myworkday.com,Workday数据连接端点的主机名。
    • 租户:你的工作日租户。
    • 客户端ID:Workday API客户端的客户端ID。
    • 私钥:一种 PEM 格式的 RSA 私钥。
    • 主体名称:您注册为目录主体的 ISU 名称。
    • 主体角色:Workday 中用于限定对共享表的读取访问权限范围的主体角色。 默认值为 ALL。 要降低访问权限范围,可以设置一个特定角色,例如 all-reads-role。

SQL

在笔记本或 Databricks SQL 查询编辑器中运行以下命令:

CREATE CONNECTION <connection-name> TYPE WORKDAY_DATA_CONNECT
OPTIONS (
  host '<workday-host>',
  tenant '<workday-tenant>',
  client_id '<client-id>',
  private_key secret('<secret-scope>','<secret-key>'),
  principal_name '<isu-name>',
  principal_role '<principal-role>'
);
  • host: 例如,你的Workday Data Connect端点 mycompany.myworkday.com的主机名。
  • tenant:您的 Workday 租户。
  • client_id:Workday API 客户端的客户端 ID。
  • private_key:一个以PEM格式的RSA私钥。 Databricks 建议你将其作为秘密存储。
  • principal_name:您注册为目录负责人的 ISU 名称。
  • principal_role:限定对共享表的读取访问范围的 Workday 主体角色。 默认值为 ALL。 要降低访问权限范围,可以设置一个特定角色,例如 all-reads-role。

Databricks建议你用秘密代替明文字符串来处理像私钥这样的敏感值。 有关创建秘密的信息,请参见 秘密管理。

步骤2:创建国外目录

外部目录会镜像 Unity Catalog 中的 Workday Data Connect 目录,这样你可以用 Unity Catalog 管理 Workday 表的访问,并从 Azure Databricks 计算中查询它们。

要创建外部目录,您可以使用目录资源管理器或 CREATE FOREIGN CATALOG 笔记本中的SQL命令,或Databricks的SQL查询编辑器。

目录浏览器

  1. 在 Azure Databricks 工作区中,单击 Data icon.Catalog。
  2. 在“ 目录 ”窗格顶部,单击 “添加”或“加号”图标 ,然后从菜单中选择“ 创建目录 ”。
  3. 在 “创建新目录 ”对话框中,输入目录名称。
  4. 选择类型为外部。
  5. 选择你在第一步创建的 连接 。
  6. 对于存储位置,请输入云存储路径,Azure Databricks 会在该路径中存储联合表的元数据。
  7. 单击 “创建” 。

SQL

在笔记本或 Databricks SQL 查询编辑器中运行以下命令。 括号中的项是可选的。

CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name>
USING CONNECTION <connection-name>
OPTIONS (storage_root '<storage-root-path>');
  • storage_root:必需。 Azure Databricks 可写入的外部位置路径。 Azure Databricks 利用该位置存储联合表的元数据。 Workday 表中的数据不会复制到此位置。

外部目录总是镜像你凭证授权访问的整个Workday数据连接目录。 要限制可见范围,请在创建连接时设置一个 principal_role,使其仅授予对所需表的读取权限。

步骤3:授予权限并查询目录

创建外部目录后,用户需要获得相应的 Unity 目录权限才能访问联合表:

  • 所有用户都需要 USE CATALOG 和 USE SCHEMA 权限才能分别访问目录和架构。
  • 要从联邦表读取,用户需要获得 SELECT 权限。

有关 Unity 目录特权以及如何授予这些权限的详细信息,请参阅 “管理 Unity 目录中的权限”。

例如,在笔记本或Databricks的SQL查询编辑器中执行以下命令:

GRANT USE CATALOG ON CATALOG <catalog-name> TO `<principal>`;
GRANT USE SCHEMA ON SCHEMA <catalog-name>.<schema-name> TO `<principal>`;
GRANT SELECT ON TABLE <catalog-name>.<schema-name>.<table-name> TO `<principal>`;

拥有这些权限的用户可以使用三层命名空间表示法查询联邦表:

SELECT * FROM <catalog-name>.<schema-name>.<table-name>;

命名空间映射

Unity 目录镜像Workday Data Connect对象层级如下:

Workday Data Connect 对象 Unity Catalog 对象
目录 外部目录
命名空间 架构
表格 外部表

Workday Data Connect 提供扁平化的三级名称,这些名称与 Unity Catalog catalog.schema.table 层级结构一一对应。 没有额外的命名空间嵌套。

局限性

Workday Data Connect 目录联邦存在以下限制:

  • 连接器只能访问通过 Workday Data Connect 目录共享的 Iceberg 表。
  • 模式和表名称遵循 Unity 目录的标准命名限制。 Azure Databricks不支持包含句号()、.空格( )或斜杠(/)的名称。 请参阅 安全对象命名要求。