创建数据流

在本部分中,您将学习如何创建数据流。Datastream 使用此数据流将数据从源 Oracle、MySQL、SQL Server 或 PostgreSQL 数据库转移到 BigQuery 或 Cloud Storage。

创建数据流涉及到:

  • 定义数据流的设置。
  • 选择您为来源 OracleMySQLSQL ServerPostgreSQL 数据库创建的连接配置文件(来源连接配置文件),或者创建来源连接配置文件(如果尚未创建)。
  • 通过在源数据库中指定 Datastream 对其执行以下操作的表和架构,配置数据流的源数据库的相关信息:
    • 可以转移到目标位置。
    • 无法转移到目标位置。
  • 确定 Datastream 是回填历史数据并将进行中的更改流式传输到目标位置,还是仅流式传输对数据的更改。启用历史回填时,您可以选择在来源数据库中指定 Datastream 不应回填到目标位置的架构和表。

  • 选择您为 BigQueryCloud Storage 创建的连接配置文件(目标连接配置文件),或者创建目标连接配置文件(如果尚未创建)。

  • 配置有关数据流目标位置的信息。此类信息包括:

    • 对于 BigQuery:
      • DataStream 将从源数据库复制架构、表和数据到其中的数据集。
    • 对于 Cloud Storage:
      • DataStream 将架构、表和数据从来源数据库转移到的目标存储桶的文件夹。
  • 验证数据流以确保其成功运行。验证数据流会检查:

    • 来源是否已正确配置,允许 Datastream 从其中流式传输数据。
    • 数据流是否可以连接到来源和目标位置。
    • 数据流的端到端配置。

定义数据流的设置

  1. 前往 Google Cloud 控制台中的数据流页面。

    转到“数据流”页面

  2. 点击创建数据流

  3. 使用下表来填充创建数据流页面的定义数据流详情部分的字段:

    字段说明
    数据流名称输入数据流的显示名称。
    数据流 IDDatastream 会根据您输入的数据流名称自动填充此字段。您可以保留自动生成的 ID,也可以更改该 ID。
    区域选择存储数据流的区域。与所有资源一样,数据流保存在区域中。区域选择不会影响您的数据流可以连接到来源数据库还是目标位置,但如果区域发生停机,可能会影响可用性。我们建议您将数据流的所有资源都放在源数据所在的区域,以优化费用和性能。
    来源类型

    选择您在为来源 OracleMySQLSQL ServerPostgreSQL 数据库创建连接配置文件时指定的配置文件类型。或者,如果您尚未为来源数据库创建连接配置文件,则可以立即创建一个。

    目的地类型选择您在为 BigQueryCloud Storage 目标创建连接配置文件时指定的配置文件类型。或者,如果您尚未为目标位置创建连接配置文件,则可以立即创建一个。
    加密

    默认情况下,您的数据使用由 Google Cloud管理的密钥进行加密。如果您希望管理加密,可以使用由客户管理的加密密钥 (CMEK):

    1. 选中 Cloud KMS 密钥复选框。
    2. 密钥类型下拉菜单中,选择 Cloud KMS,然后选择您的 CMEK。

    如果您没有看到密钥,请点击输入密钥资源名称以提供要使用的密钥的资源名称。例如,您可以在密钥资源名称字段中输入 projects/my-project-name/locations/my-location/keyRings/my-keyring/cryptoKeys/my-key,然后点击保存

  4. (可选)使用标签来组织 Datastream 资源。

    1. 如需创建标签,请点击添加标签,然后输入标签的键值对。
    2. 如需移除标签,请点击包含标签的行右侧的垃圾桶图标。
  5. (可选)为您的数据流添加提醒政策。提醒政策用于定义您希望何时以及以何种方式接收有关数据流失败的通知。

    1. 如需创建提醒政策,请点击添加提醒政策
    2. Cloud Monitoring 中会显示创建提醒政策页面。在此页面上,您可以定义提醒政策,以防数据流失败。

    如需详细了解提醒政策,请参阅管理基于指标的提醒政策

  6. 查看自动生成的必要前提条件,以反映如何为数据流准备环境。这些前提条件可能包括如何配置源数据库以及如何将其连接到目标位置。最好在此步骤中完成这些前提条件,但您可以在测试数据流或启动数据流之前随时完成。如需详细了解这些前提条件,请参阅来源

  7. 点击继续。系统会针对来源数据库类型显示创建数据流页面的定义连接配置文件面板。

