本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配置目的地设置
注意
除Amazon Web Services 区域中国地区和亚太地区(马来西亚)外,Firehose 在所有地区都支持数据库作为来源。 Amazon GovCloud (US) Regions此功能为预览版,可能会发生变化。请勿将其用于生产工作负载。
Firehose 支持将数据库更改传送到 Apache 冰山表。配置以下目标设置,以使用数据库作为源来设置 Firehose 直播。
连接数据目录
Apache Iceberg 需要数据目录才能写入 Apache Iceberg 表。Firehose 与 Apache Iceber Amazon Glue Data Catalog g Tables 集成。您可以在与 Firehose 流相同的账户中使用 Amazon Glue Data Catalog ,或跨账户使用以及在与 Firehose 流相同的区域(默认)中使用,或在不同的区域中使用。
启用自动创建表格
如果启用此选项,Firehose 会自动在目标中创建所需的数据库、表和列,其名称和架构与源数据库相同。如果您启用此选项,并且 Firehose 发现一些已经存在具有相同名称和架构的表,则它将改用这些现有表,只创建缺少的数据库、表和列。
如果您未启用此选项,Firehose 会尝试查找所需的数据库、表和列。如果 Firehose 找不到它们,则会引发错误并将数据传送到 S3 错误存储桶。
注意
为了让 Firehose 成功将数据传输到 Iceberg 表,数据库、表和列名以及架构应完全匹配。如果数据库对象和架构的名称不匹配,Firehose 会抛出错误并将数据传送到 S3 错误存储桶。
对于 MySQL 数据库,源 Amazon Glue 数据库映射到数据库,源表映射到 Amazon Glue 表。
对于 PostgreSQL,源数据库映射 Amazon Glue 到数据库,源表映射 Amazon Glue 到名称为的表。SchemaName_TableName
注意
对于亚马逊 S3 表,Firehose 不支持自动创建表。在创建 Firehose 直播之前,您必须创建 S3 表。
启用架构演进
如果启用此选项,则当源架构发生变化时,Firehose 会自动演变 Apache Iceberg 表的架构。作为架构演进的一部分,Firehose 目前支持添加新的列。例如,如果在源数据库端的表中添加了一个新列,Firehose 会自动接受这些更改,并将新列添加到相应的 Apache Iceberg 表中。
指定重试持续时间
您可以使用此配置来指定 Firehose 在写入 Amazon S3 中的 Apache Iceberg 表中遇到失败时应尝试重试的持续时间(以秒为单位)。您可以设置 0 到 7200 秒之间的任何值,以执行重试。默认情况下,Firehose 的重试时间为 300 秒。
处理失败的传输或处理
您必须将 Firehose 配置为将记录传送到 S3 备份存储桶,以防该存储桶在重试时间到期后无法处理或传输流。为此,请配置 S3 备份存储桶和 S3 备份存储桶错误输出前缀。
配置缓冲区提示
Firehose 将内存中传入的流数据缓冲到一定大小(缓冲大小),或缓冲一定时间(缓冲时间间隔)后再将其传输到 Apache Iceberg 表。您可以选择 1—128 的缓冲区大小 MiBs 和 0—900 秒的缓冲间隔。缓冲区提示越高,S3 写入量越少,数据文件越大,压缩成本越低,查询运行时间越快,但延迟越高。较低的缓冲区提示值以较低的延迟传输数据。
配置高级设置
对于高级设置,您可以为 Apache Iceberg Tables 配置服务器端加密、错误日志、权限和标签。有关更多信息,请参阅 配置高级设置。要使用 Apache Iceberg Tables 作为目标授予 Firehose 访问权限以将数据库更改复制到 Apache 冰山表,您必须添加在中创建的 IAM 角色。Firehose 将担任访问 Amazon Glue 表和写入亚马逊 S3 存储桶的角色。
我们强烈建议您启用 CloudWatch 日志。如果 Firehose 连接数据库或拍摄表快照时出现任何问题,Firehose 会抛出错误并记录到已配置的日志。这是通知您错误的唯一机制。
可能需要几分钟的时间才能完成 Firehose 流创建。成功创建 Firehose 流后,您可以开始向其中摄取数据,并可以查看 Apache Iceberg 表中的数据。
注意
仅为一个数据库配置一个 Firehose 流。一个数据库有多个 Firehose 流会创建多个数据库连接器,从而影响数据库性能。
创建 Firehose 流后,现有表的初始状态将为快照 IN_PROGRESS。当快照状态设置为 IN_ PROGRESS 时,请勿更改源表的架构。如果您在创建快照时更改了表的架构,Firehose 会跳过该表的快照。快照过程完成后,其状态将更改为 “完成”。