让我们通过OpenMetadata查看一下Db2的示例数据库
建立环境
引入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文档的说明,为了创建示例数据库,添加了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
使用Docker提供的host.docker.internal指代Host and Port的部分。
摄入的设定
如果连接成功,请添加从Db2中获取数据的Ingestion。添加了元数据Ingestion和Profiler Injestion。
元数据摄入不需要指定特定参数,但是数据分析摄入无法读取具有LOB列的表,所以排除了EMP_PHOTO和EMP_RESUME的指定。
确认在OpenMetadata上可以实现的功能。
如果更改了表格,将会记录下更改历史。
在添加了表格列之后,获取元数据会保存历史记录。这样,通过”columns middlename has been added”可以一目了然地知道做了什么样的更改,非常方便易读。尤其是在未进行任何更改时,我不太明白为什么会积累”tableConstraints has been added”的变更记录。
可以查看表格的值信息。
除了数据类型,还可以根据实际值查看Null%、Unique%、Distinct%等信息,看起来很方便。
词汇表
不仅可以在表格的列中进行描述,还可以创建与列独立但与之相关联的术语集。可以将与某个术语相关的表格列进行汇总列出。
其他的意见
-
- Data Lineage(データがどこで生まれてどうやって派生していくか)を有向グラフで表示できる
-
- ER図を表示する機能はなさそう
-
- ユーザー、チームごとにできる操作を分ける機能(Role, Policy)はあるようだが、どのデータを操作できるかは指定する方法はわからなかった(まだ機能がない?)
-
- データごとにオーナー、Tier(組織全体にとってクリティカルなデータ、部門に閉じたデータなど)を指定できる。タグ機能も使って個人情報がどれかを指定すると便利そう
- メッセージング(Kafkaなど)、ダッシュボード(Metabaseなど)、パイプライン(Airflowなど)のデータを扱うことが可能