Azure Data Catalogについて書きます。
データカタログって
データカタログはデータマネジメントを行うために重要なサービスとなります。
ここで端的に説明する自信も、理解も無いと思うので、書籍と参考URL書いておきます。
データカタログとは何ぞやという人は、DMBOKを頑張って読むと良いと言いたいのですが、いきなりだと大変な気もします。とても高価な上に、少なくとも私は最初から順に読むと頭に入らないので、必要なところを深掘りしたい時に辞書的に使っています。
この本が安価(Kindle Unlimitedでもある)かつ役立つと思います。
こちらは現場視点で書かれていてエンジニアとしてはイメージわきやすいと思います。
こちらは技術的な話ではなく、戦略、進め方や組織の話などが主題になっています。網羅的なDMBOKに対して、データの利活用に重点を置いていると記載されています。
データマネジメント概説書(JDMC版)Ver2.0: ビジネスとITをつなぐ-データマネジメントとは
- 作者:一般社団法人 日本データマネジメント・コンソーシアム『データマネジメントの基礎と価値』研究会
- 発売日: 2018/05/16
- メディア: Kindle版
分野のソリューションベンダーのリーダーの一つであるInfomaticaのサイトがオススメです。
もちろんAzureの公式ドキュメントもあります。
Azure Data Catalog 対応しているデータソース
この記事ではAzure Data Catalogの機能を見ていきますが、まずはAzure Data Catalogにメタデータを登録するところから見ていきます。
手持ちデータのメタ情報を簡単に、効率的にカタログに登録ができるかは、データカタログを選ぶ際の重要なポイントの一つになります。
Azure Data Catalogではメタデータをカタログに登録するツールを提供しています。対応するソフトウェアもAzureやSQL Server等のMS製品は当然として、他社製品も広く対応しています。
- SQL Serverの各機能
- Azureのデータベース、ストレージ系サービス
- MySQL
- SAP HANA / BW / Sybase
- Oracle Database
- Teradata
- DB2
- HDFS
- Hive
- MySQL
- PostgreSQL
- MongoDB
- Casandra
- Salesforce
- FTP
- ODBC
等
最新の対応状況はこちらのサイトに記載があります。
データカタログ準備
MySQLサンプルデータの準備
AzureのサービスなのでSQL Serverなどが当然強いのですが、あえてツールが対応しているMS以外の製品であるMySQLを使ってみようと思います。
利用するデータはこちらの sakila
データベースです。
ここは本題で無いので、さらっと手順だけ書きますが、Docker使ってサンプルデータを展開しています。
# ダウンロード & 解凍 wget http://downloads.mysql.com/docs/sakila-db.zip && unzip sakila-db.zip # データ登録SQLを準備 mkdir ./data mv sakila-db/sakila-schema.sql data/01_sakila-schema.sql mv sakila-db/sakila-data.sql data/02_sakila-data.sql # MySQLのコンテナ起動(データ登録SQLを内部で実行) docker run --rm -d --name sampledb \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=root \ -e MYSQL_DATABASE=sakila \ -v $(pwd)/data:/docker-entrypoint-initdb.d mysql
sakila
データベース登録されているようです。
$ docker exec -it sampledb mysql -uroot -proot -e "show databases" mysql: [Warning] Using a password on the command line interface can be insecure. +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sakila | | sys | +--------------------+
インタラクティブモードでも入れます。
docker exec -it sampledb mysql -uroot -proot mysql>
Azure Data Catalogにメタデータ発行用の登録ツールインストール
データストアからメタデータを抽出して、Azure Data Catalogに登録することを発行と呼んでいるようです。登録ツールのインストールについて書いていきます。
MySQLコネクタインストール
登録ツールはMySQLへの接続時に以下の .NET用のMySQLコネクタを使います。
この記事を書いた時点では mysql-connector-net-8.0.21.msi
がダウンロードできたので、それをインストールしておきます。
登録ツールインストール
Azure Data Catalogの「発行」から遷移できる以下の画面から「アプリケーションを起動」をクリックします。
登録ツールである RegTool.application
がダウンロードされるので実行しインストールします。
ダウンロードしたファイルを実行すると、すぐに登録ツールがインストールされ以下の画面が表示されるので、 組織のAzure ADに登録されたアカウント
でサインインします。
サインインすると、データソースを選択できる画面が表示されます。PC上の登録ツールがデータソースに接続し、メタデータを抽出、カタログに登録を行ってくれます。
MySQLのメタデータをAzure Data Catalogに取り込み
データソースにはMySQLを選択します。
接続情報入力します。
カタログに登録するテーブルやViewを選択します。
プレビュー用データや、データプロファイルを含めるか(後述)などを選択します。
データの担当者情報としてメールアドレスを入れます。このアドレスはAzure ADに登録されているものになります。
データに紐付けるタグ情報も、ここで入れることが可能です。
参考になるかは不明ですが、今回のオブジェクト数で40秒ぐらいでアップロードが完了しました。
Data Catalogを見てみる
これでデータカタログが登録されました。
トップ画面
ホーム画面はダッシュボードと、検索画面です。検索がデフォルトのエントリーポイントとなります。
検索ではタグ検索 tags:タグ名
みたいな検索ができたり、 name:product AND (tags:product AND objectType:table) AND lastRegisteredTime:>"06/09/2016"
みたいなクエリ検索もサポートされています。
検索結果画面ですが、まるでネットショッピングのようにデータを検索、フィルタリングして探すことができます。
プロパティ
特定のデータを選択するとプロパティが表示されます。エキスパート(データのこと知っている人)や、登録ツールから登録したタグ、接続情報、登録更新時刻などが確認できます。
プレビュー
プレビュー用のデータをアップロードしておくと、ここからプレビューできます。
列情報
テーブルの列に、注釈やタグをつけることができます。誰が追加したかもわかります。
データプロファイル
テーブルのサイズや行数、カラムの型だけでなく、Nullの数や、入っている値の統計などが確認できます。どれも技術的には嬉しい情報です。
ドキュメント
フリーにドキュメントを記述できます。
関連データ(リレーション情報)
リレーション情報が設定されていれば、それも取ってきてくれました。
アプリから開く
PowerBIの場合は pbix
形式でダウンロードできるので、権限があるユーザならば、データストアからデータの取得が簡単に行えます。
EXCELはドライバ対応してなかったりするので、特にPowerBIをメインで使っているところでは便利そうです。
ビジネス用語集
同じ社内でも部門間で用語のブレがあったりしますが、その解消に役立つ機能です。用語は親子関係も持たせることが可能です。
以下のようにビジネス用語を登録しておけます。
登録した用語はタグとして利用できます。登録しておいた用語を提案してくれる機能もあります。
テーブルやカラムに紐付いたタグから、用語集に逆引きで飛ぶことなども可能です。
まとめ
- 様々な3rd Partyアプリケーションからメタデータを抽出でき、それがツール化されているのはエンタープライズには向いていると思います。ただ、ツール化されているとはいえMS製品以外は一定の知識が必要です。(必要なモジュールをGitHubからダウンロード、インストールする程度ですが)
- 検索機能がしっかりしているので、データさえ登録されていれば必要なデータは見つけやすいと思いました
- Freeプランが存在していたり、有償のStandard Editionも1ユーザあたり112円などで使える価格帯も機能を考えるとメリットかと感じました
- Azure ADとデフォルトで連携しているので、O365を使っていてAzure ADにユーザが存在するような企業ならメリット大きいと思います
- データのプレビューやプロファイルはデータカタログの使い始めではわかりやすく役立つ機能なので嬉しい
専門の製品と比較すると足りない機能もありますが、価格含めて、使いどころによってはとても良さそうなサービスだと思いました。
参考URL
関連URL
AWSのGlueやAthenaで利用するカタログ情報をAzure DataCatalogに入れる手順
こちらはBigQueryに接続した手順です。