1
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Organization

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経由でカタログデータを取得します。

image.png

手順

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

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

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

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

image.png

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

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

image.png

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 の項目に記載があります。

image.png

対象のテーブルを選択

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

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

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

image.png

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

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

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

image.png

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

image.png

カタログ情報の確認

AWSでの見え方

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

image.png

Azure DataCatalogでの見え方

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

image.png

image.png

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

image.png

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

image.png

(Tips)トラブルシュート

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

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

%appdata%\AzureDataCatalogErrorEventLogProd.log

ODBC Driverのログレベル設定

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

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

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

image.png

インストール後必要な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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
1
Help us understand the problem. What are the problem?