私はredshiftで300以上のテーブルを持っています。udfを通じて赤方偏移真空プロセスを自動化する方法はありますか?
データは毎日更新されています。ちょうど私がredshiftでudfを作成して、真空プロセスを自動化することができますか?
私はリンクを自動化Pythonを使用しているが、その偉大なpythonコーダーではないことがわかった私はSQLスクリプトのソリューションを探しています。
私はredshiftで300以上のテーブルを持っています。udfを通じて赤方偏移真空プロセスを自動化する方法はありますか?
データは毎日更新されています。ちょうど私がredshiftでudfを作成して、真空プロセスを自動化することができますか?
私はリンクを自動化Pythonを使用しているが、その偉大なpythonコーダーではないことがわかった私はSQLスクリプトのソリューションを探しています。
このためにUDFを使用することはできません。UDFはデータを更新するコマンドを実行できません。
残念ながら、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
おかげさまで、ありがとうございました。ステップバイステップのアプローチがあれば、ドキュメントを共有できますか?あなたの助けとサポートにたくさん感謝します。 –
シェルスクリプトを作成し、cronジョブとして実行できますか? vacuumum Table1; vaccum Table2; vaccum表3; vaccum表4; 。 。 。 。 。 バキュームテーブルN; –
その他の提案を、私はあなたの助けに感謝 –
すべてのテーブルで、長いSQLスクリプトを作成しますか? –