在 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
*捂脸
我有两个 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
*捂脸