本文档介绍了如何使用术语库导入实用程序将 Google 表格中的术语库、类别和术语批量导入到 Knowledge Catalog(以前称为 Dataplex Universal Catalog)中。
The glossary_import utility parses and validates data from a Google Sheet,
converts it into a format compatible with the Knowledge Catalog
CreateMetadataJob API,
and uploads it to a Cloud Storage 存储桶 before triggering the import job.
准备工作
在导入术语库之前,请完成以下前提条件。
设置服务帐号
如需使用 Google 表格运行导入实用程序,您必须设置一个服务账号,该账号具有访问 Google Sheets API 和模拟用户凭据所需的权限:
确定或创建服务帐号。
在运行导入实用程序的项目中选择现有服务帐号或创建新服务账号。如需了解详情,请参阅 创建服务账号。 记下服务帐号电子邮件地址 (例如
SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com)。配置服务帐号模拟。
如需在本地运行导入实用程序脚本,您的用户账号必须具有模拟服务帐号的权限。向服务帐号授予用户账号的 Service Account Token Creator 角色 (
roles/iam.serviceAccountTokenCreator)。如需了解详情,请参阅 管理对服务账号的访问权限。
向服务帐号授予对 Google 表格的
Editor访问权限。打开要用于导入过程的 Google 表格,点击共享, 然后将服务帐号电子邮件地址添加为
Editor。此权限允许服务帐号从您的表格中读取数据或向其中写入数据。
创建 Cloud Storage 存储桶
创建一个 Cloud Storage 存储桶,用作导入文件的 暂存区。
所需角色
如需确保服务帐号具有从 Google 表格导入术语库所需的 权限,请让管理员向服务帐号授予以下 IAM 角色:
如果未能向正确的主账号授予这些角色,可能会导致权限错误。- Dataplex Administrator (
roles/dataplex.admin) 针对项目的 - Dataplex Catalog Admin (
roles/dataplex.catalogAdmin) 针对项目的 - Dataplex Catalog Editor (
roles/dataplex.catalogEditor) 针对项目的 - Storage Object Admin (
roles/storage.objectAdmin) 针对 Cloud Storage 存储桶
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您的管理员还可以通过自定义角色或其他预定义角色向服务帐号授予所需的权限。
启用 API
如需导入术语库,请在项目中启用以下 API:
启用 API 所需的角色
如需启用 API,您需要拥有 serviceusage.services.enable 权限。如果您
创建了项目,则可能已通过
所有者角色 (roles/owner) 拥有此权限。否则,您可以通过
Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获得此权限。
了解如何授予角色。
设置 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
如果您在软件包安装过程中遇到任何问题, 请设置新的 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 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 表格并设置其结构以进行导入
如需成功运行批量导入,您必须使用精确的列架构创建新的 Google 表格,以便导入实用程序能够成功解析和验证您的元数据字段。确保您已向服务帐号授予对 Google 表格的 Editor 访问权限。
表格的第一行必须包含以下完全区分大小写的架构标头:
| 字段 | 必填或可选 | 说明 |
|---|---|---|
id |
必需 | 术语库中术语或类别的唯一标识符。 |
parent |
可选 | 父类别的 ID。如果为空,则该项是术语库的根级子项 。请注意,引用的父级 ID 必须存在于工作表中 并且必须属于某个类别。 |
display_name |
必需 | 术语或类别的显示名称。 |
description |
可选 | 术语或类别的简要说明。 |
overview |
可选 | 术语或类别的富文本说明(支持 HTML 标记)。 |
type |
必需 | 行类型。有效值为 TERM 或 CATEGORY。 |
contact1_email |
可选 | 术语或类别的主要数据管理员的电子邮件地址。 |
contact1_name |
可选 | 术语或类别的主要数据管理员的姓名。 |
contact2_email |
可选 | 术语或类别的次要数据管理员的电子邮件地址。 |
contact2_name |
可选 | 术语或类别的次要数据管理员的姓名。 |
label1_key |
可选 | 第一个分配的标签的键。 |
label1_value |
可选 | 第一个分配的标签的值。 |
label2_key |
可选 | 第二个分配的标签的键。 |
label2_value |
可选 | 第二个分配的标签的值。 |
从 Google 表格导入术语库
设置环境并准备好 Google 表格后,运行 glossary_import.py 脚本:
python3 bg_import/dataplex-glossary/glossary_import.py
导入实用程序会将 CreateMetadataJob API 执行的结果直接输出到您的终端。验证作业状态是否指示成功。
您可以在本地执行路径的 logs/ 目录中查看执行日志。这些日志可帮助您审核传输过程,并识别跳过的条目或格式警告。
后续步骤
- 了解如何管理业务术语库。
- 了解如何 使用 JSON 文件导入术语库。
- 了解如何将术语库导出到 Google 表格。
- 详细了解元数据管理。