BigQuery Federated Query
クエリ
SELECT * FROM EXTERNAL_QUERY(connection_id, external_database_query[, options]);
con_id も query どちらも文字列で渡す(ので SQL 補完できない)
オプションは現状これだけ {"default_type_for_decimal_columns":"numeric"}
順序は考慮されない
BigQuery 側で ORDER BY する
MySQL の UNSIGNED BIGINT は NUMERIC にマッピングされる
NUMERIC は 10 進 38 桁の精度と 10 進 9 桁の尺度
BIGINT は 符号付きの範囲は -9223372036854775808 から 9223372036854775807 です。符号なしの範囲は 0 から 18446744073709551615 です
'18446744073709551615'.length #=> 20
接続する
カレントプロジェクトに対して接続を作る
接続ID(Connection ID) は以下の形式で使われる
projects/{projectId}/locations/{region}/connections/{connection id}
なのでプロジェクト名を入れたりする必要はない
権限
データセットではないのでデータセットレベルの権限は無理そう
roles/bigquery.connectionUser ならよい?
マテビューで使えない
BigQuery で Cloud SQL のデータを参照しつつ自動で差分転送できたらよいかと思ったけどできない
https://gyazo.com/7517dc6cea811c83d42257759e873e22