2017-04-17 39 views
1

我使用AWS Data Pipelines運行夜間SQL查詢,該查詢爲彙總統計信息填充表。用戶界面有點時髦,但最終我找到了工作。通過AWS數據管道運行python腳本

現在我想用python腳本做類似的事情。我有一個文件,我每天早上在我的筆記本電腦上運行(forecast_rev.py),但當然這意味着必須打開我的筆記本電腦,並每天踢這個。當然,我可以安排一條管道做同樣的事情,從而放假休假而不在乎。

對於我而言,我無法找到關於此的教程,AWS doc或StackOverflow!我甚至不知道如何開始。有沒有人有他們願意分享步驟的簡單渠道?

+1

使用[ShellCommandActivity](http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp- object-shellcommandactivity.html) – franklinsijo

回答

0
  1. 您需要存儲在S3存儲
  2. 您的Python腳本創建shell腳本,安裝Python和所有的依賴,複製你的Python腳本從S3到本地存儲並運行它。 Shell script example
  3. 將此shell腳本存儲在S3上
  4. 使用ShellCommandActivity來啓動您的shell腳本。

你可以使用這個模板爲例: http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-template-redshiftrdsfull.html 它使用存儲在S3到MySQL架構轉換爲紅移架構python腳本。

+0

提供的shell腳本示例丟失。請將其嵌入回答中 – user3041539

0

我面臨類似的情況,這裏我怎麼過來呢。
我將描述我是如何做到這一點與Ec2Resource。如果您在EMRCluster中尋找解決方案,請參閱@franklinsijo answer

步驟
。將你的python腳本存儲在s3中。
。創建一個shell腳本(hello.sh)(給出波紋管)並將其存儲到s3
。創建一個Ec2Resource節點和ShellCommandActivity節點並提供這些信息。

  • 在 「腳本URI」 提供shell腳本S3 URL和ShellCommandActivity設置 「舞臺」 爲真。它應該運行在您的DefaultResource

這裏是shell腳本(hello.sh)從S3和商店下載本地你的Python程序,安裝Python和依賴的第三方庫,並最終執行Python文件。

hello.sh

echo 'Download python file to local temp' 
aws s3 cp s3://path/to/python_file/hello_world.py /tmp/hello.py 
# Install python(on CentOs) 
sudo yum -y install python-pip 
pip install <dependencies> 
python /tmp/hello.py 

我很難在與bang line嘗試,所以不要包括他們在這裏。
如果aws cp命令不起作用(awscli更舊),這裏是這種情況的快速解決方案。

  1. 按照上面的步驟1-3,創建一個s3DataNode
    I.在S3DataNode的「文件路徑」中提供您的python s3 url。
    二,將DataNode作爲「輸入」提供給ShellCommandActivity
    三。寫在以下ShellCommandActivity

命令的 「命令」 字段命令

echo 'Install Python2' 
sudo yum -y install python-pip 
pip install <dependencies> 
python ${INPUT1_STAGING_DIR}/hello_world.py 
+0

錯誤:請在組件上定義'command'或'scriptUri':'ShellCommandActivityObj' – ScottieB

+0

請'在'腳本Uri''中提供shell腳本S3 url。請提供第3步之後編寫的詳細信息。 –

+0

@ScottieB它解決了您的問題嗎? –