Data Quality Fundamentals読んだ

learning.oreilly.com

tl;dr

  • データの品質「Data Quality」をテーマにした本だよ
  • Qualityが低いとなぜ困るのか、どんな方法・ツール・メトリクス・コミュニケーションでQuality向上できるかの説明があるよ
  • 個々のツールの説明は多くはないよ
  • Qualityを向上させるロードマップの検討・提案・説得などに使えそう(Quality低いとこれだけ困ります、こんな方法があります等)
    • 逆に個々のパイプライン・テーブルのQuality向上には、読む時間・コストに見合うか微妙かも(具体的なツールのドキュメント読んで実装した方が良い気もします)

なんで読んだの

最近、データパイプラインの品質管理・監視(Data Testing、Data Monitoring、Data Qualityとか呼ばれる領域)に興味があり、Great Expectations試したりしてました。

2022/9に出版されたこの本は、データパイプラインの品質管理・監視にフォーカスした珍しい本なので、読んでみました。

そもそもData Qualityなんやねん

この本では、Data Qualityを

For the purpose of this book, we define data quality as the health of data at any stage in its life cycle. Data quality can be impacted at any stage of the data pipeline, before ingestion, in production, or even during analysis.

と定義しています。

「health of data」という用語が曖昧さがあります(QualityをHealthに言い換えただけでは)が、別の「Data Downtime」という概念の説明で使われている、「missing, inaccurate, or otherwise erroneous」が「health of data」の意図するところでしょうか。

Data downtime refers to periods of time where data is missing, inaccurate, or otherwise erroneous, and it manifests in stale dashboards, inaccurate reports, and even poor decision making.

この本で紹介されていること

  • Data Qualityの大切さ
    • Webサービスに例えて(昔はダウン気にしてなかったが普及にしたがって、ダウンの監視や改善が重要になった)、データのダウン「Data Downtime」のインパクトで大切さを説明
  • コストインパクトの計算方法
  • Building blocks
    • DataLake、DWH、Data Catalog
  • 収集->変換->Cleaning->テストの流れ
    • Cleaningは外れ値・欠損値の対応や、型の変換などです
  • テスト・モニタリング
    • 典型的なテスト項目(データ量、NULL、分布、一意性、不変性(利益が収益-コストになってるとか))
    • dbt、Great Expectations、Deequのメリット・デメリット、簡単なコード例
    • Airflowでの例(SQLCheckOperator、「Circuit Breaker」(データ品質が期待以下の場合DAGを失敗させる))
  • 異常検知
    • テストだけだと「Unknown unknown」に対応できない
    • SQL+惑星データでデータの分布を可視化して、異常値検知
  • Data Quality
  • Data Incidentの対応の例
  • データリネージュのメリット、例、ケーススタディ(FOX Network)
  • 「Data as Product」
    • 概念の説明
    • 関係者との調整
    • Data Discovery・Catalog大事だよ
    • Case Study(Toastの例)
  • 「Data Mesh」
  • 将来の展望(よりプロアクティブ、自動化、分散)

この本で(あまり)紹介されていないこと

  • 機械学習のモデルのQuality(学習した後に劣化するとかの話)
  • 個別のツール・サービスの(詳しい)話
    • この本の著者はMonte Carlo(Data QualityのSaaS)の人ですが、特にMonte Carloの説明はありません
    • Deequ、dbt、Great Expectations、Airflowについては、少し説明があります
  • 「Data」でないQuality(ソフトウェアのテスト等)

他の本

(Early Releaseの本も含めると)最近Data Quality系の本がいくつか出版されているようです。

learning.oreilly.com

learning.oreilly.com

learning.oreilly.com