本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置 Firehose 流
要创建以 Apache Iceberg 表作为目的地的 Firehose 流,您需要配置以下内容。
注意
用于传送到 S3 表存储桶中的表的 Firehose 流的设置与 Amazon S3 中的 Apache Iceberg Tables 相同。
配置源位置和目的地
要向 Apache Iceberg 表传输数据,请为您的流选择源。
要为流配置源,请参阅配置源设置。
接下来,选择 Apache Iceberg 表作为目的地并提供 Firehose 流名称。
配置数据转换
要对数据执行自定义转换(例如,在传入流中添加或修改记录),您可以将 Lambda 函数添加到您的 Firehose 流中。有关在 Firehose 流中使用 Lambda 进行数据转换的更多信息,请参阅在 Amazon Data Firehose 中转换源数据。
对于 Apache Iceberg 表,您需要指定如何将传入记录路由到不同的目标表以及要执行的操作。向 Firehose 提供所需路由信息的其中一种方法是使用 Lambda 函数。
有关更多信息,请参阅将记录路由到不同的 Iceberg 表。
连接数据目录
Apache Iceberg 需要数据目录才能写入 Apache Iceberg 表。Firehose 与 Apache Iceber AWS Glue Data Catalog g Tables 集成。
你可以在与 Firehose 直播相同的账号 AWS Glue Data Catalog 中使用,也可以在跨账号中使用,也可以在与 Firehose 直播相同的区域(默认)中使用,也可以在不同的区域中使用。
配置 JQ 表达式
对于 Apache Iceberg 表,您必须指定如何将传入记录路由到不同的目标表以及要执行的插入、更新和删除等操作。为此,您可以为 Firehose 配置 JQ 表达式,以解析并获取所需信息。有关更多信息,请参阅 使用表达式向 Firehose 提供路由信息 JSONQuery。
配置唯一键
使用多个表进行更新和删除:唯一键是源记录中的一个或多个字段,用于唯一标识 Apache Iceberg 表中的一行。如果您有包含多个表的仅插入场景,则不必配置唯一键。如果您要对某些表进行更新和删除,则必须为这些必需的表配置唯一键。请注意,如果表中缺少行,则更新将自动插入该行。如果您只有一个表,则可以配置唯一键。
您可以在 Firehose 直播创建过程中为每个表配置唯一密钥,也可以在创建表或更改表identifier-field-ids
有无所需的表并将其用作唯一键。如果两者都未配置,则通过更新和删除操作传输数据将失败。
要配置此部分,请为要更新或删除数据的表提供数据库名称、表名称和唯一键。在配置中,每个表只能有一个条目。或者,如果表中的数据如以下示例所示无法传输,则您也可以选择提供错误存储桶前缀。
[ { "DestinationDatabaseName": "MySampleDatabase", "DestinationTableName": "MySampleTable", "UniqueKeys": [ "COLUMN_PLACEHOLDER" ], "S3ErrorOutputPrefix": "OPTIONAL_PREFIX_PLACEHOLDER" } ]
指定重试持续时间
您可以使用此配置来指定 Firehose 在写入 Amazon S3 中的 Apache Iceberg 表中遇到失败时应尝试重试的持续时间(以秒为单位)。您可以设置 0 到 7200 秒之间的任何值,以执行重试。默认情况下,Firehose 的重试时间为 300 秒。
处理失败的传输或处理
您必须将 Firehose 配置为将记录传输到 S3 备份存储桶,以防它在重试持续时间到期后遇到处理或传输数据流失败问题。为此,请在控制台的备份设置中配置 S3 备份存储桶和 S3 备份存储桶错误输出前缀。
配置缓冲区提示
Firehose 将内存中传入的流数据缓冲到一定大小(缓冲大小),或缓冲一定时间(缓冲时间间隔)后再将其传输到 Apache Iceberg 表。您可以选择 1—128 的缓冲区大小 MiBs 和 0—900 秒的缓冲间隔。缓冲区提示越高,S3 写入次数越少,压缩成本越低(由于越大的数据文件),查询执行速度更快,但延迟更高。较低的缓冲区提示值以较低的延迟传输数据。
配置高级设置
您可以为 Apache Iceberg 表配置服务器端加密、错误日志记录、权限和标签。有关更多信息,请参阅 配置高级设置。您需要添加作为其中一部分创建的IAM角色使用 Apache Iceberg 表作为目的地的先决条件。Firehose 将担任访问 AWS Glue 表和写入 Amazon S3 存储桶的角色。
可能需要几分钟的时间才能完成 Firehose 流创建。成功创建 Firehose 流后,您可以开始向其中摄取数据,并可以查看 Apache Iceberg 表中的数据。