AWS Athena - 数据类型的最佳实践

时间:2018-03-08 23:39:40

标签: amazon-web-services amazon-athena

我计划在Amazon S3 / Athena中使用数百GB的大型数据集,我向有经验的从业者提出了有关数据存储最佳实践的问题(成本方面和性能方面)。

我的行数据集包含大约40个包含数字,日期和字符串类的项目。我的查询会经常进行一些算术运算和分组。

以字符串形式存储所有数据是一个好主意吗?这种方法的优点和缺点是什么? (在查询时引入转换和转换数据类型)

或者最好是立即实施转化并以数字格式存储数字,以时间戳格式等存储日期。

1 个答案:

答案 0 :(得分:1)

我有两个建议。

  1. 我想你已经这样做了,但是使用像Parquet这样的柱状格式来存储你的数据。这将允许您的查询为您的查询扫描更少的数据(假设有针对性的查询),这将使它们更高性能,并且成本更低,因为Athena会查询每TB扫描数据的费用。

  2. 就列数据类型而言,我会对数字和日期字段使用适当的数字类型。当将数字表示为字符串时,它在数字本身中每个数字消耗1个或更多字节(取决于编码),这在存储数值时效率不高。以数字203为例。作为一个字符串,它需要三个字节用UTF-8编码(1个字节表示“2”,1个字节表示“0”,1个字节表示“3”)。但是数值将适合单个无符号字节。

  3. 通过这两项更改,您应该看到成本和性能都有所提高。