要使Athena并行卸载到同一位置,需要在查询中指定输出表的位置,并且在拆分的第一层level上使用PARTITION BY关键字。例如:
CREATE EXTERNAL TABLE my_table(
column1 INT,
column2 STRING
)
PARTITIONED BY (dt STRING)
LOCATION 's3://my-bucket/my_folder';
INSERT OVERWRITE TABLE my_table
PARTITION(dt='2022-01-01')
SELECT column1, column2
FROM source_table
WHERE dt = '2022-01-01'
DISTRIBUTE BY RAND();
上述代码将source_table中2022年1月1日的数据随机分配到多个Athena实例进行处理,并将结果存储在s3://my-bucket/my_folder/dt=2022-01-01/下的my_table表中。
需要注意的是,Athena会自动为每个分区创建一个文件夹,因此不需要在代码中单独创建文件夹。