本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置 Firehose 流
注意
除Amazon Web Services 区域中国地区和亚太地区(马来西亚)外,Firehose 在所有地区都支持数据库作为来源。 Amazon GovCloud (US) Regions此功能为预览版,可能会发生变化。请勿将其用于生产工作负载。
要创建以数据库为源的 Firehose 流,必须配置以下内容:
配置源位置和目的地
要从数据库中获取数据,请选择数据流的来源。Firehose 支持 MyS QL 和 PostgreSQL 数据库作为数据库源。接下来,选择 Apache Iceberg 表作为目的地并提供 Firehose 流名称。
配置数据库连接
为了让 Firehose 连接到数据库实例,它需要数据库终端节点、VPC 服务端点、端口以及具有正确凭据的有效数据库用户。
-
数据库终端节点-数据库集群主服务器的数据库终端节点。例如,终端节点要么是自
xyz.amazonaws.com
建数据库,要么是 RDS 数据库mydb.123456789012.us-east-1.rds.amazonaws.com
。 -
VPC 服务端点名称 — Firehose 支持与数据库的私有连接。您必须提供 VPC 终端节点服务名称。例如,服务端点可以是
com.amazonaws.vpce.us-east-1.vpce-svc-XXXXXXXXXXXXXX
。 -
端口 — 对于端口,必须为 MySQL 数据库配置 3306,为 Post greSQL 数据库配置 54 32。
-
SSL 模式-您可以选择启用或禁用 SSL 模式。如果启用,Firehose 将用于
verify_identity
MySQL,对于 Postgre SQ L 使用verify-full
SSL 模式。证书必须由受信任的 CA 签名。有关更多信息,请参阅使用加密 SSL/TLS 与数据库实例或集群的连接。请注意,对于 RDS PostgreSQL 和 Aurora PostgreSQLforce_ssl
,该参数设置为 1,因此您必须在 Firehose 配置中将 SSL 模式指定为启用,或者force_ssl
在数据库参数组中将参数更改为 0。 -
身份验证 Amazon Secrets Manager-从中选择一个 Amazon Secrets Manager 包含连接数据库的凭据的密钥。如果您没有现有密钥,请在中创建一个 Amazon Secrets Manager。有关更多信息,请参阅Amazon Secrets Manager 在 Amazon Data Firehose 中使用身份验证。
配置数据采集
如果您希望 Firehose 捕获来自特定数据库、表和列的更改,则可以将其配置为创建 Firehose 流的一部分。您可以指定所需的数据库、表和列,方法是提供包含或排除它们的正则表达式,或者明确提供以逗号分隔的特定数据库、表和列名。
注意
由于在 PostgreSQL 中,每个数据库中的架构都包含表和视图等数据库对象,因此完全限定名称或正则表达式必须考虑架构。
对于 MySQL,完全限定名称是<Sampledatabase>.<SampleTable>
,对于 Postgre SQL,完全限定名称是。<SampleSchema>.<SampleTable>
以下是每种类型的一些示例。
数据库
Example of sample regular expression (for including databases): .* Example of explicit naming of tables:
<SampleDatabase>
表
Example of sample regular expression for excluding tables:
<SampleDatabase>
.* Example of explicit naming of tables for MySQL :<SampleDatabase>
.<SampleTable1>
Example of explicit naming of tables for PostgreSQL :<SampleSchema>
.<SampleTable>
列
Example of sample regular expression (for excluding columns):
<SampleDatabase>
.*.* Example of explicit naming of columns for MySQL :<SampleDatabase>
.<SampleTable>
.<SampleColumn>
Example of explicit naming of columns for PostgreSQL :<SampleSchema>
.<SampleTable>
.<SampleColumn>
配置代理密钥
Firehose 需要已配置表的唯一密钥才能获取数据的初始副本。如果您的数据库中有没有主键的表,则必须为此类表提供代理键。如果您的所有表都有主键,则无需配置此部分。如果 Firehose 发现没有主键的表缺少代理键,则其快照(初始复制)过程将失败。在这种情况下,Firehose 会向日志抛出错误。 CloudWatch 对于代理密钥,必须使用完全限定名称显式配置密钥,如以下示例所示。
对于 MySQL
SampleDatabase.SampleTable:SampleColumn
对于 PostgreSQL
SampleSchema.SampleTable:SampleColumn
提供快照水印表
Firehose 在对表进行增量快照时使用水印机制。您必须提供作为先决条件的一部分创建的此快照水印表。按照以下示例所示的格式输入快照水印表。
For MySQL: DatabaseName.TableName For PostgreSQL: SchemaName.TableName
注意
请勿删除水印表,也不要手动在水印表中插入或删除记录。此外,您不得撤消为 Firehose 创建的数据库用户在水印表中插入或删除记录的权限。
下一步:配置目的地设置