本文档介绍了如何使用术语库导入实用程序将 Google 工作表中的术语库、类别和术语批量导入 Knowledge Catalog(以前称为 Dataplex Universal Catalog)。
glossary_import 实用程序可解析并验证 Google 表格中的数据,将其转换为与 Knowledge Catalog CreateMetadataJob API 兼容的格式,并将其上传到 Cloud Storage 存储桶,然后触发导入作业。
准备工作
在导入术语库之前,请完成以下前提条件。
设置服务账号
如需使用 Google 表格运行导入实用程序,您必须设置一个服务账号,该账号具有访问 Google Sheets API 并模拟您的用户凭据所需的权限:
确定或创建服务账号。
选择现有服务账号,或在运行导入实用程序的项目中创建新的服务账号。如需了解详情,请参阅创建服务账号。 记下服务账号电子邮件地址(例如
SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com)。配置服务账号模拟。
如需在本地运行导入实用程序脚本,您的用户账号必须具有模拟服务账号的权限。向服务账号授予用户账号的 Service Account Token Creator 角色 (
roles/iam.serviceAccountTokenCreator)。如需了解详情,请参阅管理对服务账号的访问权限。
为服务账号
Editor授予对 Google 表格的访问权限。打开要用于导入过程的 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) - 针对 Cloud Storage 存储桶的 Storage Object Admin (
roles/storage.objectAdmin) 角色
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您的管理员还可以通过自定义角色或其他预定义角色向服务账号授予所需的权限。
启用 API
如需导入词库,请在项目中启用以下 API:
启用 API 所需的角色
如需启用 API,您需要拥有 Service Usage Admin IAM 角色 (roles/serviceusage.serviceUsageAdmin),该角色包含 serviceusage.services.enable 权限。了解如何授予角色。
设置 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 表格。
- 详细了解元数据管理。