

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

# 使用 Apache Iceberg 表作为目的地的先决条件
<a name="apache-iceberg-prereq"></a>

从以下选项中进行选择，以完成所需的先决条件。

**Topics**
+ [在 Amazon S3 中传输到 Iceberg 表的先决条件](#iceberg-tables-prerequisites)
+ [传输到 Amazon S3 表类数据存储服务的先决条件](#s3-tables-prerequisites)

## 在 Amazon S3 中传输到 Iceberg 表的先决条件
<a name="iceberg-tables-prerequisites"></a>

开始之前，请满足以下先决条件。
+ **创建 Amazon S3 存储桶**：您必须创建 Amazon S3 存储桶，以便在创建表期间添加元数据文件路径。有关更多信息，请参阅[创建 S3 存储桶](https://docs.amazonaws.cn/AmazonS3/latest/userguide/creating-bucket.html)。
+ **创建具有所需权限的 IAM 角色**：Firehose 需要具有特定权限的 IAM 角色才能访问 Amazon Glue 表并将数据写入 Amazon S3。相同的角色用于授予 Amazon Glue 对 Amazon S3 存储桶的访问权限。在创建 Iceberg 表和 Firehose 流时，您需要此 IAM 角色。有关更多信息，请参阅 [授予 Firehose 访问 Amazon S3 表的权限](controlling-access.md#using-s3-tables)。
+ **创建 Apache Iceberg 表**：如果您在 Firehose 流中配置用于更新和删除的唯一键，则 Firehose 会在创建流时验证表和唯一键是否存在。在这种情况下，您必须在创建 Firehose 流之前创建表。您可以使用 Amazon Glue 创建 Apache 冰山表。有关更多信息，请参阅 [Creating Apache Iceberg tables](https://docs.amazonaws.cn/glue/latest/dg/populate-otf.html#creating-iceberg-tables)。如果您没有在 Firehose 流中配置唯一键，则无需在创建 Firehose 流之前创建 Iceberg 表。
**注意**  
Firehose 支持 Apache Iceberg 表的以下表格版本和格式。  
**表格格式版本**：Firehose 仅支持 [V2 表格格式](https://iceberg.apache.org/spec/#version-2)。请勿创建 V1 格式的表，否则会出现错误，数据将改为传输到 S3 错误存储桶。
**数据存储格式**：Firehose 以 Parquet 格式将数据写入 Apache Iceberg 表。
**行级操作** — Firehose 支持向 Apache Iceberg Tables 写入数据的 Merge-on-Read (MOR) 模式。

## 传输到 Amazon S3 表类数据存储服务的先决条件
<a name="s3-tables-prerequisites"></a>

要将数据传输到 Amazon S3 表类数据存储服务存储桶，请先满足以下先决条件。
+ 创建 S3 表存储桶、命名空间、表存储桶中的表以及 [Amazon S3 表类数据存储服务入门](https://docs.amazonaws.cn/AmazonS3/latest/userguide/s3-tables-getting-started.html)中概述的其他集成步骤。由于 S3 表目录集成施加的限制（如 [S3 表目录集成限制](https://docs.amazonaws.cn/lake-formation/latest/dg/notes-s3-catalog.html)中所述），列名必须为小写。
+ **创建具有所需权限的 IAM 角色**：Firehose 需要具有特定权限的 IAM 角色才能访问 Amazon Amazon Glue 表并将数据写入 Amazon S3 表类数据存储服务存储桶。要写入 Amazon S3 表存储桶中的表，您还必须为 IAM 角色提供所需的权限。Amazon S3 表目录所需的权限取决于您使用的访问控制模式：
  + **IAM 访问控制** — Firehose 交付角色需要直接对 Amazon S3 表格资源的 IAM 权限。
  + **Lake Formation 访问控制** — Firehose 交付角色需要 Amazon Amazon Lake Formation 权限才能管理对您的表格资源的访问权限。 Amazon Lake Formation 使用自己的权限模型，可以对数据目录资源进行精细的访问控制。

  在创建 Firehose 流时，您配置此 IAM 角色。有关更多信息，请参阅[向 Firehose 授予对 Amazon S3 表类数据存储服务的访问权限](https://docs.amazonaws.cn/firehose/latest/dev/controlling-access.html#using-s3-tables)。

有关 step-by-step集成，请参阅博客[使用 Amazon S3 表和 Amazon Data Firehose 构建用于流式传输数据的数据湖](https://www.amazonaws.cn/blogs/storage/build-a-data-lake-for-streaming-data-with-amazon-s3-tables-and-amazon-data-firehose/)。有关更多信息，另请参阅在[Amazon 分析服务中使用 Amazon S3 表](https://docs.amazonaws.cn/AmazonS3/latest/userguide/s3-tables-integrating-aws.html)。