从 MySQL 导入元数据

本文档介绍了如何使用 Knowledge Catalog 连接器将元数据从 MySQL 导入 Knowledge Catalog(以前称为 Dataplex Universal Catalog)。

此连接器支持托管在本地、Cloud SQL 或其他云环境中的 MySQL 实例。

在从 MySQL 导入元数据之前,请完成以下任务:

  1. 授予所需的角色和权限
  2. 启用 Knowledge Catalog 和 BigQuery Data Transfer Service API
  3. 满足 MySQL 前提条件
  4. 满足网络前提条件

IAM 角色和权限

如需创建和管理知识目录连接器作业,您需要拥有 Identity and Access Management (IAM) 角色,该角色可授予知识目录和 BigQuery Data Transfer Service 的权限。

如需获得配置 MySQL 连接器所需的权限,请让管理员为您授予以下 IAM 角色:

  • 如需创建和管理条目组,您需要拥有项目的 Dataplex Catalog Admin (roles/dataplex.catalogAdmin)、Dataplex Catalog Editor (roles/dataplex.catalogEditor) 或 Dataplex Entry Group Owner (roles/dataplex.entryGroupOwner) 角色。
  • 如需创建和管理 BigQuery Data Transfer Service 转移作业,您需要拥有项目的 BigQuery Admin (roles/bigquery.admin) 角色。
  • 如需在 Cloud Logging 中查看日志,请为项目授予 Logs Viewer (roles/logging.viewer) 角色。

此外,您还必须向 BigQuery Data Transfer Service 服务代理 (service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com) 授予 dataplex.entryGroups.import 权限或 Dataplex Entry Group Importer (roles/dataplex.entryGroupImporter) 角色。您可以在项目级层或条目组级层授予此角色。

如需详细了解如何授予角色,请参阅管理访问权限

启用 API

启用 Knowledge Catalog API 和 BigQuery Data Transfer Service API。

启用 API

MySQL 前提条件

确保您满足 MySQL 转移的前提条件。如需了解详情,请参阅 BigQuery Data Transfer Service 文档中的 MySQL 前提条件

除了 BigQuery Data Transfer Service 的前提条件之外,您的 MySQL 数据库还必须满足以下元数据提取要求:

  • 最低版本:MySQL 8.0 版或更高版本。
  • 最低必需权限:提取工具需要特定权限才能成功查询 INFORMATION_SCHEMA 并收集元数据。

这些权限可确保以下元数据覆盖范围:

  • 实例和数据库信息:主机名、端口、版本和架构配置。
  • 表和列:核心结构、数据类型和操作元数据,例如大小和行数。
  • 索引和分区:辅助索引、分区方法和表达式。
  • 视图:虚拟表结构和定义。
  • 例程:存储过程、函数及其参数。
  • 限制条件:详细的主键、外键、唯一性限制条件和检查限制条件。
  • 触发器:触发器定义和事件时间设置。

如需授予这些权限,请运行以下 SQL 脚本。

  1. 创建用户:

    CREATE USER 'USERNAME'@'%'
    IDENTIFIED BY 'PASSWORD';
    
  2. 授予元数据访问权限。您可以授予对单个目标数据库的访问权限,也可以授予对实例上所有数据库的访问权限。

    如需为单个目标数据库或架构授予访问权限,请执行以下操作:

    GRANT SELECT, SHOW VIEW, REFERENCES, EXECUTE, TRIGGER
    ON DATABASE_NAME.*
    TO 'USERNAME'@'%';
    

    或者,如需授予对实例中所有数据库的访问权限,请执行以下操作:

    GRANT SELECT, SHOW VIEW, REFERENCES, EXECUTE, TRIGGER
    ON *.*
    TO 'USERNAME'@'%';
    
  3. 允许提取工具列出实例上的所有可用数据库:

    GRANT SHOW DATABASES ON *.* TO 'USERNAME'@'%';
    
  4. 应用更改:

    FLUSH PRIVILEGES;
    

替换以下内容:

  • USERNAME:要配置的数据库用户。
  • PASSWORD:数据库用户的密码。
  • DATABASE_NAME:您要访问的 MySQL 数据库的名称。

网络前提条件

通过 Private Service Connect 进行连接时,需要使用网络连接,以便在专用网络中使用专用 IP 地址安全地连接到外部数据库或第三方云数据源,从而让 BigQuery Data Transfer Service 访问您的数据库。

如果您使用公共 IP 地址连接到本地环境或云托管实例,则不需要网络连接。

配置 MySQL 连接器

使用 Google Cloud 控制台或 API 配置 MySQL 连接器。

控制台

  1. 在 Google Cloud 控制台中,前往 Knowledge Catalog 页面。

    前往 Knowledge Catalog

  2. 在导航菜单中的管理部分,点击连接器

  3. 点击添加连接

  4. 连接器列表中,选择 MySQL 卡片。

  5. 数据源详细信息部分,提供 MySQL 实例的连接详细信息:

    • 对于网络连接,请根据需要选择现有网络连接或创建一个。
    • 输入主机端口数据库名称用户名密码
    • 如果使用 TLS,请选择 TLS 模式并提供受信任的 PEM 证书
    • MySQL metadata objects to import(要导入的 MySQL 元数据对象)部分,点击浏览以选择对象。
  6. 目标设置部分中:

    • 点击浏览,然后选择一个现有的知识目录条目组来存储导入的元数据,或点击创建新条目组
    • 选择是立即还是稍后设置条目组权限。设置权限,以便用户可以查看导入的元数据。如果您未在项目级层向 BigQuery Data Transfer Service 服务代理 (service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com) 授予 Dataplex Entry Group Importer (roles/dataplex.entryGroupImporter) 角色或 dataplex.entryGroups.import 权限,则必须在条目组级层授予该角色或权限。
  7. 连接器配置名称部分的显示名称中,输入元数据导入作业的名称。

  8. 时间表选项部分,配置元数据导入作业的频率。如果您选择按需,则只有当您手动触发作业时,该作业才会运行。

  9. 可选:在通知选项部分中,配置作业失败的电子邮件或 Pub/Sub 通知。

  10. 可选:在高级选项部分中,配置加密设置。如果您选择客户管理的加密密钥 (CMEK),请注意,该密钥用于加密在开始 Knowledge Catalog 元数据导入作业之前暂存的任何临时数据。它不用于加密目标 Knowledge Catalog 条目组中的元数据。

  11. 点击保存

REST

使用 projects.locations.transferConfigs.create 方法。在 TransferConfig 资源中,配置以下字段:

  • dataSourceId 字段设置为 "mysql"
  • metadataDestination 字段中,使用目标 Knowledge Catalog 条目组的资源路径填充 dataplexConfiguration 对象:projects/<var>PROJECT_ID</var>/locations/<var>LOCATION</var>/entryGroups/<var>ENTRY_GROUP_ID</var>

创建作业后,Knowledge Catalog 会根据您的配置安排首次运行,您也可以手动启动作业。

后续步骤