指定有关来源连接配置文件的信息

  1. 如果您已为 OracleMySQLSQL ServerPostgreSQL 创建来源连接配置文件,请从连接配置文件列表中选择它。

    如果您尚未创建来源连接配置文件,请通过点击该下拉列表底部的创建连接配置文件创建一个,然后执行创建连接配置文件中的步骤。

  2. 点击运行测试以验证来源数据库和 DataStream 是否可以相互通信。

    如果测试失败,会显示与连接配置文件关联的问题。如需了解问题排查步骤,请参阅诊断问题页面。进行必要的更改以纠正问题,然后重新测试。

  3. 点击继续。系统会显示创建数据流页面的配置数据流来源面板。

配置有关数据流的源数据库的信息

配置 PostgreSQL 源数据库

如果您选择 PostgreSQL 作为源数据库,则需要定义其复制属性。

  1. 复制属性部分中,指定以下属性:
    1. 复制槽名称字段中,输入您专门为此数据流创建的槽的名称。数据库服务器使用此槽向 Datastream 发送事件。
    2. 出版物名称字段中,输入您在数据库中创建的出版物的名称。发布内容是指您希望使用此数据流复制更改的所有表的组合。
  2. 请按照配置源数据库部分中所述的步骤操作。

配置源数据库

  1. 选择要包含的对象部分中,使用要包含的对象下拉菜单指定来源数据库中 Datastream 可转移到目标位置的表和架构。

    1. 如果您希望 Datastream 转移所有表和架构,请选择所有架构中的所有表
    2. 如果您希望 Datastream 仅转移特定表和架构,请选择特定架构和表,然后选择您希望 Datastream 拉取的架构和表对应的复选框。

    3. 如果要提供您希望 Datastream 转移的表和架构的文本定义,请选择自定义,然后在对象匹配条件字段中输入您希望 Datastream 拉取的架构和表。

      如果您的数据库包含大量表和架构,我们建议您使用自定义选项,因为某些表和架构可能不包含在要提取的对象列表中。

  2. (可选)展开选择要排除的对象节点。在要排除的对象字段中,输入来源数据库中您希望限制 Datastream 拉取的表和架构。要排除的对象列表的优先级高于要包含的对象列表。如果某个对象同时满足包含列表和排除列表中的条件,则该对象会从数据流中排除。

  3. 根据您选择的来源,为数据流指定 CDC 方法:

    • 对于 SQL Server 源:
      • 事务日志:选择此方法可直接从数据库日志处理更改。这种方法可提供最佳的性能且效率更高,但需要额外的配置步骤。
      • 更改表:选择此方法可处理来自专用更改表的更改。这种方法更易于配置,限制也更少,但与事务日志方法相比,支持的吞吐量较低,给数据库带来的负载较高。如需详细了解如何配置源 SQL Server 数据库,请参阅配置源 SQL Server 数据库
    • 对于 MySQL 来源:
      • 基于 GTID(全局事务 ID)的复制预览版):如果您希望 Datastream 支持故障切换并提供无缝复制,不受数据库集群变化的影响,请选择此方法。
      • 基于二进制日志的复制:选择此方法可直接从所选数据库实例的二进制日志文件读取和复制更改。您无法使用此 CDC 方法将正在运行的数据流切换到其他来源实例或副本。
    • 对于 Oracle 来源:
      • LogMiner:选择此方法可使用 LogMiner API 查询归档的重做日志。LogMiner 支持大多数适用于 Oracle 的选项,例如加密和压缩选项。
      • 二进制读取器预览版):选择此方法可直接从 Oracle 日志中提取更改。这样可以更快地复制大型 Oracle 数据库,并缩短延迟时间和减少开销。选择此选项后,系统会显示一个额外的下拉菜单。选择您要访问 Oracle 日志文件的方式:
      • 自动存储空间管理 (ASM):如果您的数据库使用 ASM,请选择此选项。确保您已选中为二进制读取器启用 ASM 访问权限复选框,并在来源连接配置文件中填写了 ASM 实例的详细信息。
      • 数据库目录:如果您不使用 ASM 存储日志文件,请选择此选项。如果您选择数据库目录,则需要提供重做日志和归档日志目录名称。
  4. (可选)展开选择历史数据的回填模式节点,然后进行以下选择之一:

    • 选择自动选项可将所有现有数据以及对数据的更改从来源流式传输到目标位置。在从自动回填中排除的对象字段中,输入来源数据库中您希望限制 Datastream 回填到目标位置的表和架构。

    • 选择手动选项可仅将对数据的更改流式传输到目标位置。

  5. 点击继续。系统会针对目标类型显示创建数据流页面的定义连接配置文件面板。

选择目标连接配置文件

  1. 如果您已创建目标连接配置文件,则从连接配置文件列表中选择它。

    如果您尚未创建目标连接配置文件,请通过点击该下拉列表底部的创建连接配置文件创建一个,然后执行创建连接配置文件中的步骤。

  2. 点击继续。系统会显示创建数据流页面的配置数据流目标位置面板。

