创建数据流

概览

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

创建数据流涉及到:

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

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

  • 配置数据流目的地的相关信息。此类信息包括:

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

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

    • 数据流的端到端配置。

定义数据流的设置

  1. 转到 Google Cloud Console 中的数据流页面。

    转到“数据流”页面

  2. 点击创建数据流

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

    字段说明
    数据流名称输入数据流的显示名称。
    数据流 IDDatastream 会根据您输入的数据流名称自动填充此字段。您可以保留自动生成的 ID,也可以更改该 ID。
    区域选择存储数据流的区域。与所有资源一样,数据流保存在区域中。区域选择不会影响您的数据流能否连接到源数据库或目标,但会在区域发生停机时影响可用性。
    来源类型

    选择您为源 OracleMySQL、SQL Server(预览版)或 PostgreSQL 数据库创建连接配置文件时指定的配置文件类型。或者,如果您尚未为来源数据库创建连接配置文件,则可以立即创建一个。

    目的地类型

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

    加密

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

    1. 选中使用 CMEK 复选框。
    2. 选择 CMEK 下拉菜单中,选择您的 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. 如果您已为 OracleMySQL、SQL Server(预览版)或 MySQL 创建了来源连接配置文件,请从连接配置文件列表中选择该配置文件。

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

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

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

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

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

配置 PostgreSQL 源数据库

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

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

配置源数据库

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

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

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

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

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

  3. (可选)展开选择历史数据的回填模式节点,然后进行以下选择之一:
    1. 选择自动选项可将所有现有数据以及对数据的更改从来源流式传输到目标位置。

      从自动回填中排除的对象字段中,输入来源数据库中您希望限制 Datastream 回填到目标位置的表和架构。

    2. 选择手动选项可仅将对数据的更改流式传输到目标位置。
  4. 点击继续。针对目标类型,系统会显示创建数据流页面的定义连接配置文件面板。

选择目标连接配置文件

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

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

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

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

BigQuery 目标位置

  1. 配置从 Datastream 到 BigQuery 的连接下,指定 Datastream 应如何流式传输到 BigQuery 数据集。从下列选项中选择一项:

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

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

      此外,在选择每个架构的数据集选项时:

      1. 位置字段中,输入要在其中创建新数据集的区域。
      2. (可选)在前缀字段中,为数据流创建的数据集定义前缀。您指定的字符串会添加到源架构名称中。例如,如果架构名为 <mySchema>,并且您将数据集前缀定义为 <myPrefix>,Datastream 会创建一个名为 <myPrefix><mySchema> 的数据集。
      3. 通过选择 Google 管理的加密密钥或客户管理的加密密钥来指定您希望如何在 BigQuery 中对数据进行加密。
    • 所有架构使用一个数据集:Datastream 会在您指定的现有 BigQuery 数据集内创建所有表。 Datastream 创建的每个表均使用源架构名称和表名称的组合命名,并以下划线分隔(例如 <mySchemaName>_<myTableName>)。

  2. 指定数据过时的限制。选择限制,以平衡 BigQuery 查询性能和费用与数据新鲜度。BigQuery 会根据过时限制,持续或在查询运行时在后台应用更改。过时期限较短的数据(更新鲜的数据)可能会增加 BigQuery 处理费用。

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

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 验证是否为从来源流式传输到目标位置的数据库表启用了补充日志记录。
      归档日志文件配置Datastream 验证是否在来源中配置了归档日志记录,以及归档日志文件是否存在。
      Cloud Storage 权限(适用于 Cloud Storage 目标位置)Datastream 验证其是否具有写入 Cloud Storage 中的目标存储桶所需的权限。
    2. 如果来源数据库是 MySQL,则 Datastream 会执行以下检查:

      勾选说明
      对象列表有效性Datastream 验证排除列表是否不纳入包含列表。
      转发 SSH 隧道连接性Datastream 验证其是否可以通过转发 SSH 隧道连接到堡垒主机。
      与 MySQL 数据库的连接Datastream 验证其是否可以连接到来源 MySQL 数据库。
      已启用二进制日志Datastream 验证二进制日志文件是否已正确配置,以及日志文件是否存在。
      二进制日志格式配置Datastream 验证 MySQL 数据库的二进制日志格式是否设置为 ROW
      复制权限Datastream 验证其是否有权复制 MySQL 数据库。
      Cloud Storage 权限(适用于 Cloud Storage 目标位置)Datastream 验证其是否具有写入 Cloud Storage 中的目标存储桶所需的权限。
    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. 所有验证检查通过后,请点击创建并启动来创建数据流并立即启动,或点击创建来创建数据流而不立即启动。

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

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