从 Google 表格导入条目链接

本文档介绍了如何使用条目链接导入实用程序将 Google 表格中的条目链接(术语库术语与数据资产之间的关系,包括 definitionrelatedsynonym 条目链接类型)批量导入到 Knowledge Catalog(以前称为 Dataplex Universal Catalog)。

准备工作

在将条目链接导入 Knowledge Catalog 之前,请完成以下前提条件。

设置服务账号

如需使用 Google 表格运行导入实用程序,您必须设置一个服务账号,该账号具有访问 Google Sheets API 和模拟用户凭据的必要权限:

  1. 确定或创建服务账号。

    选择现有服务账号,或在运行导入实用程序的项目中创建新的服务账号。如需了解详情,请参阅创建服务账号。 记下服务账号电子邮件地址(例如 SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com)。

  2. 配置服务账号模拟。

    如需在本地运行导入实用程序脚本,您的用户账号必须具有模拟服务账号的权限。向服务账号授予用户账号的 Service Account Token Creator 角色 (roles/iam.serviceAccountTokenCreator)。

    如需了解详情,请参阅管理对服务账号的访问权限

  3. 为服务账号 Editor 授予对 Google 表格的访问权限。

    打开要用于导入过程的 Google 表格,点击共享,然后添加服务账号电子邮件地址作为 Editor。此权限可让服务账号从您的工作表中读取数据或向其中写入数据。

创建 Cloud Storage 存储桶

创建 Cloud Storage 存储桶以充当导入文件的暂存区。

所需的角色

如需确保服务账号具有从 Google 表格导入条目链接所需的权限,请让管理员向服务账号授予以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您的管理员还可以通过自定义角色或其他预定义角色向服务账号授予所需的权限。

启用 API

如需导入条目链接,请在项目中启用以下 API:

启用 API 所需的角色

如需启用 API,您需要拥有 Service Usage Admin IAM 角色 (roles/serviceusage.serviceUsageAdmin),该角色包含 serviceusage.services.enable 权限。了解如何授予角色

启用 API

设置 Git 代码库

克隆 dataplex-labs 代码库:

git clone https://github.com/GoogleCloudPlatform/dataplex-labs.git
cd dataplex-labs/dataplex-quickstart-labs/00-resources/scripts/python/business-glossary-import/dataplex-glossary/import

安装依赖项

安装所需的 Python 依赖项:

pip3 install -r requirements.txt
cd dataplex-glossary

如果您在安装软件包时遇到任何问题,请设置新的 Python 开发环境

进行身份验证并配置服务账号模拟

初始化 Google Cloud CLI 并使用应用默认凭据 (ADC) 通过服务账号模拟进行身份验证:

# Set your service account email address
SA_EMAIL="SERVICE_ACCOUNT_EMAIL"

# Authenticate ADC using service account impersonation and required scopes
gcloud init
gcloud auth login
gcloud auth application-default login \
  --impersonate-service-account="${SA_EMAIL}" \
  --scopes="https://www.googleapis.com/auth/spreadsheets"

SERVICE_ACCOUNT_EMAIL 替换为服务账号电子邮件 ID。 例如:

SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

跨项目导入要求

如需跨多个 Google Cloud 项目导入条目链接,请确保您的配置满足以下要求,然后再运行导入实用程序:

  • 配置跨项目 IAM 权限:执行导入脚本的服务账号必须在所有目标项目中拥有足够的权限。

  • 验证条目是否存在:在运行导入之前,目标条目必须已存在于各自的 Knowledge Catalog 项目中。

  • 向 Knowledge Catalog 服务代理授予 Cloud Storage 存储桶访问权限:每个目标项目中的 Knowledge Catalog 服务账号都需要访问您的 Cloud Storage 存储桶。

创建并设置 Google 表格的结构以供导入

如需成功运行批量导入,您必须使用精确的列架构创建新的 Google 表格,以便导入实用程序能够成功解析和验证您的元数据字段。确保您已向服务账号授予对 Google 表格的 Editor 访问权限。

工作表的第一行必须包含以下区分大小写的确切架构标题:

列标题 必填或可选 说明
entry_link_type 必需 值必须为 definitionrelatedsynonym
source_entry 必需 来源条目的完整资源路径,格式为:
projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRYGROUP_NAME/entries/ENTRY_NAME
target_entry 必需 目标条目的完整资源路径,格式为:
projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRYGROUP_NAME/entries/ENTRY_NAME
source_path 可选 定义链接的列或字段路径(例如 Schema.column_name)。

设置环境变量

设置以下环境变量:

# Set your Google Sheet URL
export SPREADSHEET_URL="GOOGLE_SHEET_URL"

# Set your bucket name
export BUCKETS="COMMA_SEPARATED_LIST_OF_BUCKETS"

# Set the project ID
export USER_PROJECT="USER_PROJECT"

从 Google 表格中导入条目链接

如需将条目链接从 Google 表格导入到 Knowledge Catalog,请运行 entrylinks-import.py 脚本:

cd import
python3 entrylinks-import.py \
  --spreadsheet-url="$SPREADSHEET_URL" \
  --buckets="$BUCKETS" \
  --user-project="$USER_PROJECT"

如需并行运行多个导入作业,请在 --buckets 参数中指定多个 Cloud Storage 存储分区。该脚本将元数据拆分为更小的批次,并在各个存储分区中并发处理这些批次,从而缩短总注入时间。

您可以在本地执行路径的 logs/ 目录中查看执行日志。这些日志可帮助您审核转移过程,并识别跳过的条目或格式设置警告。

后续步骤