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


やりたいこと

AWSのGlueやAthenaの使っているAWSDataCatalogのデータもAzure Data Catalogに登録したい。

作業環境

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

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

手順

AthenaのODBCドライバインストール

以下のAWSの公式サイトからAthenaのODBCドライバをダウンロードします。
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/connect-with-odbc.html

インストーラーがダウンロードされますので、実行します。

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

Registration Tool利用したデータカタログ同期

ODBCデータベースをデータソースとして選択

ODBC Driverのパラメータ入力

パラメータ入力画面が表示されるので以下のように入力して「接続」します。

この表の情報が、この手順で一番大事です。

項目 入力値
ドライバー Simba Athena ODBC Driver
接続文字列(※) AwsRegion=ap-northeast-1;S3OutputLocation=s3://your-bucket
データベース AwsDataCatalog
ユーザ [AWS Access Key]
パスワード [AWS Secret Access Key]

※ 接続文字列は最低限 AwsRegionS3OutputLocation が必要です。他の項目はODBC Driverのダウンロードページにあるドキュメントの Using a Connection String の項目に記載があります。

対象のテーブルを選択

接続が成功すると AwsDataCatalog というカタログ名がツリーのトップとして表示されます。

下にDBがぶら下がっているので、 machine_a というテスト用のDBの sensor_b_tab というテーブルの情報をAzure DataCatalogに転送してみようと思います。

設定項目に 「プレビューを含める」 と、 「データプロファイルを含める」 があります。大きなテーブルではこの項目の有効化は注意して行ってください。例えばNull値の数を数えるクエリが列数分流れたりと場合によっては課金対象が大きくなるかもしれません。今回の例では小さなテーブルなのでチェック付けてます

対象のテーブルを選んだら「登録」ボタンをクリックします。

テーブルのカタログ情報の登録処理

カタログ情報の取得と登録の処理が流れます。

上に太字で書いた通り、取得内容に、 「プレビューを含める」「データプロファイルを含める」を選択している際にはここで時間がかかる場合があります。この際にAthena側を見ると先程の注意書きに書いた通り、Null値の数を列毎に数えるクエリやデータを取得するクエリが流れているが確認できます。

カタログ情報の確認

AWSでの見え方

AWSのGlueでは以下のように見えるテーブルです。小さいものを選びました。

Azure DataCatalogでの見え方

最上位は AwsDataCatalog となっていて、Glueでいう DatabaseSchema という名前で表現されています。階層数は同じです。

今回はプレビューも含めるとしたので、プレビューデータも見えてます。

裏でAthenaで複数クエリで取得されていたプロファイル情報です。

(Tips)トラブルシュート

Registration Toolのログファイルの場所

実は、最初繋がらなかった時にエラー特定するためにログの場所を探すのに一番時間かかりました。

%appdata%\AzureDataCatalogErrorEventLogProd.log

ODBC Driverのログレベル設定

Driverログレベルを変更することも可能です。

自分で環境でINIファイルで設定する方法と、以下のようにODBCデータソースをセットアップして、接続文字列で指定する方法があります。WARNING以上を見ると権限の問題などエラーがある場合に原因を追及することが可能です。

DSN=MyAthena;AwsRegion=ap-northeast-1;S3OutputLocation=s3://your-bucket

インストール後必要なLibraryが無い場合がある

以下のファイルなどが使われているのですが、正常にDriverがインストールされているように見えてライブラリが無い場合がありました。

C:\Program Files\Simba Athena ODBC Driver\lib\AthenaODBC_sb64.dll

再度インストーラーをダウンロードしてもライブラリが無い場合は以下のようなダウンロードリンクを取って別のバージョンをインストールすると上手くいく場合があります。

https://s3.amazonaws.com/athena-downloads/drivers/ODBC/SimbaAthenaODBC_1.1.5/Windows/Simba+Athena+1.1+64-bit.msi

関連URL