概览
在本部分中,您将学习如何创建数据流。Datastream 使用此数据流将 Oracle、MySQL、SQL Server 或 PostgreSQL 源数据库中的数据传输到 BigQuery 或 Cloud Storage。
创建数据流涉及到:
- 定义数据流的设置。
- 选择您为来源 Oracle、MySQL、SQL Server 或 PostgreSQL 数据库创建的连接配置文件(来源连接配置文件),或者创建来源连接配置文件(如果尚未创建)。
- 通过在源数据库中指定 Datastream 对其执行以下操作的表和架构,配置数据流的源数据库的相关信息:
- 可以转移到目标位置。
- 无法转移到目标位置。
确定 Datastream 是回填历史数据并将进行中的更改流式传输到目标位置,还是仅流式传输对数据的更改。启用历史回填时,您可以选择在来源数据库中指定 Datastream 不应回填到目标位置的架构和表。
选择为 BigQuery 或 Cloud Storage 创建的连接配置文件(目标连接配置文件),或创建目标连接配置文件(如果尚未创建)。
配置有关数据流目标位置的信息。此类信息包括:
- 对于 BigQuery:
- DataStream 将从源数据库复制架构、表和数据到其中的数据集。
- 对于 Cloud Storage:
- DataStream 将架构、表和数据从来源数据库转移到的目标存储桶的文件夹。
- 对于 BigQuery:
验证数据流以确保其成功运行。验证数据流会检查:
- 来源是否已正确配置,允许 Datastream 从其中流式传输数据。
数据流是否可以连接到来源和目标位置。
数据流的端到端配置。
定义数据流的设置
转到 Google Cloud Console 中的数据流页面。
点击创建数据流。
使用下表来填充创建数据流页面的定义数据流详情部分的字段:
字段 说明 数据流名称 输入数据流的显示名称。 数据流 ID Datastream 会根据您输入的数据流名称自动填充此字段。您可以保留自动生成的 ID,也可以更改该 ID。 区域 选择存储数据流的区域。与所有资源一样,数据流保存在区域中。区域选择不会影响您的数据流可以连接到来源数据库还是目标位置,但如果区域发生停机,可能会影响可用性。 来源类型 选择您在为源 Oracle、MySQL、SQL Server 或 PostgreSQL 数据库创建连接配置文件时指定的配置文件类型。或者,如果您尚未为来源数据库创建连接配置文件,则可以立即创建一个。
目的地类型 选择您在为 BigQuery 或 Cloud Storage 目标创建连接配置文件时指定的配置文件类型。或者,如果您尚未为目标位置创建连接配置文件,则可以立即创建一个。 加密 默认情况下,您的数据使用由 Google Cloud 管理的密钥进行加密。如果您想自行管理加密,可使用客户管理的加密密钥 (CMEK):
- 选中 Cloud KMS 密钥复选框。
- 从密钥类型下拉菜单中,选择 Cloud KMS,然后选择您的 CMEK。
如果您没有看到密钥,请点击输入密钥资源名称以提供要使用的密钥的资源名称。例如,您可以在密钥资源名称字段中输入
projects/my-project-name/locations/my-location/keyRings/my-keyring/cryptoKeys/my-key
,然后点击保存。(可选)使用标签来整理 Datastream 资源。
- 如需创建标签,请点击添加标签,然后输入标签的键值对。
- 如需移除标签,请点击包含标签的行右侧的垃圾桶图标。
(可选)为您的数据流添加提醒政策。提醒政策定义您希望在何时以及如何接收有关数据流失败的通知。
- 如需创建提醒政策,请点击添加提醒政策。
- Cloud Monitoring 中会显示创建提醒政策页面。在此页面上,您可以定义提醒政策,以防数据流失败。
如需详细了解提醒政策,请参阅管理基于指标的提醒政策。
查看自动生成的必要前提条件,以反映如何为数据流准备环境。这些前提条件可能包括如何配置源数据库以及如何将其连接到目标。最好在此步骤中完成这些前提条件,但您可以在测试数据流或启动数据流之前随时完成。如需详细了解这些前提条件,请参阅来源。
点击继续。系统会针对来源数据库类型显示创建数据流页面的定义连接配置文件面板。
指定有关来源连接配置文件的信息
如果您已为 Oracle、MySQL、SQL Server 或 PostgreSQL 创建来源连接配置文件,请从连接配置文件列表中选择它。
如果您尚未创建来源连接配置文件,请通过点击该下拉列表底部的创建连接配置文件创建一个,然后执行创建连接配置文件中的步骤。
点击运行测试以验证来源数据库和 DataStream 是否可以相互通信。
如果测试失败,会显示与连接配置文件关联的问题。如需了解问题排查步骤,请参阅诊断问题页面。进行必要的更改以纠正问题,然后重新测试。
点击继续。系统会显示创建数据流页面的配置数据流来源面板。
配置有关数据流的源数据库的信息
配置 PostgreSQL 源数据库
如果您选择 PostgreSQL 作为源数据库,则需要定义其复制属性。
- 在复制属性部分,指定以下属性:
- 在复制槽名称字段中,输入您专门为此数据流创建的槽的名称。数据库服务器使用此槽向 Datastream 发送事件。
- 在发布内容名称字段中,输入您在数据库中创建的发布内容的名称。发布内容是指您希望使用此数据流复制更改的所有表的组合。
- 请按照配置源数据库部分中所述的步骤操作。
配置 SQL Server 源数据库
如果选择 SQL Server 作为源数据库,则需要定义 CDC 方法。
在 CDC 方法下拉菜单中,选择与您的源数据库配置匹配的 CDC 方法:
- 事务日志:选择此方法可直接从数据库日志处理更改。这种方法可提供最佳的性能且效率更高,但需要额外的配置步骤。
- 更改表:选择此方法可处理来自专用更改表的更改。与事务日志方法相比,此方法更易于配置且限制较少,但支持的吞吐量较低,并且产生的负载也较高。
如需详细了解如何配置 SQL Server 源数据库,请参阅配置 SQL Server 源数据库。
请按照配置源数据库部分中所述的步骤操作。
配置源数据库
在选择要包含的对象部分中,使用要包含的对象下拉菜单指定来源数据库中 Datastream 可转移到目标位置的表和架构。
- 如果您希望 Datastream 转移所有表和架构,请选择所有架构中的所有表。
如果您希望 Datastream 仅传输特定的表和架构,请选择特定的架构和表,然后选中您希望 Datastream 提取的架构和表所对应的复选框。
如果要提供您希望 Datastream 转移的表和架构的文本定义,请选择自定义,然后在对象匹配条件字段中输入您希望 Datastream 拉取的架构和表。
如果您的数据库包含大量表和架构,我们建议您使用自定义选项,因为某些表和架构可能未包含在要拉取的对象列表中。
(可选)展开选择要排除的对象节点。在要排除的对象字段中,输入来源数据库中您希望限制 Datastream 拉取的表和架构。要排除的对象列表的优先级高于要包含的对象列表。如果某个对象同时满足包含列表和排除列表中的条件,则该对象会从数据流中排除。
- (可选)展开选择历史数据的回填模式节点,然后进行以下选择之一:
选择自动选项可将所有现有数据以及对数据的更改从来源流式传输到目标位置。
在从自动回填中排除的对象字段中,输入来源数据库中您希望限制 Datastream 回填到目标位置的表和架构。
- 选择手动选项可仅将对数据的更改流式传输到目标位置。
点击继续。根据您的目标类型,系统会显示创建数据流页面的定义连接配置文件面板。
选择目标连接配置文件
如果您已创建目标连接配置文件,则从连接配置文件列表中选择它。
如果您尚未创建目标连接配置文件,请通过点击该下拉列表底部的创建连接配置文件创建一个,然后执行创建连接配置文件中的步骤。
点击继续。系统会显示创建数据流页面的配置数据流目标位置面板。
配置有关数据流的目标位置的信息
BigQuery 目标位置
在配置从 Datastream 到 BigQuery 的连接下,指定 DataStream 将数据流式传输到 BigQuery 数据集的方式。从下列选项中选择一项:
为每个架构创建一个数据集:Datastream 会根据架构名称为每个来源架构创建一个 BigQuery 数据集。
如果您选择此选项,那么对于源数据库中的每个架构,Datastream 都会在包含该流的项目中创建一个数据集。
此外,选择为每个架构创建一个数据集选项时:
- 在位置字段中,输入要在其中创建新数据集的区域。
- (可选)在前缀字段中,为数据流创建的数据集定义前缀。您指定的字符串会添加到来源架构名称中。例如,如果架构名为
<mySchema>
,并且您将数据集前缀定义为<myPrefix>
,则 Datastream 会创建一个名为<myPrefix><mySchema>
的数据集。 - 通过选择 Google 管理的加密密钥或客户管理的加密密钥,指定如何在 BigQuery 中加密数据。
所有架构的单个数据集:Datastream 会在您指定的现有 BigQuery 数据集内创建所有表。 Datastream 创建的每个表的命名方式是将源架构名称和表名称组合使用,以下划线分隔(例如
)。<mySchemaName>_<myTableName>
指定流写入模式。选择写入模式,以定义如何在 BigQuery 中写入和处理数据:
- 合并:如果您希望数据与源数据同步,请选择此选项。
- 仅附加:如果您想保留更改事件的所有历史数据,请选择此选项。
指定数据过时期限。仅当在上一步中选择了合并模式时才可用。选择限制,以平衡 BigQuery 查询性能和费用与数据新鲜度。BigQuery 会根据过时限制持续或在查询运行时在后台应用更改。过时期限较短的数据(更新鲜的数据)可能会增加 BigQuery 处理费用。
点击继续。系统会显示创建数据流页面的审核数据流详情并创建面板。
Cloud Storage 目的地
(可选)在数据流路径前缀字段中,输入 Datastream 将架构、表和数据从来源数据库转移到的目标存储桶的文件夹。
例如,如果您希望 Datastream 将数据从来源数据库转移到目标存储桶中的
/root/example
文件夹,请在数据流路径前缀字段中输入/root/example
。在输出格式字段中,选择写入 Cloud Storage 的文件的格式。
可选。如果您选择 JSON 格式,则系统会显示两个复选框:
- 在文件路径中添加统一类型架构文件:如果您选中此复选框,Datastream 会将两个文件写入 Cloud Storage:一个 JSON 数据文件和一个 Avro 架构文件。架构文件与数据文件同名,扩展名为
.schema
。如果您未选中此复选框,则 Datastream 只会将 JSON 数据文件写入 Cloud Storage。默认情况下,系统未选中此复选框。 - 启用 gzip 压缩:如果您选中此复选框,Datastream 会使用
gzip
实用程序来压缩 Datastream 写入 Cloud Storage 的文件。如果您未选中此复选框,则 Datastream 会将文件写入 Cloud Storage 而不进行压缩。默认情况下,此复选框处于选中状态。
- 在文件路径中添加统一类型架构文件:如果您选中此复选框,Datastream 会将两个文件写入 Cloud Storage:一个 JSON 数据文件和一个 Avro 架构文件。架构文件与数据文件同名,扩展名为
点击继续。系统会显示创建数据流页面的审核数据流详情并创建面板。
创建数据流
- 验证数据流的详细信息,以及数据流将用于将数据从源数据库传输到目标的源和目标连接配置文件。
点击运行验证来验证数据流。通过验证数据流,Datastream 会检查来源是否配置正确,验证数据流是否可以连接到来源和目标位置,并验证数据流的端到端配置。
如果来源数据库是 Oracle,则 Datastream 会执行以下检查:
勾选 说明 对象列表有效性 Datastream 验证排除列表是否不纳入包含列表。 转发 SSH 隧道连接性 Datastream 验证其是否可以通过转发 SSH 隧道连接到堡垒主机。 与 Oracle 数据库的连接 Datastream 验证其是否可以连接到来源 Oracle 数据库。 Oracle 用户权限 Datastream 验证其用于连接到来源数据库的用户是否具有从数据库检索架构、表和数据所需的所有权限,以便 Datastream 可以将此信息流式传输到目标位置。 日志记录模式配置 Datastream 验证 Oracle 数据库的日志记录模式是否设置为 ARCHIVELOG。 补充日志记录配置 Datastream 验证是否为从来源流式传输到目标位置的数据库表启用了补充日志记录。 归档日志文件配置 Datastream 验证是否在来源中配置了归档日志记录,以及归档日志文件是否存在。 Cloud Storage 权限(适用于 Cloud Storage 目标位置) Datastream 验证其是否具有写入 Cloud Storage 中的目标存储桶所需的权限。 如果来源数据库是 MySQL,则 Datastream 会执行以下检查:
勾选 说明 对象列表有效性 Datastream 验证排除列表是否不纳入包含列表。 转发 SSH 隧道连接性 Datastream 验证其是否可以通过转发 SSH 隧道连接到堡垒主机。 与 MySQL 数据库的连接 Datastream 验证其是否可以连接到来源 MySQL 数据库。 已启用二进制日志 Datastream 验证二进制日志文件是否已正确配置,以及日志文件是否存在。 二进制日志格式配置 Datastream 验证 MySQL 数据库的二进制日志格式是否设置为 ROW
。复制权限 Datastream 验证其是否有权复制 MySQL 数据库。 Cloud Storage 权限(适用于 Cloud Storage 目标位置) Datastream 验证其是否具有写入 Cloud Storage 中的目标存储桶所需的权限。 如果源数据库是 PostgreSQL,Datastream 会执行以下检查:
检查 说明 与 PostgreSQL 数据库的连接 Datastream 验证其是否可以连接到来源 PostgreSQL 数据库。 逻辑解码已启用 Datastream 会验证 PostgreSQL 数据库的 wal_level
参数是否设置为logical
。复制槽配置 Datastream 会验证 PostgreSQL 复制槽是否存在且处于活动状态、Datastream 是否具有访问该槽所需的权限,以及该槽是否配置正确。 发布配置 Datastream 会验证该发布内容是否存在,以及发布内容中是否包含要为该数据流复制的表。 回填权限 Datastream 会验证回填历史数据所需的表是否存在,以及它是否拥有读取这些表的必要权限。 如果来源数据库是 SQL Server,则 Datastream 会执行以下检查:
检查 说明 SQL Server 版本 Datastream 会验证源 SQL Server 数据库版本是否受支持。如需了解支持的版本,请参阅版本。 SQL Server 用户权限 Datastream 会验证用户是否具有访问源 SQL Server 数据库所需的权限。 已启用 SQL Server CDC Datastream 会验证是否为数据库以及数据流中包含的所有表启用了 CDC。 SQL Server 数据库验证 Datastream 会检查源数据库是否已正确配置、是否满足所有复制要求,以及列中是否不存在不受支持的数据类型。 Cloud Storage 或 BigQuery 权限 Datastream 会验证用户是否具有写入目标位置所需的权限。
通过所有验证检查后,点击创建并START 即可创建数据流,然后 或创建 (CREATE),在不创建流的情况下 立即开始使用
如果您未立即启动数据流,则可以在数据流页面中通过点击启动进行启动。
创建数据流后,您可以查看其概要信息和详细信息。