LoginSignup
1
0

More than 1 year has passed since last update.

OpenMetadataでDb2のサンプルDBを見てみる

Posted at

環境構築

OpenMetadataの導入

公式ドキュメントに書いてある通りでよいが、Db2へ接続するときにCan't load plugin: sqlalchemy.dialects:db2.ibm_dbというエラーが発生したので、openmetadata_injestionコンテナ内でibm_db_saをインストールしたところ解消した。

sudo  apt install python3.10-venv
source env/bin/activate
python3 -m venv env
source env/bin/activate
pip3 install --upgrade pip setuptools
pip3 install --upgrade "openmetadata-ingestion[docker]"
metadata docker --help
metadata docker --start

ibm_db_saをインストール

docker exec -it openmetadata_ingestion bash
pip3 install ibm_db_sa

Db2のインストール

DockerHubのドキュメントに記載されている通り。サンプルDBを作るために、SAMPLEDB=trueを追加した。

docker run -itd --name mydb2 --privileged=true -p 50000:50000 \
  -e LICENSE=accept -e DB2INST1_PASSWORD=<パスワード> -e SAMPLEDB=true -e DBNAME=testdb \
  ibmcom/db2

OpenMetadataからDb2への接続

Host And Portの部分はDockerが提供しているホストを指すhost.docker.internalを使った。

image.png

Ingestionの設定

接続できたらDb2からデータを取得するためのIngestionを追加する。Metadata IngestionとProfiler Injestionを追加した。

image.png

Metadata Ingestionは特にパラメータを指定不要だったが、Profiler InjestionのほうはカラムにLOB持つテーブルを読み込めないようだったので、EMP_PHOTO, EMP_RESUMEを除外指定(Exclude)した。

image.png

OpenMetadataでできることを確認

テーブルを変更した場合に変更履歴が取得される

テーブルにカラムを追加したあとでMetadataが取得されると履歴が保存される。columns middlename has been addedのようにどんな変更だったかをぱっと見てわかるようになっていて見やすい。特に変更していない時もtableConstraints has been addedという履歴が溜まっていく理由はよくわからなかった。

image.png

テーブルの値の情報を見ることができる

Data Typeだけでなく、Null %, Unique %, Distinct %のように実際の値に基づいた情報を見ることができるのは便利そう。

image.png

用語集

テーブルのカラムに説明を記述できるだけでなく、カラムとは独立した用語集を作成できカラムと紐づけることができる。ある用語と関連があるテーブルを一覧化することができる。

image.png

その他の感想

  • Data Lineage(データがどこで生まれてどうやって派生していくか)を有向グラフで表示できる
  • ER図を表示する機能はなさそう
  • ユーザー、チームごとにできる操作を分ける機能(Role, Policy)はあるようだが、どのデータを操作できるかは指定する方法はわからなかった(まだ機能がない?)
  • データごとにオーナー、Tier(組織全体にとってクリティカルなデータ、部門に閉じたデータなど)を指定できる。タグ機能も使って個人情報がどれかを指定すると便利そう
  • メッセージング(Kafkaなど)、ダッシュボード(Metabaseなど)、パイプライン(Airflowなど)のデータを扱うことが可能
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0