BigQueryのfederated queriesを試していたところ、以下のエラーに遭遇。
Invalid table-valued function EXTERNAL_QUERY Failed to connect to MySQL database.
公式ドキュメントに記載の通り、Cloud SQL への初回接続時に自動作成されるService Account(BigQuery Connection Service Agent)に対し、以下の権限を付与すれば解決する。
- cloudsql.instances.connect
- cloudsql.instances.get
gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:SERVICE_ACCOUNT_ID \
--role=roles/cloudsql.client