将 2 个分区文件夹合并为一个 table
merge 2 partitioned folders in a single table
我正在使用 parquet 文件格式从 2 个红移表中导出数据。
unload ('select * from some_table')
to 's3://132cols/some_table/'
credentials 'aws_access_key_id=xxx;aws_secret_access_key=xxxx'
PARQUET
PARTITION BY (senderid) include;
unload ('select * from another_table')
to 's3://132cols/another_table/'
credentials 'aws_access_key_id=xxx;aws_secret_access_key=xxxx'
PARQUET
PARTITION BY (senderid) include;
数据按 senderid 分区,因此我可以看到 2 个文件夹,例如...
s3://132cols/some_table/senderid=abcd/
s3://132cols/another_table/senderid=abcd/
两个表具有相同的结构和相同的 ID。
有什么方法可以合并这两个文件夹以查询与 Athena(或 redshift)中的两个表中的发件人“abcd”相关的数据?
使用您的 table 名称的分区。
可以看另一个例子.
unload ($$ select *, 'some_table' as tbl from some_table $$)
to 's3://132cols/'
credentials 'aws_access_key_id=xxx;aws_secret_access_key=xxxx'
PARQUET
PARTITION BY (senderid,tbl) include
ALLOWOVERWRITE;
unload ($$ select *, 'another_table' as tbl from another_table $$)
to 's3://132cols/'
credentials 'aws_access_key_id=xxx;aws_secret_access_key=xxxx'
PARQUET
PARTITION BY (senderid,tbl) include
ALLOWOVERWRITE;
那么您将获得:
s3://132cols/senderid=abcd/tbl=some_table/
s3://132cols/senderid=abcd/tbl=another_table/
现在您可以在 s3://132cols/
之上创建一个 table,有 2 个分区。
我正在使用 parquet 文件格式从 2 个红移表中导出数据。
unload ('select * from some_table')
to 's3://132cols/some_table/'
credentials 'aws_access_key_id=xxx;aws_secret_access_key=xxxx'
PARQUET
PARTITION BY (senderid) include;
unload ('select * from another_table')
to 's3://132cols/another_table/'
credentials 'aws_access_key_id=xxx;aws_secret_access_key=xxxx'
PARQUET
PARTITION BY (senderid) include;
数据按 senderid 分区,因此我可以看到 2 个文件夹,例如...
s3://132cols/some_table/senderid=abcd/
s3://132cols/another_table/senderid=abcd/
两个表具有相同的结构和相同的 ID。 有什么方法可以合并这两个文件夹以查询与 Athena(或 redshift)中的两个表中的发件人“abcd”相关的数据?
使用您的 table 名称的分区。
可以看另一个例子
unload ($$ select *, 'some_table' as tbl from some_table $$)
to 's3://132cols/'
credentials 'aws_access_key_id=xxx;aws_secret_access_key=xxxx'
PARQUET
PARTITION BY (senderid,tbl) include
ALLOWOVERWRITE;
unload ($$ select *, 'another_table' as tbl from another_table $$)
to 's3://132cols/'
credentials 'aws_access_key_id=xxx;aws_secret_access_key=xxxx'
PARQUET
PARTITION BY (senderid,tbl) include
ALLOWOVERWRITE;
那么您将获得:
s3://132cols/senderid=abcd/tbl=some_table/
s3://132cols/senderid=abcd/tbl=another_table/
现在您可以在 s3://132cols/
之上创建一个 table,有 2 个分区。