みなさんこんにちは、INSIGHT LAB株式会社のSHOWです。
本記事はOpenMetadataを使ってSnowflake内のデータをカタログ化してみた記事となります。
自社が保有するデータを利活用することが、どれだけ大切かは私が言うまでも無く皆様ご理解いただけていると思います。
ですが、その利活用をどう進めていけば良いのか?今社内にはどんなデータがあるのか?誰が管理しているのか?などの悩みの種があり、思うように利活用を進められないのが現実です。
ですが、まずは一歩づつできるところから始めてみてはいかがでしょうか?
例えば、社内に散らばったデータを一箇所で管理運用するデータカタログ化などです。
今回はOSS製のOpenMetadataと呼ばれる製品のご紹介記事でございます。OSSの強みの一つにフリーライセンスがあげられます。スモールスタートでデータカタログを試す良い製品でもあります。
この機会にぜひデータカタログ化をご検討してみてはいかがでしょうか。それでは早速ご紹介したいと思います。
最初に前提のお話をします。
OpenMetadataは企業が持つメタデータを一箇所に集め運用管理を行うことでデータエンジニアへの負荷を下げる効果があります。
その他特徴としては、データ連携を行える、メタデータのバージョニング、データのリネージュ化、幅広いコネクタをサポートしており、データを集めやすい環境があります。
詳細は公式ドキュメントを参照ください。
OpenMetadataをどのような形で構築しようとも、必ず必要となるサーバが4つ存在します。
です。
OpenMetadata公式のクイックスタートのDockerを利用する際は、上記サーバがDockerで動くようになっています。
これはあくまでPoC的に利用することを前提としており、本番運用を見据えた場合は、各サーバを管理できる単位に切り分けた方が良いとのことです。
例えば、AirflowはAWS MWAAを利用したり、MySQLはAmazon RDS for MySQLを利用したりすることを推奨しています。
OpenMetadataには重要な機能が数多くありますが、その中でも特に重要な機能を1つ紹介します。
それはIngestion機能です。簡単に説明すると、この機能を使ってDBやDWHからメタデータを収集する機能です。
メタデータとは、データベース、スキーマ、テーブル、クエリなどの情報を指します。
Ingestionを使ってSnowflakeのデータを収集する前に、まずはSnowflake との接続を確立しなければならないです。
今回はjaffle_shopのデータを事前にSnowflake に取り込んでいるので、そのデータがOpenMetadata上でどのように表示されるのか見て行きましょう。
Snowflakeとの接続を作成すると以下のように表示されますい。
続けてIngestionを作成していきます。
今回はSnowflake 上のjaffle_shopのテーブルやスキーマなどのメタデータを収集したい為、Metadata Ingestionを作成します。
作成後、Ingestionを実行します。
問題なく実行できていれば、「Success」と表示されます。
実はこのIngestionは裏ではAirflowが動いています。
そのため、Ingestionを定期的に実行し、常に最新のデータを収集することができます。
Ingestionには他にも種類があるため、気になる方は公式ドキュメントを確認していただきたいです。
それでは実施に収集したデータがOpenMetadata上でどのように表示される確認してみましょう。
例としてRAW_PAYMENTSテーブルを見てみると、テーブルのカラム名が表示されていることがわかると思います。
それ以外にも多くの情報を集めることが出来ます。
例えば、以下のようなことができます。
それ以外にもOpenMetadataには多くの機能が備わっており、ここで紹介し切れるものではありません。気になる方は是非実機でお試しいただければと思います。
フリーライセンスでここまでできれば十分ではないでしょうか。むしろ出来ることが多すぎて悩んでしまうぐらいですね。
なんと言っても最大のメリットはOpenMetadata自体にお金が掛からないことです。
もちろんインフラ面のランニングコストは発生しますが、よく分からない有償のカタログ製品も何百万円もかけなくて済むのは大きいメリットだと思います。
まずはスモールスタートから始めて運用し、その後色々と課題ややりたいことが見えてくると思います。そうなったらそれを実現できる製品を選定すればコストを抑えることができます。
この機に是非社内に散らばっているデータを一箇所に集めて運用管理してみてはいかがでしょうか。