Azure Data CatalogにBigQueryのデータをRegistration Toolを使って登録する


やりたいこと

BigQueryに登録したテーブルもAzure Data Catalogに登録したい。

作業環境

  • Windows Server または Windows 10
  • Azure Data Catalog Registration Toolがインストール済み
  • Google Cloud SDKがインストール済み

手順

BigQuery向けODBCドライバーインストール

以下からインストーラーがダウンロードできます。

画像のようなインストールが起動します。選択肢はインストール場所程度のなので、手順は省略します。

Credentialファイルの取得

権限のあるユーザで以下のコマンドを実行します。

gcloud auth application-default login

ログの中に以下のような表示があると思いますが、このJSONファイルの場所と中身の情報をメモします。

C:\Users\Administrator\AppData\Roaming\gcloud\application_default_credentials.json
{
  "client_id": "xxxxxx.apps.googleusercontent.com",
  "client_secret": "xxxxxx",
  "quota_project_id": "your-project-name",
  "refresh_token": "xxxxxxxx",
  "type": "authorized_user"
}

ODBCの接続文字列を準備

取得した情報を元に接続文字列を作成します。

項目 備考
Catalog your-project-name GCPプロジェクト名
OAuthMechanism 0 今回はServiceAccountでのアクセスを利用
Email xxx.apps.googleusercontent.com Credential JSONファイルの client_id の項目
KeyFilePath C:\Users\xxxxx\AppData\Roaming\gcloud\application_default_credentials.json 上の手順で取得したCredential JSONファイルのパス

上記の表から以下のような文字列を作成します。

OAuthMechanism=0;Catalog=your-project-name;Email=xxx.apps.googleusercontent.com;KeyFilePath=C:\Users\xxxxx\AppData\Roaming\gcloud\application_default_credentials.json

Registration Toolの起動

Registration ToolにODBCがあるので、これを使ってBigQueryからODBC経由でカタログデータを取得します。

ODBCデータベースを選択するとパラメータの入力画面に遷移します。そこで今までの情報合わせ以下のようにパラメータ入力します。

項目 入力値
ドライバー Simba ODBC Driver for Google BigQuery
接続文字列 上の手順で作成したODBC接続文字列
データベース GCPプロジェクト名
ユーザ Credential JSONファイルの client_id の項
パスワード Credential JSONファイルの client_secret の項目

実際に入力した画面は以下のようになります。「接続」ボタンをクリックします。

いつものテーブル選択の画面になります。
BigQueryの場合はプロジェクト>データセット>テーブルという階層構造になります。

データプロファイルの取得は現時点(2020/11/28)では動かないようでした。原因と思われる部分は記事の最後に書いてます。

※ちなみにカタログ収集しているテーブルはSAP ERPのテーブルです。前に社内の検証環境から持ってきたものです。この辺りはこちらのブログに書いてます。

無事に同期完了しました。

Azure DataCatalogで確認

データベース名がGCPのプロジェクト名になってしまうのが少し違和感ありますが、基本的なカタログ情報の取得はできました。
ちなみに、取得しているのは(こちらの記事)[https://www.beex-inc.com/blog/saperp-load-bigquery/]で取得したSAP ERPのものです。

なおBigQueryのデータセットはスキーマ名としてマッピングされます。

同様の情報ですがBigQuery上では以下のように見えます。

Tips

BigQuery用のODBCドキュメントの場所

以下のインストールフォルダにあるものがBigQueryのODBCドキュメントです。ドライバのダウンロードページにあるものは汎用的なものでBigQueryの接続文字列パラメータ等の情報が記載ありませんでした。

C:\Program Files\Simba ODBC Driver for Google BigQuery

「プロファイルを含める」オプションのエラー

プロファイルを含める オプションを有効にすると、列毎の統計情報などが取得できるのですが、発行されているSQLのSyntaxがBigQueryと合って無くエラーになってしまっています。
サポート対象のDBにBigQueryが入っているわけでも無く、たまたまODBCで一部データが取れる状態なので、このあたりはしょうが無い気もします。

関連記事