配置有关数据流的目标位置的信息

本部分介绍了您需要提供哪些信息才能配置 BigQuery 或 Cloud Storage 目标位置。

BigQuery 目标位置

  1. 指定 DataStream 将数据流式传输到 BigQuery 数据集的方式部分,从架构分组下拉菜单中选择以下选项之一:

    • 为每个架构创建一个数据集:Datastream 会根据架构名称为每个源架构创建一个 BigQuery 数据集。

      如果您选择此选项,则 Datastream 会在包含数据流的项目中为源数据库中的每个架构创建一个数据集。

      此外,如果您选择为每个架构创建一个数据集选项,则需要提供以下信息:

      1. 位置类型部分,指定您要在 BigQuery 中将数据存储在何处。选择区域可指定单个地理位置,选择多区域可指定包含两个或更多区域的较大区域。如果您的首要任务是优化费用和性能,请选择区域,并将数据集与您管理的其他 Google Cloud 资源放在一起。如果您想实现更高的配额上限,请选择多区域,以允许 BigQuery 使用组内的多个区域。选择区域后,该字段会默认填充您为数据流选择的区域。
      2. (可选)在数据集前缀字段中,为数据流创建的数据集定义一个前缀。您指定的字符串会添加到来源架构名称中。例如,如果架构名为 <mySchema>,并且您将数据集前缀定义为 <myPrefix>,则 Datastream 会创建一个名为 <myPrefix><mySchema> 的数据集。
      3. 展开显示高级加密选项部分。
      4. 选择 Google 管理的加密密钥或客户管理的加密密钥,指定您希望在 BigQuery 中如何加密数据。
    • 为所有架构创建单个数据集:Datastream 会在您指定的现有 BigQuery 数据集中创建所有表。Datastream 创建的每个表的命名方式是使用源架构名称和表名称的组合,以下划线分隔(例如 <mySchemaName>_<myTableName>)。可用的数据集按区域分组。您也可以创建新数据集。

  2. 指定数据流写入模式。选择写入模式,以定义如何在 BigQuery 中写入和处理数据:

    • 合并:如果您希望数据与来源同步,请选择此选项。
    • 仅附加:如果您想保留更改事件的所有历史数据,请选择此选项。
  3. 指定数据过时期限。仅当在上一步中选择了合并模式时才可用。选择限制,以平衡 BigQuery 查询性能和费用与数据新鲜度。BigQuery 会根据过时限制,持续或在查询运行时在后台应用更改。过时期限较短的数据(更新鲜的数据)可能会增加 BigQuery 处理费用。

  4. 点击继续。系统会显示创建数据流页面的审核数据流详情并创建面板。

Cloud Storage 目的地

  1. (可选)在数据流路径前缀字段中,输入 Datastream 将架构、表和数据从来源数据库转移到的目标存储桶的文件夹。

    例如,如果您希望 Datastream 将数据从来源数据库转移到目标存储桶中的 /root/example 文件夹,请在数据流路径前缀字段中输入 /root/example

  2. 输出格式字段中,选择写入 Cloud Storage 的文件的格式。

  3. 可选。如果您选择 JSON 格式,则系统会显示两个复选框:

    1. 在文件路径中添加 Unified Types 架构文件:如果您选中此复选框,则 Datastream 会将两个文件写入 Cloud Storage:一个 JSON 数据文件和一个 Avro 架构文件。架构文件与数据文件同名,扩展名为 .schema。如果您未选中此复选框,则 Datastream 只会将 JSON 数据文件写入 Cloud Storage。默认情况下,系统未选中此复选框。
    2. 启用 gzip 压缩:如果选中此复选框,则 Datastream 会使用 gzip 实用程序压缩 Datastream 写入 Cloud Storage 的文件。如果您未选中此复选框,则 Datastream 会将文件写入 Cloud Storage 而不进行压缩。默认情况下,此复选框处于选中状态。
  4. 点击继续。系统会显示创建数据流页面的审核数据流详情并创建面板。

