Google Cloud Platformのサービスの1つであるCloud Composerを練習する。
以前作成したETLパイプラインをCloud Composerで再現する。
Cloud ComposerはKubernentesエンジンで動いているため、莫大な費用がかかる。今回作成したパイプラインはテストのために数日間動かし、その後は停止する。ログ収集は引き続き以前作成したパイプラインを運用する。
1.Cloud Composerの基礎を手を動かしながら理解することができた。
2.Airflowに設定した環境変数とCloud Compoeserに設定した環境変数でそれぞれ取得方法が違う。具体的にどのように設定されているか調査が必要。そのためにもCloud Composerのアーキテクチャーを理解する必要がある。
3.DAGのstart_date
とexecution_date
、schedule_interval
の関係性を手を動かしながら理解することができた。
4.SQL上で変数を扱う方法を学んだ。use_legacy_sql
のパラメーターをFalse
に指定することでStandardSQLを使用することができる。( SQLの最初の行に#standardSQLを記入しているがstandardsqlが使用されていない? 要調査 )
1.SSHOperatorとgsutilコマンドでログファイルを直接バケットに転送しようとした。しかし、rootユーザー以外にGCP関連のコマンドを使用させたくなかったのでこれを実現することが難しいと判断した。
下記のコマンドを試してみたがsudoよりも先にgsutilの部分が展開され、「コマンドが見つかりません」とエラーを吐いてしまう。他に良い方法が見つかり次第、移行も検討する。
echo "パスワード" | sudo -S gsutil cp ファイル名 gs://バケット名
確認したらgsutilがエイリアスとして設定されていた。shellはエイリアスを子プロセスにまで適用しない。gsutil以降は子プロセスになるため、gsutilのシンボリックリンクを貼り替えるか、コマンドのファイルを直接指定することで回避することができる。
echo "パスワード" | sudo -S /root/google-cloud-sdk/bin/gsutil cp ファイル名 gs://バケット名
macOS Big Sur 11.4 Apple M1
Google Cloud SDK 385.0.0 bq 2.0.74 core 2022.05.06 gsutil 5.10
Terraform v1.0.11