gpt4 book ai didi

amazon-s3 - Redshift 光谱 : Automatically partition tables by date/folder

转载 作者:行者123 更新时间:2023-12-02 22:51:13 26 4
gpt4 key购买 nike

我们目前生成每日 CSV 导出,并将其上传到 S3 存储桶,结构如下:

<report-name>
|--reportDate-<date-stamp>
|-- part0.csv.gz
|-- part1.csv.gz

我们希望能够运行按每日导出分区的报告。

根据this页面中,您可以通过一个键对 Redshift Spectrum 中的数据进行分区,该键基于 Spectrum 表来源其数据的源 S3 文件夹。但是,从示例来看,您似乎需要为每个分区添加一个 ALTER 语句:

alter table spectrum.sales_part
add partition(saledate='2008-01-01')
location 's3://bucket/tickit/spectrum/sales_partition/saledate=2008-01/';

alter table spectrum.sales_part
add partition(saledate='2008-02-01')
location 's3://awssampledbuswest2/tickit/spectrum/sales_partition/saledate=2008-02/';

有什么方法可以设置表,以便数据按其来源的文件夹自动分区,或者我们是否需要每天进行ALTER表以添加当天的分区?

最佳答案

解决方案 1:

每个表最多可以创建 20000 个分区。您可以创建一个一次性脚本来为所有 future 的 s3 分区文件夹添加分区(最多 20k)。

例如。

如果文件夹 s3://bucket/ticket/spectrum/sales_partition/saledate=2017-12/不存在,您甚至可以为其添加分区。

alter table spectrum.sales_part
add partition(saledate='2017-12-01')
location 's3://bucket/tickit/spectrum/sales_partition/saledate=2017-12/';

解决方案 2:

https://aws.amazon.com/blogs/big-data/data-lake-ingestion-automatically-partition-hive-external-tables-with-aws/

关于amazon-s3 - Redshift 光谱 : Automatically partition tables by date/folder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47184577/

26 4 0