2017-11-30 3 views
0

私はredshiftで300以上のテーブルを持っています。udfを通じて赤方偏移真空プロセスを自動化する方法はありますか?

データは毎日更新されています。ちょうど私がredshiftでudfを作成して、真空プロセスを自動化することができますか?

私はリンクを自動化Pythonを使用しているが、その偉大なpythonコーダーではないことがわかった私はSQLスクリプトのソリューションを探しています。

答えて

0

このためにUDFを使用することはできません。UDFはデータを更新するコマンドを実行できません。

+0

その他の提案を、私はあなたの助けに感謝 –

+0

すべてのテーブルで、長いSQLスクリプトを作成しますか? –

1

残念ながら、udfはこのようなものには使用できません。udfはクエリで使用するための単純な入力/出力関数です。

AWS LabsのオープンソースツールVaccumAnalyzeUtilityを使用することをお勧めします。このツールを使用することの大事な点は、テーブルを必要とするテーブルでVACUUMを実行するだけでは大変賢明であり、必要なテーブルではも実行することです。

cronジョブとして設定するのはかなり簡単です。ここでそれを行うことができる方法の例は次のとおりです。

はgitのにアマゾン・赤方偏移-utilsのレポを引い:

git clone https://github.com/awslabs/amazon-redshift-utils 
cd amazon-redshift-utils 

はクーロンで実行できるスクリプトを作成します。お使いのテキストエディタで次のようにrun_vacuum_analyze.shと呼ばれるファイルを作成し、ご使用の環境の値を入力:

export REDSHIFT_USER=<your db user name> 
export REDSHIFT_PASSWORD=<your db password> 
export REDSHIFT_DB=<your db> 
export REDSHIFT_HOST=<your redshift host> 
export REDSHIFT_PORT=<your redshift port> 
export WORKSPACE=$PWD/src/AnalyzeVacuumUtility 

# 
# VIRTUALENV 
# 

rm -rf $WORKSPACE/ve1 
virtualenv -p python2.6 "$WORKSPACE/ve1" 
# enter virutalenv 
source $WORKSPACE/ve1/bin/activate 

# 
# DEPENDENCIES 
# 
pip install PyGreSQL 

cd $WORKSPACE/run 

# 
# RUN IT 
# 
python analyze-vacuum-schema.py --db $REDSHIFT_DB --db-user $REDSHIFT_USER --db-pwd $REDSHIFT_PASSWORD --db-port $REDSHIFT_PORT --db-host $REDSHIFT_HOST 

その後(この例では、私は毎日それを実行し、このスクリプトを実行するcronジョブを作成します2:30 AM)

chmod +x run_vacuum_analyze.sh 
crontab -e 

は、次のエントリを追加します。

30 2 * * * <path-to-the-cloned-repo>/run_vacuum_analyze.sh 
+0

おかげさまで、ありがとうございました。ステップバイステップのアプローチがあれば、ドキュメントを共有できますか?あなたの助けとサポートにたくさん感謝します。 –

+0

シェルスクリプトを作成し、cronジョブとして実行できますか? vacuumum Table1; vaccum Table2; vaccum表3; vaccum表4; 。 。 。 。 。 バキュームテーブルN; –

関連する問題