

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 创建直播表交付
<a name="data-delivery-st-create"></a>

 创建交付，将记录从 Amazon Kinesis 数据流持续发送到 Apache Iceberg 上由 S3 表存储桶支持的流式传输表。您可以使用 AWS 管理控制台 或创建配送 AWS CLI。当您创建交付时，Amazon Kinesis Data Streams 会在您指定的表存储桶中创建目标 Iceberg 表。

**注意**  
 在创建交付之前，请完成中的先决条件[直播表入门](data-delivery-st-getting-started.md)，包括中所述的 IAM 服务执行角色[数据传输的 IAM 权限](data-delivery-iam.md)。流式表传输需要架构注册表中的 AWS Glue 架构和死信队列。

## 使用 AWS 管理控制台
<a name="data-delivery-st-create-console"></a>

1. 在以下位置打开 Kinesis 控制台。[https://console.aws.amazon.com/kinesis](https://console.aws.amazon.com/kinesis)

1. 在导航窗格中，选择**流式传输表**，然后选择**创建流式传输表**。

1. **步骤 1：源配置。**在 “**配送详情” 下**，输入**配送名称**。可接受的字符包括大写和小写字母、数字、下划线、连字符和句点。对于**来源**，选择要 On-Demand传输的直播。仅显示 On-Demand 直播。选择**下一步**。

1. **步骤 2：目标配置。**在 “**记录转换配置” 下**，选择一种**记录转换格式**：
   + **JSON ** — 根据架构注册表中的 AWS Glue 架构进行验证的 JSON 记录。在 Glue 架构注册表**下提供**架构 ARN。
   + **Glue 架构注册表 JSON ** — 使用 AWS Glue 架构注册表 JSON 架构转换记录。

   对于 ** Glue 架构注册表**，指定架构 ARN 或选择 “**浏览” ** 以选择一个。

1. 在**目标表下**，指定 Amazon Kinesis Data Streams 创建冰山表的位置：
   + **S3 表存储桶 ARN ** — S3 表存储桶的 ARN。选择 “**浏览 S3” ** 以选择一个。
   + **命名空间 ** — 表的命名空间（仅限小写字母、数字和下划线）。
   + **表名 ** — 要创建的表的名称。
   + **列名 ** — 架构中用于按小时对表进行分区的日期时间字段的名称。该字段必须是架构中日期时间格式的字符串字段。
   + **压缩类型 ** — 选择 ** ZSTD **、** Snappy 或 N ** one。** **
   + **数据新鲜度 ** — 传送记录前的最大缓冲时间（以秒为单位）（最低 300，最大 900）。

   选择**下一步**。

1. **第 3 步：其他配置。**配置以下内容，然后选择**下一步**：
   + **加密配置 ** — 默认情况下，数据使用默认 Amazon S3 加密进行加密。要使用客户管理的密钥，请选择**自定义加密设置（高级）**。
   + **服务访问权限 ** — 对于 ** IAM 角色 ARN**，选择或创建授予目标访问权限的 IAM 角色。选择**创建 IAM 角色**来创建一个。
   + **死信队列 ** — 对于 ** S3 存储桶 URI**，选择存储无法交付记录的 Amazon S3 存储桶。（可选）设置 S ** 3 存储桶错误输出前缀**。
   + **日志传输 ** —（可选）选择 “**传送到亚马逊 CloudWatch 日志” ** 以捕获传送诊断信息。
   + **标签 ** —（可选）添加键值标签以识别和组织您的交付。

1. **第 4 步：查看并创建。**检查您的配置，然后选择 “**创建直播表” **。配置完成后，交付从 “创建” 过渡到 “活动”。

## 使用 AWS CLI
<a name="data-delivery-st-create-cli"></a>

 使用`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 状态。请参阅[描述直播表交付](data-delivery-st-describe.md)。

 **API 参考 ** — 参见`CreateChannel`《*亚马逊 Kinesis 数据流 API 参考*》。