データの信頼性を向上させるためのプラットフォーム「Datafold」を触ってみた

本記事では、Data Reliability PlatformのDatafoldを紹介していきます。

データ基盤内のデータ量やテーブル数が増えれば、それに伴いデータの品質を維持することも難しくなってきます。そこの課題を外側から監視して解決するソリューションとして、DatafoldのようなData Observability系のツールが最近勃興してきています。

Datafoldについて

Datafoldは2020年にサンフランシスコで創業されたスタートアップです。創業からわずか1年でシリーズAに到達し、$20Mの資金調達に成功した実績から分かる通り、今注目を集めているデータ関連のSaaSカンパニーです。

Datafold Raises $20M Series A To Help Data Teams Deliver Reliable Products Faster | Business Wire

Datafoldが提供するプラットフォームには、データ品質を向上させるための機能が詰まっています。例えば、検証環境と本番環境のテーブルを比較する回帰テストを簡単に実施することができたり、SQLでメトリクスを作成してしきい値を超えた場合にメールやSlack通知を行うことが可能です。パッとみてデータの状態や傾向を掴むことができる、デザインやUI面での丁寧な設計も特徴の一つでしょう。

DatafoldではSandbox環境が用意されているので、すぐに機能を試してみることができます。次節よりその様子をお見せしていきます!

Data Diff

公式HPよりTry Sandboxをクリックします。

今回はGoogleアカウントでサインアップを進めていきます。

認証完了後、任意の組織名を入力すると初期設定は完了です。

Datafoldのホーム画面にランディングしました。SandboxではData diffCatalogAlertsの3つの機能が提供されています。今回は、Sandbox環境で用意されているサンプルデータをそのまま見ていきます。まずはData diffからです。

Data diffはテーブル間の差分を確認することができる機能です。taxi_tripsの差分を見てみます。

画面左側には差分を出力する設定パネル、右側には出力結果のサマリや統計値などが表示されます。サンプルではtaxi_tripsという同一テーブル名の、devスキーマとpublicスキーマ間の差分を出力するよう設定されています。右側はGitHubライクにデータの差分が整理されています。

画面左の設定パネルでは絞り込みやサンプリング抽出も設定できます。サイズの大きいテーブルを対象とする時で、リソースを節約したい場合に便利な機能ですね。

画面右に移り、Overview以外のタブも内容を確認していきます。Schemasでは、カラムの差分を横並びに比較することができます。

Primary Keysでは、左の設定パネルで指定したPrimary Keyに対して、レコードの差分や重複などを確認することが可能です。

Column Profilesでは、カラムごとに分布やカーディナリティ、NULL数などを比較することができます。

Valuesは差分比較をレコード単位にドリルダウンした表示になっています。

Timelineは差分のミスマッチ度を時系列にグラフ化したものです。データの品質をウォッチングするのに使えそうです。

Catalog

続いて2つ目の機能、Catalogです。

Catalogではテーブルやカラムといったアセットが一覧で表示される他、キーワード検索やタグでの絞り込みも可能です。サンプルで用意されているwikidata.businessesを見てみます。

詳細画面の上半分は行数や列数といったテーブルに対する統計情報が表示され、概要やタグなどはユーザーで編集できる仕様になっています。画面下半分は、カラムごとの分布やタグなどを一覧で確認することができます。

カラムをクリックするとオーバーレイで拡大されるようになっています。

Sampleのタブをクリックすると、データのプレビューと統計情報をまとめて確認することができます。情報量がリッチなので、データを概観したい時には通常のSQLクライアントのプレビュー機能よりも便利ですね。

Lineageでは、テーブル生成の依存関係を確認することができます。

Lineage detailColumnsに切り替えると、カラムレベルでリネージを確認することができます。

Alertsとその他の機能

最後、3つ目の機能のAlertsを見ていきます。

AlertもDiffと同様にリスト形式で設定した項目が並んでします。サンプルで用意されていたTaxi Tripsをクリックします。

Alertはデータの品質を監視したいテーブルに対して、SQLでスケジュール実行用の集計クエリを作成しておき、その値が設定したしきい値を超えたら通知を行うことができる機能です。

しきい値の情報と集計結果が時系列グラフでも可視化されているため、データ品質の変動具合や傾向が視覚的に理解できるのが良いですね。

その他、サンドボックス環境では上部メニューバーのアイコンからJobsという画面にもアクセス可能です。

Jobsでは、DiffやCatalog閲覧時に自動的に走ったクエリの実行ログなどが記録されています。実行時間などを確認して、時間がかかりすぎているログに対してはサンプリング抽出にしておくなど、Datafoldの運用面で使えそうな機能です。

他にも、RedshiftやSnowflakeとの接続や、GitやSSOとの連携機能も用意されているみたいですが、Sandbox環境からはアクセスできませんでした。興味ある方は公式ドキュメントもご参照ください。

Datafold - Datafold

所感

「データカタログを導入したい!』という動機には、さらに一段階具体的にした目的も出てくるはずですが、それが「データの品質を保全したい」という場合であれば、Datafoldは良いソリューションになると思います。DWH連携やリネージの生成過程までは確認できませんでしたが、提供されている画面の構成、例えばプレビューの表示の仕方やグラフの見せ方などが、現場の課題に対してクリティカルに刺さるユーザーは確実にいそうだなと思います。

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