🚀

OpenMetadataのGet Startをやってみた

2022/09/27に公開

がく@ちゅらデータエンジニアです。
最近はModern Data Stackのトレンドとか追ってまして、業務でも Data Catalogが熱い!ってなったので、ちょっと調べてみようかな〜と軽い気持ちで調べてしまった・・・

Data Catalogは、Modern Data Stackでも比較的新しいカテゴリかな?と思ってます。
プロダクトとしては

がなどがあります。

今日はその中のOpenMetadataのGetStartをやってみたので、そちらを記載してみようと思います。

https://docs.open-metadata.org/quick-start/local-deployment
お題は 「DockerでOpenMetadataを試す」

動作環境(OSX、Linux)

  • Python version 3.7以上
    • $python3 --version
  • Doker バージョン 20.10.10以降
    • docker --version
  • Docker Compose (バージョン2.1.1以上)
    • docker compose version

手順

OpenMetadata用ディレクトリを作成する

$ mkdir openmetadata-docker && cd openmetadata-docker

Pythonの仮想環境の作成

python3 -m venv env

仮想環境を起動する

source env/bin/activate

pipとsetuptoolsのアップグレード

$ pip3 install --upgrade pip setuptools

OpenMetadataのPythonモジュールをインストールする

$ pip3 install --upgrade "openmetadata-ingestion[docker]"

モジュールがインストールされ、使用可能な状態であることを確認する

$ metadata docker --help

以下のようなメッセージが出るはず

:~/openmetadata-docker% metadata docker --help
Usage: metadata docker [OPTIONS]

  Checks Docker Memory Allocation Run Latest Release Docker - metadata docker
  --start Run Local Docker - metadata docker --start -f path/to/docker-
  compose.yml

Options:
  --start                         Start release docker containers
  --stop                          Stops openmetadata docker containers
  --pause                         Pause openmetadata docker containers
  --resume                        Resume/Unpause openmetadata docker
                                  containers
  --clean                         Stops and remove openmetadata docker
                                  containers along with images, volumes,
                                  networks associated
  -f, --file-path FILE            Path to Local docker-compose.yml
  -env-file, --env-file-path FILE
                                  Path to env file containing the environment
                                  variables
  --reset-db                      Reset OpenMetadata Data
  --ingest-sample-data            Enable the sample metadata ingestion
  -db, --database [mysql|postgres]
  --help                          Show this message and exit.

OpenMetadataのDockerコンテナを起動します。

% metadata docker --start

以下のようなメッセージが出た

[2022-09-27 23:03:51] INFO     {Metadata:docker:168} - Checking if docker compose is installed...
[2022-09-27 23:03:52] INFO     {Metadata:docker:174} - Checking if docker service is running...
[2022-09-27 23:03:52] INFO     {Metadata:docker:178} - Checking openmetadata memory constraints...
[2022-09-27 23:03:52] INFO     {Metadata:docker:135} - Downloading latest docker compose file docker-compose.yml from openmetadata repository...
[2022-09-27 23:03:52] INFO     {Metadata:docker:51} - Running docker compose for OpenMetadata..
It may take some time on the first run

メタデータの取り込みが終了するのを待つ

✅  OpenMetadata is up and running

Open http://localhost:8585 in your browser to access OpenMetadata..

To checkout Ingestion via Airflow, go to http://localhost:8080
(username: admin, password: admin)

We are available on Slack , https://slack.open-metadata.org/ . Reach out to us if you have any questions.

If you like what we are doing, please consider giving us a star on github at https://github.com/open-metadata/OpenMetadata.
It helps OpenMetadata reach wider audience and helps our community.

これにより、Docker Networkと以下のサービス用のコンテナが作成される

  • メタデータ・カタログを保存するMySQL
  • カタログの検索を可能にするメタデータ・インデックスを維持するためのElastickSearch
  • OpenMetadetaがメタデータの取り込みに使用するApache Airflor
  • OpenMetadataのUIとAPIサーバ

コンテナの起動後、メタデータはAirflowタスクを起動し、実験用のサンプルメタデータと使用状況データを取り込みます。システムによっては、数分かかる場合があります。

http://localhost:8585/
にアクセスしてみました。

メタデータとコラボレーションのパワーを発見するツアーに出かけよう

Airflowにログイン

OpenMetadataには、UIを介してデプロイされたインジェストワークフローを実行するためのAirflowコンテナが同梱されています。

Airflowでは、サンプルデータを取り込む、例となるいくつかのサンプルDAGも表示されます。

Airflow には、http://localhost:8080 からアクセスできます。以下の認証情報を使用して、Airflow にログインします。

ユーザー名:admin
パスワード:admin

終わりに

とりあえず、GetStartの言うままに作ってみました。
Docker入れてなかったので、そのインストールから

まだ何ができるかは、全然わかっていないので、触ってみて、色々試してみようと思います。
Snowflakeへのアクセスしての様々な機能を試す・・・をやってみたいなっておもってます。

Discussion