簡體   English   中英

AWS:在紅移中自動查詢

[英]AWS: Automating queries in redshift

我想自動化每天運行的 redshift 插入查詢。

我們實際上使用的是 Aws 環境。 有人告訴我使用 lambda 不是正確的方法。 哪個是在 Redshift 中自動執行查詢的最佳 ETL 過程。

要在 Redshift 上自動化 SQL,您有 3 個選項(至少)

簡單 - cron使用 EC2 實例並在其上設置一個 cron 作業來運行您的 SQL 代碼。

psql -U youruser -p 5439 -h hostname_of_redshift -f your_sql_file

功能豐富 - Airflow(推薦)如果您有一個復雜的計划要運行,那么值得花時間學習和使用 apache 氣流。 這也需要在服務器(ec2)上運行,但提供了很多功能。

https://airflow.apache.org/

AWS 無服務器 - AWS 數據管道(不推薦)

https://aws.amazon.com/datapipeline/

Cloudwatch->Lambda->EC2 方法由 John Rotenstein 描述如下,當您希望以 AWS 為中心時,這是一個很好的方法,它比擁有一個專用的 EC2 實例便宜。

一種選擇:

  • 按計划使用Amazon CloudWatch Events觸發 AWS Lambda 函數
  • Lambda 函數使用用戶數據腳本啟動 EC2 實例。 關閉行為配置為Terminate
  • EC2 實例執行用戶數據腳本
  • 腳本完成后,它應該調用sudo shutdown now -h關閉和終止實例

EC2 實例將僅按每秒計費。

您可以使用 boto3 和 psycopg2 通過創建 python 腳本並將其安排在 cron 中每天執行來運行查詢。

您還可以嘗試將您的查詢轉換為 Spark 作業,並安排這些作業每天在 AWS Glue 中運行。 如果你覺得很難,你也可以查看 Spark SQL 並試一試。 如果您要使用 Spark SQL,請記住內存使用量,因為 Spark SQL 是非常占用內存的。

暫無
暫無

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

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