

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

# 直播表交付的工作原理
<a name="data-delivery-st-about"></a>

 使用本主题了解流式表传输如何将记录从您的 Amazon Kinesis Data Streams 流发送到由 S3 表存储桶支持的 Apache Iceberg 上的流式表，包括记录转换、目标表创建、分区、数据更新、死信队列和加密。

## 配送的工作原理
<a name="data-delivery-st-how-it-works"></a>

 流式传输表按以下步骤将记录发送到 Apache Iceberg 上的流式传输表：

1.  **读取 ** — 交付从 Kinesis 数据流中的所有分片中读取记录。

1.  **缓冲区 ** — 交付缓冲区会记录直到达到数据新鲜度间隔。

1.  **验证和转换 ** — 交付会根据架构注册表中的架构验证每条记录，并将其转换为 Apache Iceberg 表 AWS Glue 架构。验证失败的记录进入死信队列。

1.  **压缩并写入 ** — 交付通过行内压缩将记录转换为经过优化的Apache Parquet文件，并将其写入目标Iceberg表。

1.  **提交 ** — 交付将新文件提交到 Iceberg 表，这样数据就可以查询了。

## 记录转换
<a name="data-delivery-st-record-conversion"></a>

 流式表传输需要在架构注册表中注册 AWS Glue 架构。交付使用该架构将传入记录转换为 Apache Iceberg 表架构。它支持以下输入记录格式：
+ **JSON ** — 纯的 JSON 记录。您提供的引用`GSRSchemaARN`了在架构注册表中注册的 AWS Glue 架构。
+ **GSR\_JSON ** — 架构注册表序列化器在每条记录中嵌入架 AWS Glue 构 ID 的 JSON 记录。该架构是从架 AWS Glue 构注册表自动解析的。

 有关 AWS Glue 架构注册表到 Iceberg 的完整类型映射和字段处理规则，请参阅。[直播桌的冰山行为](data-delivery-st-iceberg.md)

## 目标表
<a name="data-delivery-st-destination-table"></a>

 当您创建流式表交付时，Amazon Kinesis Data Streams 会在您指定的 S3 表存储桶中创建目标 Iceberg 表。提供以下各项：
+ **表存储桶 ARN ** — 创建表的 S3 表存储桶的 ARN。
+ **命名空间 ** — 表的命名空间。
+ **表名 ** — 要创建的表的名称。每次交付都会创建自己的表格。您无法向现有餐桌配送。
+ **分区列 ** — 用于按小时对表进行分区的`timestamptz`列。有关分区要求，请参见[直播桌的冰山行为](data-delivery-st-iceberg.md)。

## 数据新鲜度
<a name="data-delivery-st-data-freshness"></a>

 数据新鲜度定义了传送记录之前的最大缓冲时间。您可以在 300 到 900 秒（5 到 15 分钟）之间配置此值。默认值为 300 秒。值越低，传送速度越快，而值越高，在目标位置生成的文件越少、越大。

## Dead-letter 队列
<a name="data-delivery-st-dead-letter-queue"></a>

 流式传输表需要死信队列。您可以指定一个 Amazon S3 存储桶来接收有关验证失败的记录的信息。您提供存储桶 ARN、预期的存储桶所有者以及可选的错误输出前缀。死信队列包含记录标识符和错误上下文，而不是完整的记录有效载荷。

## 加密
<a name="data-delivery-st-encryption"></a>

 流式表传输对 Amazon S3 中静态传输的数据进行加密。默认情况下，数据使用 Amazon S3 托管密钥 (SSE-S3) 进行加密。您可以改用客户管理的 AWS KMS 密钥 (SSE-KMS)。

**重要**  
 您不能使用 AWS 托管式密钥 （`aws/kinesis`别名）进行目标加密。您必须使用客户管理的 AWS KMS 密钥。此外，如果您的源 Kinesis 数据流使用加密 AWS 托管式密钥，则无法创建交付。有关源流加密要求，请参阅[源流加密](data-delivery-security.md#data-delivery-security-source-stream-encryption)。有关服务执行角色所需的 AWS KMS 权限，请参阅[数据传输的 IAM 权限](data-delivery-iam.md)。

## Cross-account 和跨区域交付
<a name="data-delivery-st-cross-account-region"></a>

 流媒体表传输不支持跨账户或跨区域传输。源流、目标 S3 表存储桶和 AWS Glue 架构注册表都必须位于相同 AWS 账户 且相同的区域。