Vertex AI WorkbenchからCloud SQLへのプライベート接続
Vertex AI Workbenchのデータソースとしてプライベート接続なCloud SQLにつなぐ方法まとめ。
Workbenchから直接プライベートなCloud SQLに接続することはできなそうなので、BigQueryを経由して接続した。
設定方法
Cloud SQL側の設定
Cloud SQLのポータルで接続対象のインスタンスを選択し、接続 > ネットワーキング > Google Cloud サービスの承認でプライベート パスを有効にするにチェックを入れておく。
チェックボックス下の注釈にある通り、BigQueryなどのGoogle CloudサービスがプライベートIPでCloud SQLに接続できるようにするために必要な設定らしい。
BigQuery側の設定
公式ドキュメントに従って、BigQueryの外部データソースとしてCloud SQLを登録する。
設定した内容:
- 接続タイプ: 今回はMySQL
- 接続 ID: Cloud SQLの
connection name - データ ロケーション: Cloud SQLと合わせた
- データベース名: Cloud SQLのデータベース名
サービス アカウントへのアクセスを許可の設定はIAMのページから設定できるが、ページ右上のGoogle 提供のロール付与を含めるのチェックを入れないと画面上参照できないので注意。
Workbench側からの呼び出し
pythonでは以下のように呼び出すことができる。
from google.cloud import bigquery
client = bigquery.Client()
query = 'SELECT * FROM EXTERNAL_QUERY("sys1234567-1-12345678.asia-northeast1.test-connection", "SELECT * FROM INFORMATION_SCHEMA.TABLES;");'
data = client.query(query).to_dataframe()
クエリの書き方
こちらを参照。EXTERNAL_QUERYでCloud SQL側からクエリしてきた結果をBigQuery側で使える。