簡體   English   中英

使用 AWS Glue 將 AWS Redshift 轉換為 S3 Parquet 文件

[英]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 的以下文檔:

AWS Athena - 創建表

由於您的數據是分區的,因此您需要在每次運行后更新 glue catalog 中的分區信息。 為此,您可以使用 MSCK 修復命令,如下所示:

MSCK REPAIR TABLE table_name

要使用代碼自動執行此操作,您可以使用以下鏈接中的任何 AWS SDK,具體取決於您選擇的語言: AWS SDKs

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM