使用列式存储格式 - Amazon Athena

使用列式存储格式

Apache ParquetORC 是针对快速检索数据进行了优化的列式存储格式,用于 AWS 分析应用程序中。

列式存储格式具有以下特征,使其适合用于 Athena:

  • 按列压缩,针对列数据类型选择压缩算法,可以节省 Amazon S3 中的存储空间,并减少查询处理期间的磁盘空间和输入/输出。

  • Parquet and ORC 中的谓词下推使得 Athena 查询可以只提取所需的数据块,从而提高查询性能。当 Athena 查询从您的数据获取特定列值时,它使用来自数据块谓词的统计信息(例如最大/最小值)来确定读取还是跳过改数据块。

  • Parquet 和 ORC 中的数据拆分使得 Athena 可以将数据读取拆分为多个读进程,在查询处理期间增加并行度。

要将现有原始数据从其他存储格式转换为 Parquet 或 ORC,您可以在 Athena 中运行 CREATE TABLE AS SELECT (CATS)查询,并将数据存储格式指定为 Parquet 或 ORC,或使用 AWS Glue 爬网程序。

在 Parquet 和 ORC 之间进行选择

将根据具体的使用需求在 ORC(优化的行列式)和 Parquet 之间进行选择。

Apache Parquet 可实现高效的数据压缩和编码方案,非常适合运行复杂的查询和处理大量数据。Parquet 已针对与 Apache Arrow 配合使用进行了优化,如果使用的工具与 Arrow 相关,这可能会很有优势。

可通过 ORC 提高效存储 Hive 数据。ORC 文件通常比 Parquet 文件小,ORC 索引可以加快查询速度。此外,ORC 还支持结构、映射和列表等复杂类型。

在 Parquet 和 ORC 之间进行选择时,请注意以下事项:

查询性能 - 由于 Parquet 支持更广泛的查询类型,如果您打算执行复杂查询,建议选择 Parquet。

复杂数据类型 - 如果您使用的是复杂数据类型,建议选择 ORC,因为它支持更广泛的复杂数据类型。

文件大小 - 如果需要考虑磁盘空间,ORC 生成的文件通常较小,可以降低存储成本。

压缩 - Parquet 和 ORC 都可实现优质压缩效果,但最适合您的格式可能取决于您的具体使用案例。

发展 - Parquet 和 ORC 都支持架构发展,这意味着您可以随着时间的推移添加、移除或修改列。

Parquet 和 ORC 都适用于大数据应用程序,但是还是要根据场景需求进行选择。您可能需要对数据和查询进行基准测试,才能了解哪种格式更适合您的使用案例。

转换为列式格式

将 JSON 或 CSV 等源数据轻松转换为列式格式的选项包括使用 CREATE TABLE AS 查询或在 AWS Glue 中运行任务。