BigQuery で Cloud SQL(MySQL)の sleep() を使って sleep する方法のメモ。
BigQuery から Cloud SQL に接続する方法
BigQuery で「+追加」をクリックし、「外部データソースへの接続」から DB への外部接続を設定。
上記で作成した外部接続の接続情報から、サービスアカウントIDをコピー。
「IAM と管理」メニューで「アクセス件を付与」をクリックし、「新しいプリンシパル」にコピーしたサービスアカウントIDをペースト、ロールに「Cloud SQL クライアント」を指定して「保存」。
BigQuery から Cloud SQL のクエリを実行
Cloud SQL で sleep() を実行することで、BigQuery で sleep することができる。
ただし、Cloud SQL への接続や BigQuery のオーバーヘッドなどで、sleep に指定した秒数よりも実行時間は長くなる。
select * from external_query( "{外部接続の接続ID}", "select sleep({秒数});" ) ;
外部接続の接続IDは、「接続情報」の「接続ID」に表示される projects/.../locations/.../connections/... の形式か、{ロケーション}.{接続ID} の形式。
JavaScript UDF 等で sleep したかったのですが、実現できなかったため、この方法を試してみました。