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

问题描述 投票:1回答:2

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

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

文件大小将达到350-400 MB

我的问题在这里

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

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

sql performance csv amazon-web-services
2个回答
1
投票

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

但是将TSV转换为柱状格式将为您提供最佳性能。尝试将TSV / CSV转换为Parquet并进行查询。你不太可能所有的查询都是select * from所以继续前进和镶木地板。查看converting to columnar formats的用户指南


1
投票

对于雅典娜来说,这是一个非常小的数据集,除非很多人不断使用它,否则优化可能不值得。如果您所做的一切都是从1.6秒 - .8秒查询,那么时间可能会更好。回答你的问题:

我是否需要拆分成多个文件以获得更好的性能?不会。这可能会影响这种规模的表现。

我应该分区吗?减少扫描并节省成本?不太可能,很难想象一个值得它的场景。

如何加快选择查询?索引如何在TSV文件中工作?如果你留在关于排序等的TSV文件中,你可以做的事情并不多。

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

将它转换为Apache ORC会有助于减小尺寸吗?是。这将是最值得采取的行动。转换为ORC或Parquet的最小努力可能会比上述任何其他方面带来更大的收益。

© www.soinside.com 2019 - 2024. All rights reserved.