创建数据流

  1. 验证数据流的详细信息,以及数据流用于将数据从源数据库转移到目标位置的来源和目标连接配置文件。
  2. 点击运行验证来验证数据流。通过验证数据流,Datastream 会检查来源是否配置正确,验证数据流是否可以连接到来源和目标位置,并验证数据流的端到端配置。

    1. 如果来源数据库是 Oracle,则 Datastream 会执行以下检查:

      勾选说明
      对象列表有效性Datastream 验证排除列表是否不纳入包含列表。
      转发 SSH 隧道连接性Datastream 验证其是否可以通过转发 SSH 隧道连接到堡垒主机。
      与 Oracle 数据库的连接Datastream 验证其是否可以连接到来源 Oracle 数据库。
      Oracle 用户权限Datastream 验证其用于连接到来源数据库的用户是否具有从数据库检索架构、表和数据所需的所有权限,以便 Datastream 可以将此信息流式传输到目标位置。
      日志记录模式配置Datastream 验证 Oracle 数据库的日志记录模式是否设置为 ARCHIVELOG
      补充日志记录配置Datastream 验证是否为从来源流式传输到目标位置的数据库表启用了补充日志记录。
      Oracle CDC 配置Datastream 会验证您选择的 CDC 方法是否符合您的数据库配置。
      归档日志文件配置Datastream 验证是否在来源中配置了归档日志记录,以及归档日志文件是否存在。
      Cloud Storage 权限(适用于 Cloud Storage 目标位置)Datastream 验证其是否具有写入 Cloud Storage 中的目标存储桶所需的权限。
    2. 如果来源数据库是 MySQL,则 Datastream 会执行以下检查:

      勾选说明
      复制权限Datastream 验证其是否有权复制 MySQL 数据库。
      数据库版本Datastream 会验证 MySQL 数据库版本是否受支持。如需了解支持的版本,请参阅版本
      二进制日志格式配置Datastream 验证 MySQL 数据库的二进制日志格式是否设置为 ROW
      已启用二进制日志Datastream 验证二进制日志文件是否已正确配置,以及日志文件是否存在。
      二进制日志行映像配置Datastream 验证二进制日志行映像是否设置为 FULL
      二进制日志压缩已停用Datastream 会验证 binlog 压缩是否已停用。
      已启用日志副本或从属实例更新Datastream 会验证日志副本或从属实例更新是否已启用。
      GTID 模式配置 (applies only to GTID-based CDC)如果使用基于 GTID 的复制,Datastream 会验证 GTID 模式是否设置为 ON
      GtidSet 不包含带标记的 GTID (applies only to GTID-based CDC)Datastream 会验证 GTID 集不包含任何带标记的 GTID。
      Cloud Storage 权限(适用于 Cloud Storage 目标位置)Datastream 验证其是否具有写入 Cloud Storage 中的目标存储桶所需的权限。
      警告检查说明
      “Expire logs days”“Expire logs seconds”或“Binlog retention hours”配置Datastream 会验证 expire_logs_daysbinlog_expire_logs_secondsbinlog retention hours 是否分别配置为大于 7604800168 的值。
      允许的最大数据包配置Datastream 验证 max_allowed_packet 是否设置为 1GB。
      强制执行 GTID 一致性或 GTID 严格模式 (applies only to GTID-based CDC)Datastream 会验证是否启用了 GTID 一致性或 GTID 严格模式。
    3. 如果来源数据库是 PostgreSQL,则 Datastream 会执行以下检查:

      检查说明
      与 PostgreSQL 数据库的连接Datastream 验证其是否可以连接到来源 PostgreSQL 数据库。
      已启用逻辑解码Datastream 验证 PostgreSQL 数据库的 wal_level 参数是否设置为 logical
      复制槽配置Datastream 会验证 PostgreSQL 复制槽是否存在且处于活动状态、Datastream 是否具有访问该槽所需的权限,以及该槽是否配置正确。
      发布配置Datastream 会验证该发布内容是否存在,以及发布内容中是否包含要为该数据流复制的表。
      回填权限Datastream 会验证回填历史数据所需的表是否存在,以及它是否具有读取这些表的必要权限。
    4. 如果来源数据库是 SQL Server,则 Datastream 会执行以下检查:

      检查说明
      SQL Server 版本Datastream 会验证源 SQL Server 数据库版本是否受支持。如需了解支持的版本,请参阅版本
      SQL Server 用户权限Datastream 会验证用户是否拥有访问来源 SQL Server 数据库所需的权限。
      已启用 SQL Server CDCDatastream 会验证是否为数据库以及数据流中包含的所有表启用了 CDC。
      SQL Server 数据库验证Datastream 会检查源数据库是否已正确配置、是否满足所有复制要求,以及列中是否不存在不受支持的数据类型。
      Cloud Storage 或 BigQuery 权限Datastream 会验证用户是否具有写入目标位置所需的权限。
  3. 所有验证检查通过后,请点击创建并启动来创建数据流并立即启动,或点击创建来创建数据流而不立即启动。

    如果您未立即启动数据流,则可以在数据流页面中通过点击启动进行启动。

创建数据流后,您可以查看其概要信息和详细信息

后续步骤