AWS Athena数据集的注意事项? TSV

时间:2017-07-23 16:16:21

标签: sql performance csv amazon-web-services

我正计划用以下参数分析TSV文件

  • 约200-225列(字符串,布尔值,时间戳,整数,小数)
  • 大约200000行数据

文件大小将达到350-400 MB

我在这里的疑问

  • 我是否需要拆分成多个文件才能获得更好的性能?
  • 我应该分区吗?为减少扫描并节省成本?
  • 如何加快选择查询的速度?索引如何在TSV文件中工作?
  • Snappy压缩会减小文件的大小吗? 30%-40%(文件将为280-300 MB)
  • 将它转换为Apache ORC会有助于缩小尺寸吗?

由于我是AWS Athena的新手,欢迎任何建议或反馈?

2 个答案:

答案 0 :(得分:1)

我认为Athena在处理400 MB文件时不会遇到任何问题。您可以将它们分成两个大小相等的文件(是的,也使用压缩)然后查询。通常 - 如果拆分文件太小(小于128 MB)并且文件太多,您可能会发现拆分文件实际上需要更多时间。对于您的文件总大小,我认为即使它只是一个文件,您也不会发现任何差异。

但是将TSV转换为柱状格式将为您提供最佳性能。尝试将TSV / CSV转换为Parquet并进行查询。您的所有查询都不太可能select * from所以请继续进行。查看converting to columnar formats

的用户指南

答案 1 :(得分:1)

对于Athena而言,这是一个非常小的数据集,除非有许多人不断使用它,否则优化可能不值得付出努力。如果您要做的只是从1.6秒到0.8秒的查询时间,那么可能会花费更多的时间。要回答您的问题:

是否需要拆分成多个文件才能获得更好的性能?否。在这种规模下,这可能会损害性能。

我应该对它进行分区吗?以减少扫描次数并节省成本?不太可能设想一个值得的方案。

如何加快选择查询的速度?索引如何在TSV文件中工作?如果您在排序等方面停留在TSV文件中,则无能为力。

Snappy压缩会减少文件的大小吗? 30%-40%(文件为280-300 MB)。它将。

将其转换为Apache ORC是否有助于减小尺寸?是。这将是最有价值的行动。转换为ORC或Parquet所需的最小努力可能会给您带来比以上任何其他方面更大的收益。