本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建直播表交付
创建交付,将记录从 Amazon Kinesis 数据流持续发送到 Apache Iceberg 上由 S3 表存储桶支持的流式传输表。您可以使用 AWS 管理控制台 或创建配送 AWS CLI。当您创建交付时,Amazon Kinesis Data Streams 会在您指定的表存储桶中创建目标 Iceberg 表。
注意
在创建交付之前,请完成中的先决条件直播表入门,包括中所述的 IAM 服务执行角色数据传输的 IAM 权限。流式表传输需要架构注册表中的 AWS Glue 架构和死信队列。
使用 AWS 管理控制台
-
在以下位置打开 Kinesis 控制台。https://console.aws.amazon.com/kinesis
-
在导航窗格中,选择流式传输表,然后选择创建流式传输表。
-
步骤 1:源配置。在 “配送详情” 下,输入配送名称。可接受的字符包括大写和小写字母、数字、下划线、连字符和句点。对于来源,选择要 On-Demand传输的直播。仅显示 On-Demand 直播。选择下一步。
-
步骤 2:目标配置。在 “记录转换配置” 下,选择一种记录转换格式:
JSON — 根据架构注册表中的 AWS Glue 架构进行验证的 JSON 记录。在 Glue 架构注册表下提供架构 ARN。
Glue 架构注册表 JSON — 使用 AWS Glue 架构注册表 JSON 架构转换记录。
对于 Glue 架构注册表,指定架构 ARN 或选择 “浏览” 以选择一个。
-
在目标表下,指定 Amazon Kinesis Data Streams 创建冰山表的位置:
S3 表存储桶 ARN — S3 表存储桶的 ARN。选择 “浏览 S3” 以选择一个。
命名空间 — 表的命名空间(仅限小写字母、数字和下划线)。
表名 — 要创建的表的名称。
列名 — 架构中用于按小时对表进行分区的日期时间字段的名称。该字段必须是架构中日期时间格式的字符串字段。
压缩类型 — 选择 ZSTD 、 Snappy 或 N one。
数据新鲜度 — 传送记录前的最大缓冲时间(以秒为单位)(最低 300,最大 900)。
选择下一步。
-
第 3 步:其他配置。配置以下内容,然后选择下一步:
加密配置 — 默认情况下,数据使用默认 Amazon S3 加密进行加密。要使用客户管理的密钥,请选择自定义加密设置(高级)。
服务访问权限 — 对于 IAM 角色 ARN,选择或创建授予目标访问权限的 IAM 角色。选择创建 IAM 角色来创建一个。
死信队列 — 对于 S3 存储桶 URI,选择存储无法交付记录的 Amazon S3 存储桶。(可选)设置 S 3 存储桶错误输出前缀。
日志传输 —(可选)选择 “传送到亚马逊 CloudWatch 日志” 以捕获传送诊断信息。
标签 —(可选)添加键值标签以识别和组织您的交付。
-
第 4 步:查看并创建。检查您的配置,然后选择 “创建直播表” 。配置完成后,交付从 “创建” 过渡到 “活动”。
使用 AWS CLI
使用create-channel命令创建流式表交付。此配置需要架构注册表中的 AWS Glue 架构和死信队列:
aws kinesis create-channel \ --channel-name "my-iceberg-delivery" \ --service-execution-role-arn "arn:aws:iam::123456789012:role/my-channel-role" \ --stream-configuration-list '[ { "StreamARN": "arn:aws:kinesis:us-east-1:123456789012:stream/my-stream", "RecordConfiguration": { "RecordFormatType": "JSON", "GSRSchemaARN": "arn:aws:glue:us-east-1:123456789012:schema/my-registry/my-schema" } } ]' \ --s3-tables-destination-configuration '{ "DataFreshnessInSeconds": 300, "DeadLetterQueueS3Configuration": { "BucketARN": "arn:aws:s3:::my-dlq-bucket", "ExpectedBucketOwner": "123456789012", "ErrorOutputPrefix": "dlq/" }, "S3TablesConfigurationList": [ { "TableBucketARN": "arn:aws:s3tables:us-east-1:123456789012:bucket/my-table-bucket", "Namespace": "my_namespace", "TableName": "my_table", "CompressionType": "ZSTD", "PartitionSpec": { "PartitionFields": [ { "SourceName": "timestamp", "Transform": "TIME_HOUR" } ] } } ] }'
该命令返回频道 ARN (ChannelARN)。将其与一起使用describe-channel以验证交付是否达到 ACTIVE 状态。请参阅描述直播表交付。
API 参考 — 参见CreateChannel《亚马逊 Kinesis 数据流 API 参考》。