安くマネージドなデータカタログを導入できる「Tree Schema」を触ってみた

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

本記事では、データカタログのTree Schemaの特徴を紹介しながら製品を触っていきます。

そもそも、「データカタログって何?」という方のために軽く説明しておきますと、データカタログとはざっくり、 データベース・データレイク内のデータに対して、概要や特徴量、関連性などをまとめて一覧化しておくサービス です。え、それだけ?と思われるかもしれませんが、現代のデータ基盤はデータソースの数も増加してますし、BIなどから参照する分析用のデータ(データマート)の数も増加していることから、「とりあえずどんなデータがあるのか、ざっくり知りたいんだよね〜。」といったニーズが増えつつあります。

Tree Schemaについて

Tree Schemaの会社情報について調べてみたのですが、これまで紹介してきた製品とは異なり、登記や投資情報がほぼ見つかりませんでした。かろうじて見つけたRedditのポストによると、2020年に有志のデータエンジニア達によって開発されたデータカタログのサービスみたいです。

Tree Schema - A data catalog that is accessible to all teams : dataengineering

Tree Schemaはメタデータの管理やリネージといった、データカタログで必要とされる基本的な機能は備えつつも、特徴的なのはその価格です。中小企業をターゲットとしており、$0/月のFree Plan、$99/月のStartup Plan、そして$300/月のSmall Business Planが固定金額で用意されており、なかなか予算が避けられない会社でも手が出せる価格設定となっています。データソースに接続するためのコネクタもマネージドで用意されているので、お使いのAWS環境などに専用のエージェントを立てる必要がなく、サーバーの運用コストもかからないのが良いですね。

本記事では、このFree Planでアカウントを作成してRedshiftの情報を読み取らせていきます。

Redshiftと接続する

公式HPより、Signup Nowをクリックします。

GoogleやMicrosoftアカウントでサインアップ可能です。今回はGoogleでサインアップします。

Tree Schemaの初期設定は、Organization Nameを決めるだけです。

Organizationを作成後、ホーム画面にランディングします。Click here to get started by adding your first data store!をクリックして、まずはData Store作成します。

対応しているデータソース一覧が表示されます。今回はパブリックに配置したRedshiftクラスタに対してコネクションを作成していきます。対応しているデータソース結構豊富で良いですね。

Data Storeの管理者情報を入力します。

Yes, set up the connectionをクリックします。

Redshiftクラスタの情報を入力していきます。踏み台サーバー経由でも接続できるみたいなので、プライベートのRedshiftクラスタにも接続できそうですね。Test Connectionで接続テストに成功したらNextをクリックします。

Data Storeに対するアクセス権限を設定します。defaultを入力して送信をクリックします。

以上でData Storeが追加されました!さっそく中の情報を見ていきます。

Data Store登録直後は空っぽなのがデフォルトのようです。Add New Schemasをクリックして、スキーマ・テーブル情報を追加していきます。

Automatically From Data Storeでは、Data Store内のスキーマを自動で解析してメタデータを追加できる機能みたいです。こちらをクリックします。

Data Storeで指定しているデータベース内のスキーマとテーブル一覧が取得できました。Submitをクリックして確定させます。

Data Storeの画面の方にスキーマ・テーブル情報が登録されるようになりました。試しにpublic.usersテーブルの情報を見てみます。

カラム名とデータ型は自動で取得する感じの模様。セットアップは大体完了したので、次節から個々の機能を見ていきます。

UIと機能の構成

最初に到着するランディングページはDashboardです。最近のアクティビティなどが確認できるようになってます。

SearchではCatalogリソースの横断的なキーワード検索や、種類別の検索が可能です。今のところ細かい絞り込みはできないみたいですね。

Dictionaryでは、いわゆるビジネス用語などを記述・管理することができます。

以下のように、共通のContextで他のKeywordと関連づけながら定義することができます。

Transformationsでは、Data Store間の変換処理を定義することができます。試しにCreate Transformationをクリックしてみます。

以下のように、まずは変換のタイプや登録者を定義します。

次にGUIのリネージ作成画面が表示され、上枠のプルダウンでSourceとTargetを選択しながら、ドラッグ&ドロップでリネージを作成することができます。基本的にリネージは機械的に生成するデータカタログが多いので、ユーザー自信が作成できるようになっている仕様は珍しいですね。リネージを自分で作ってみるのも意外と楽しいです。

作成後の画面は以下のような感じです。Data Flowのタブではデータ変換の流れを確認できつつ、

Lineageでは階層構造が把握できるようになっています。リネージの描画になかなk力入ってますね。

Governance Reportでは、データカタログに対するメタデータ付与の状況が可視化されています。

Teammatesでは、自身が所属しているチームメンバーの情報が表示されるみたいです。

チーム自体を作成・管理するのはMy Teamsで行います。

紹介は以上です!公式ドキュメントでもコンセプトや機能が整理されているので、興味がある方はこちらも合わせてご覧ください。 → Concepts & Principles — Tree Schema documentation

所感

対応しているデータソースの数も想像以上に豊富で、コスパの良いデータカタログだなという印象を持ちました。Tree Schemaを導入する際の比較対象は、OSSのデータカタログになってくるかなと思います。OSSのデータカタログをホスティングから管理・運用するのが面倒に感じる場合は、検討の余地はありそうですね。

本アドベントカレンダーでは、今話題のデータ関連SaaSを取り上げていきますので、引き続き乞うご期待ください!