创建数据流

概览

在本部分中,您将学习如何创建数据流。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(预览版)或 PostgreSQL 创建了源连接配置文件,请从连接配置文件列表中选择该配置文件。

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

  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 中写入和处理数据的方式:

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

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

Cloud Storage 目的地

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

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

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

  3. 可选。如果您选择 JSON 格式,则会出现两个复选框:

    1. 在文件路径中添加统一类型架构文件:如果您选中此复选框,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. 通过所有验证检查后,点击创建并开始以创建数据流并立即启动,或点击创建创建数据流,但不立即启动。

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

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