![](/img/trans.png)
[英]AWS Glue - Combining all S3 JSON files into S3 Parquet files with a size limit
[英]AWS Redshift to S3 Parquet Files Using AWS Glue
我們有一個在 Redshift 中處理數據的用例。 但我想在 S3 中創建這些表的備份,以便我可以使用 Spectrum 查詢這些表。
為了將表從 Redshift 移動到 S3,我使用了 Glue ETL。 我為 AWS Redshift 創建了一個爬蟲。 Glue 作業將數據轉換為鑲木地板並將其存儲在 S3 中,按日期分區。 然后,另一個爬蟲爬取 S3 文件以再次對數據進行分類。
我怎樣才能消除第二個爬蟲並在工作本身中做到這一點?
無需使用 AWS Glue 或 Athena 將 Redshift 數據以 Parquet 格式卸載到 S3。 Redshift 現在支持以 Parquet 格式卸載數據的功能:
UNLOAD ('select-statement')
TO 's3://object-path/name-prefix'
FORMAT PARQUET
可以在UNLOAD - Amazon Redshift找到文檔
是的,您可以消除第二個爬蟲但不在工作中,或者,如果您使用創建外部表 DDL 語句知道 s3 中存在的文件的模式,則可以直接在 Athena 中創建一個表。 然后在表上執行 MSCK 修復以填充所有分區中存在的數據,一旦完成,您可以使用 glue update partition API 調用將新分區更新到 glue catalog。
不是創建另一個爬蟲來更新膠水目錄,而是在 AWS Athena 上創建一個外部表。 有關創建外部表命令的更多詳細信息,請參閱 AWS 的以下文檔:
由於您的數據是分區的,因此您需要在每次運行后更新 glue catalog 中的分區信息。 為此,您可以使用 MSCK 修復命令,如下所示:
MSCK REPAIR TABLE table_name
要使用代碼自動執行此操作,您可以使用以下鏈接中的任何 AWS SDK,具體取決於您選擇的語言: AWS SDKs 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.