繁体   English   中英

AWS Athena 分区数据

[英]AWS Athena partitioning data

我在 s3 中有一个 tsv 文件,我正在评估有和没有分区的 Athena 查询扫描大小。 查询运行良好,没有任何分区并扫描完整数据。 当我尝试分区时,我无法加载分区。 这些文档对于理解如何为 tsv 数据加载分区不是很有帮助。

S3 数据示例:

column1 column2 US  column4
column1 column2 US  column4
column1 column2 DE  column4
column1 column2 DE  column4
column1 column2 US  column4
column1 column2 US  column4
column1 column2 IT  column4
column1 column2 IT  column4

我想按第三列进行分区,因为这是我会经常查询的那一列。 运行 MSCK REPAIR TABLE 显然没有加载分区。 如何实现这一目标?

在Athena中,需要将分区分成S3文件夹。 不支持按任意数据列进行分区。

因此,要使用分区,您可以将必要的列设置为名称/值对作为文件夹名称,也可以将文件夹显式映射到分区。

此处介绍了两种情况:

https://docs.aws.amazon.com/athena/latest/ug/partitions.html

另一种选择是将您的 s3 文件上传到平面文件夹结构(无分区)。 创建指向该位置的未分区“暂存”表定义。 然后执行 CTAS(创建表作为选择)命令以选择从未分区的临时表到新的分区表中的所有内容。 这会将所有正确的数据放在正确的 s3 分区文件夹中,甚至可以用于切换您的底层数据格式。

https://docs.aws.amazon.com/athena/latest/ug/ctas.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM