

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

# 启用记录格式转换
<a name="enable-record-format-conversion"></a>

如果您启用记录格式转换，则无法将亚马逊数据 Firehose 目标设置为亚马逊 OpenSearch 服务、亚马逊 Redshift 或 Splunk。启用格式转换后，Amazon S3 就是您可用于 Firehose 流的唯一目的地。下一节将介绍如何从控制台和 Firehose API 操作启用记录格式转换。有关如何使用设置记录格式转换的示例 Amazon CloudFormation，请参阅[Amazon::DataFirehose:: DeliveryStream](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#aws-resource-kinesisfirehose-deliverystream--examples)。

## 从控制台前期用记录格式转换
<a name="record-format-conversion-using-console"></a>

您可以在创建或更新 Firehose 流时在控制台上启用数据格式转换。启用数据格式转换后，Amazon S3 就是您可为 Firehose 流进行配置的唯一目的地。此外，启用格式转换时，系统将禁用 Amazon S3 压缩。但是，Snappy 压缩会作为自动转换过程的一部分自动进行。在这种情况下，Amazon Data Firehose 使用的 Snappy 的构造格式与 Hadoop 兼容。这意味着，您可以使用 Snappy 压缩的结果并在 Athena 中对这些数据运行查询。[有关 Hadoop 所依赖的 Snappy 取景格式，请参阅.java。BlockCompressorStream](https://github.com/apache/hadoop/blob/f67237cbe7bc48a1b9088e990800b37529f1db2a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/compress/BlockCompressorStream.java)

**要对数据 Firehose 流启用数据格式转换**

1. 登录并打开 Amazon Data Firehose 控制台，网址为。 Amazon Web Services 管理控制台[https://console.aws.amazon.com/firehose/](https://console.amazonaws.cn/firehose/)

1. 选择要更新的 Firehose 流，或按照 [教程：从控制台创建 Firehose 流](basic-create.md) 中的步骤创建新的 Firehose 流。

1. 在**转换记录格式**下，将**记录格式转换**设置为**已启用**。

1. 选择所需的输出格式。有关这两个选项的更多信息，请参阅 [Apache Parquet](https://parquet.apache.org/) 和 [Apache ORC](https://orc.apache.org/)。

1. 选择一个 Amazon Glue 表，为您的源记录指定架构。设置区域、数据库、表和表版本。

## 管理 Firehose API 的记录格式转换
<a name="record-format-conversion-using-api"></a>

[如果你想让 Amazon Data Firehose 将你的输入数据格式从 JSON 转换为 Parquet 或 ORC，请在 extendedS3 或 [Extended DestinationConfiguration](https://docs.amazonaws.cn/firehose/latest/APIReference/API_ExtendedS3DestinationConfiguration.html) S [DataFormatConversionConfiguration](https://docs.amazonaws.cn/firehose/latest/APIReference/API_DataFormatConversionConfiguration.html)3 中指定可选元素。DestinationUpdate](https://docs.amazonaws.cn/firehose/latest/APIReference/API_ExtendedS3DestinationUpdate.html)如果您指定 [DataFormatConversionConfiguration](https://docs.amazonaws.cn/firehose/latest/APIReference/API_DataFormatConversionConfiguration.html)，则适用以下限制。
+ 在中 [BufferingHints](https://docs.amazonaws.cn/firehose/latest/APIReference/API_BufferingHints.html)，如果启用记录格式转换，则不能`SizeInMBs`将值设置为小于 64。此外，如果未启用格式转换，则默认值为 5。在启用格式转换后，该值将变为 128。
+ [你必须`CompressionFormat`在 [extendedS3 DestinationConfiguration 或 extendes3](https://docs.amazonaws.cn/firehose/latest/APIReference/API_ExtendedS3DestinationConfiguration.html) 中将设置为。DestinationUpdate](https://docs.amazonaws.cn/firehose/latest/APIReference/API_ExtendedS3DestinationUpdate.html) `UNCOMPRESSED``CompressionFormat` 的默认值为 `UNCOMPRESSED`。因此，您也可以在 ext [en DestinationConfiguration](https://docs.amazonaws.cn/firehose/latest/APIReference/API_ExtendedS3DestinationConfiguration.html) dedS3 中将其保留为未指定。默认情况下，数据将使用 Snappy 压缩来作为串行化过程的一部分得到压缩。在这种情况下，Amazon Data Firehose 使用的 Snappy 的构造格式与 Hadoop 兼容。这意味着，您可以使用 Snappy 压缩的结果并在 Athena 中对这些数据运行查询。[有关 Hadoop 所依赖的 Snappy 取景格式，请参阅.java。BlockCompressorStream](https://github.com/apache/hadoop/blob/f67237cbe7bc48a1b9088e990800b37529f1db2a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/compress/BlockCompressorStream.java)当配置串行化器时，您可以选择其他类型的压缩。