在 Athena 中加入两个表后如何保留分区?

How to preserve partition after joining two tables in Athena?

我有两个 Athena tables 1 和 2。Table 1 已分区,table 2 未分区。当我根据在共同字段上连接 1 和 2 的结果创建 table 3 时,不会传播 table 1 中的分区。

我知道可以做到 CTAS queries with partitions,但这需要分区是现有列。

有没有办法在创建table 3时将分区保持在table 1,像这样:

CREATE TABLE table_3
WITH (
  format='PARQUET',
  partitioned_by='existing_partition_in_table_1'
) AS
SELECT table_1.field
FROM table_1
JOIN table_2
ON table_1.field = table_2.field

五分钟后弄明白了。我只需要 select 来自 table 1 的分区,然后 CTA 语句就可以访问分区

CREATE TABLE table_3
WITH (
  format='PARQUET',
  partitioned_by='partition_name'
) AS
SELECT table_1.field, table_1.partition_name
FROM table_1
JOIN table_2
ON table_1.field = table_2.field

*捂脸