2017-11-08 11 views
1

でテーブルを分割:赤方偏移スペクトル:自動的に我々は現在、我々は次のような構造に、S3バケットにアップロード毎日CSVエクスポートを生成し、日付/フォルダ

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

は、我々はで仕切られたレポートを実行できるようにしたいです毎日の輸出。

thisページによれば、Redshift Spectrumのデータは、Spectrumテーブルがデータを取得するソースS3フォルダに基づくキーでパーティション化できます。

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文を必要とするようになります。その日のパーティションを追加するテーブルALTERに毎日の仕事が必要ですか?

答えて

3

解決方法1:最大20000のパーティションで

はテーブルごとに作成することができます。将来のすべてのs3パーティションフォルダにパーティションを追加するためのワンタイムスクリプトを書くことができます(最大20k)。

たとえば、

フォルダs3:// bucket/tickit/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/

http://docs.aws.amazon.com/lambda/latest/dg/with-s3.html

+0

、私は、私はそのことを考えていなかった理由はわかりませんお願いします – GoatInTheMachine