使用分区将雅典娜结果保存到另一个 table

saving athena results to another table with partitions

来自 AWS 雅典娜

我正在尝试连接多个 table,然后使用分区密钥保存它。

在运行

之后
select *
  from t1
union all
select *
  from t2
select *
  from t3

在控制台上创建 table 创建这样的查询,

create table db.table_name
with(
format='parquet',
external_location=...
) AS
select *
  from t1
union all
select *
  from t2
select *
  from t3;

但我想按列添加分区。我试过了

在顶部和底部添加分区。还保存了查询结果,然后使用 CREATE EXTERNAL TABLE 命令从中创建了新的 table(这有效,但是 return 空行 -> 即使在 运行 MSCK REPAIR 之后)

来自 https://aws.amazon.com/premiumsupport/knowledge-center/athena-create-use-partitioned-tables/ 看来我需要按分区将数据保存到 S3,所以在 bucket1 中它将有 bucket1/2021,如果 'year' 列是分区,则 bucket1/2022柱子。正确的?如果是,创建分区桶是否有效?

我已经使用此方法成功创建了新的分区表:

CREATE TABLE my_table
WITH (
 format = 'PARQUET',
 parquet_compression = 'SNAPPY',
 external_location = 's3://bucket/folder/',
 partitioned_by = ARRAY['year']
)
AS
SELECT
  ...