データ基盤
データガバナンスとは:データの信頼を決める仕組みと残る課題
- データガバナンス
- データ基盤
- データ品質
- dbt
- Deequ
- TFX
- OpenLineage
- Amundsen
- DataHub
- データメッシュ
- Unity Catalog
- Apache Polaris
- ELT
- データリネージ
- データカタログ
- データオーナー
- GDPR
- Lambda アーキテクチャ
- ストリーム処理
- FinOps
- Flink
- Dataflow
- Parquet
目次
分析のための基盤は、作り直されるたびに、誰でも何でも保存して問い合わせられる方向へ進んできた。安いオブジェクトストレージに生のデータを置き、誰でも読める形式のファイルの上で表を更新し、必要なときだけ計算の機械を動かす。表を作る人も、中央の情報システム部門だけでなく、各部門の分析担当者へ広がった。
保存して問い合わせられる自由が広がるほど、どのデータを信じてよいかは分かりにくくなる。同じ名前の表がいくつもあり、どれが正しい出どころか分からない。元の表に誤った値が入ると、そこから作った表すべてに誤りが広がる。顧客から自分のデータを消すよう求められても、その顧客の行がどの表に写っているかを誰も把握していない。
前の回では、表の最新の版を決める場所としてのカタログ(テーブルカタログ)を見た。この回は、同じ基盤の上で、どのデータを信じてよいかを誰がどう決めるかという別の軸を扱い、シリーズの最後の段にあたる。ここで扱うデータカタログは、データの所在と説明を集めた目録であり、表の版を決めるテーブルカタログとは役割が違う。シリーズを通じて解けずに残った問いは、バッチとストリームの扱い、AI の処理と非構造データ、ガバナンスの規則を置くカタログの三つである。本稿は、変換・検査・来歴・データカタログの仕組みを作った会社や研究者の文書、データオーナーの考え方を提案した論考とその批判、未解決の問いをめぐる論文と文書を例に取る。
誰でも何でも保存して問い合わせられる基盤で、どのデータを信じてよいかを誰がどう決めるのか。そして、何がまだ決着していないのか。
誰でも何でも保存して問い合わせられる基盤では、どのデータを信じてよいかを品質の検査、来歴の記録、データオーナーの責任で決める必要がいっそう強まったが、その仕組みをどこに置くかは、まだ各社と各組織で割れている。 本稿では、データガバナンスを、どのデータを誰が使ってよく、どれを信じてよく、誰が責任を持つかを決め、その決まりを仕組みで守らせることと定める。品質の検査は誤りを流れの手前で止め、来歴(どの表からどの表を作ったか)の記録は誤りや個人データの写しの広がり先を示し、データオーナーは正しさを保証する人を決める。一方で、これらの仕組みをどの製品に集めるか、責任をどの部門に持たせるかには異なる考え方があり、バッチとストリームの扱いや AI の処理をめぐる主張も並んだままである。
一つの元の表から三つの表を作った会社
※ この節の数値は説明のための仮定で、測定値ではありません。
ある会社が、注文の元の表から三つの表を作っているとする。部門 A は注文から日ごとの売上の表を、部門 B は日ごとの売上から地域別の報告の表を、部門 C は注文から顧客ごとの特徴の表を作る。前の二つは合計だけを持つ集計の表で、三つ目は顧客ごとに一行を持つ表である。
ある日、注文の表に、金額がマイナスの誤った行が 12 行入った。検査が無ければ、12 行の誤りは三つの表すべての数字に流れ込む。後で誤りに気付いた人は、元の表を含む 4 つの表を調べ直す必要がある。注文の表に入る前に「金額は 0 以上」という検査を走らせていれば、12 行はそこで止まり、三つの表には届かない。
別の日、ある顧客が自分のデータを消すよう求めた。元の注文の表からその顧客の行を消しても、注文から作った顧客ごとの特徴の表には、その顧客の行が残る。日ごとの売上と地域別の報告の表には顧客の行は無いが、合計にはその顧客の注文が含まれるので、作り直す対象になる。どの表からどの表を作ったかの記録があれば、注文の表から順にたどって、行を消す表と作り直す表をすべて見つけられる。記録が無ければ、元の表から作られた表を一つずつ探して調べる必要がある。
この例は、三つのことを示す。
- 一つの表の誤りは、その表から作った表の数だけ広がる。
- 誤りを元の表の手前で検査すれば、一か所で止められる。
- どの表からどの表を作ったかの記録があれば、ある顧客の行を持つ表と、その顧客を含む集計の表をたどれる。
変換が倉庫の中に移ると、誰が作った表かが問題になる
データを取り出し(Extract)、整え(Transform)、倉庫に入れる(Load)順の処理を ETL と呼ぶ。これに対して、先に倉庫へ入れてから倉庫の中で整える順序を ELT と呼ぶ。変換のツール dbt を作った dbt Labs の Handy は 2017 年の記事で、dbt は ELT の T(変換)にあたり、倉庫にすでに入ったデータを変換することだけを担うと書いた1。Handy は ELT が広まった理由を、Redshift や Snowflake や BigQuery のような分析用のデータベースが十分に速く、保存と計算も分かれたので、変換を倉庫の外で行う理由が減ったことに求めている。これはツールを作った側の説明である。大学の研究者の論文も、ELT を、データを倉庫に入れた後で変換の問い合わせを書く手順として説明している2。
dbt Labs は同じ記事で、分析担当者がツールを使う側から作る側に変わり、自分で変換を書いて共有する形を、これからの分析の姿だと書いた1。表を作る人が増えれば、同じ元の表から作った表も増え、どの表を信じてよいかを決める必要が強まる。データの品質の問題は以前からあったが、表を作る人が分散したことで、検査と責任をどこに置くかが改めて問われる。たとえば Databricks の文書は、自社のカタログが担う働きとして、問い合わせのたびのアクセスの制御、来歴の追跡、操作の記録、データ品質の監視、データの分類を挙げている3。本稿では、このうち品質の検査、来歴の記録、データオーナーの責任の三つを扱う。
データの検査をコードとして書き、毎回走らせる
データの品質の検査を、ソフトウェアのテストと同じように書く考え方がある。Amazon の Schelter らは 2018 年の論文で、多くのデータの出どころには整合性の制約も品質の検査も無く、しばしばスキーマすら無いまま読む側が解釈していると書いた4。その結果、データを扱う各チームが何らかの形で検査を自前で行い、退屈で重複した作業になっているという。論文は、利用者がデータに対する「単体テスト」を書けるようにすることを目標に挙げ、その仕組み Deequ を示した。
検査を本番で動かした記録もある。Google の Breck らは 2019 年の論文で、機械学習の基盤 TFX に組み込んだデータの検査を報告した5。本番に出すモデルを学習する 700 を超える処理の流れを標本に、データの異常の警告を調べた。評価用の流れの直近 30 日では、新しい列が現れたという警告が流れの 10% で出て、そのうち 65% はその後 2 日続けて警告が出なくなった。論文は、各チームが検出された異常の大半を直していると書いている。社内全体の統計では、7 割を超える流れが、学習のコードがデータについて置く前提を確かめるテストを持ち、1 か月に 8 万回を超えた実行の 6% が失敗していた。一方で論文は、警告を受けるのは人間であり、忙しさによっては警告を見逃したり無視したりすると書いている。これらは Google の社内の運用についての報告である。
来歴の記録がないと、誤りの広がり先も、消すべき写しも見落としやすい
データを使う人は、データを探すのにも時間を取られる。Lyft の Grover は 2019 年の記事で、データサイエンティストの時間の大半をモデルの開発に充てたかったが、実際には多くの時間をデータ探しに取られていたと書いた6。記事は、そのデータは存在するのか、どこにあるのか、正しい出どころはどれか、使う権限はあるのか、信じてよいのか、という問いを挙げ、自社で作ったデータカタログ Amundsen でデータを見つけるまでの時間が導入前の 5% になったと報告している。この数字の測り方は書かれていない。
どの表からどの表を作ったかの記録、つまり来歴(データリネージ)の形式をそろえる取り組みもある。OpenLineage は、データセット・処理・実行という三つの要素で来歴を記録する共通の形式を定め、必要な情報は追加の項目として足せるようにしている7。OpenLineage の文書は、共通の形式が無かったころは各プロジェクトが来歴の収集を自前で作り、同じ作業を繰り返していたと書いている。
来歴は、法律が求める削除にも関わる。EU の一般データ保護規則(GDPR)の第 17 条は、本人の同意の撤回などの理由があるとき、管理者に個人データを不当な遅れなく消す義務を課す8。第 12 条は、本人からの求めに原則 1 か月以内に応じることを求め、必要なときはさらに 2 か月(最長で 3 か月)延ばせるとする。法律上の義務の履行などの例外もある。Delta Lake の論文も、GDPR のような規制に従うには、特定の利用者のデータを求めに応じて消せる必要があると書いている9。本稿は、ある顧客の行を元の表から作ったすべての表で見つけるには、来歴の記録が役立つと考える。ただし方法はそれだけではない。Lyft の記事は、個人データを一か所のデータベースに隔離する方法と、データカタログで個人データに印を付けておく方法を挙げ、後者への投資が今後増えると見ている6。
データオーナーを一か所に集めるか、作る部門に置くか
データの正しさに誰が責任を持つかについては、考え方が分かれている。Thoughtworks の Dehghani は 2019 年の論考で、データを中央の一つのチームに集める形は、扱う領域が単純でデータの使い方の種類が少ない組織では機能するが、領域が多く出どころも使い手も多様な企業では機能しないと書いた10。中央のチームは、正しいデータを渡す動機を持たない部門からデータを受け取ることになるという。Dehghani は、データを作る部門をデータオーナー(データの持ち主)とする形を、データメッシュと名付けて提案した。データオーナーは、データの正しさについての目標を示し、来歴の情報を添えて、使い手がデータを信じられるようにする。翌年の論考で Dehghani は、各部門に任せる決定と全体で決める決定の釣り合いを取るために、連邦型のガバナンスの層を残すと書いている11。
この考え方には批判もある。Goedegebuure らは 2024 年の論文で、実務者が書いた 114 本の記事を整理し、データメッシュを大きく導入するとデータの管理の費用が増えうることと、データが組織の各所に置かれるのでガバナンスが難しくなることを、実務者の懸念として挙げた12。Bode らは 2024 年の論文で 15 人の実務者に話を聞き、連邦型のガバナンスへの移行と、データの開発と保守の責任を各部門へ移すことに組織が苦労していると報告した13。どちらも実務者の意見をまとめたもので、測定ではない。
費用の管理も、同じくデータオーナーを決めることを前提にしている。クラウドの費用を管理する実務の業界団体 FinOps Foundation は、管理の対象にデータの基盤を含め14、Snowflake を例にした手順の文書で、問い合わせごとの費用を数え、費用のすべてを特定の処理と持ち主にたどれるようにすることを勧めている15。
シリーズの終わりで、まだ決着していない三つの問い
このシリーズが扱ってきた基盤の作り直しを通じて、まだ決着していない問いが残っている。ここでは、バッチとストリームの扱い、AI の処理と非構造データ、ガバナンスの規則を置くカタログの三つを挙げる。
一つ目は、まとめて処理するバッチと、届いた順に処理するストリームをどう扱うかである。Marz は 2011 年のブログで、正確なバッチ処理と、最新の数時間を補うリアルタイムの処理を並べて動かし、リアルタイムの結果は後でバッチの結果に置き換える形を示した16。この形は後に Lambda アーキテクチャと呼ばれた。Kafka を作った一人である Kreps は 2014 年に、同じ結果を二つの複雑な分散システムで出すコードを保守する苦労は直せないと批判し、ストリーム処理だけで済ませ、作り直すときは記録を再生する形を提案した17。その代わりに、作り直しの間は出力の保存先に 2 倍の容量が要るという。Google の Akidau らは 2015 年の論文で、終わりの無いデータでは正確さ・遅れ・費用のすべてを同時に最適にはできないと書いたうえで、バッチとストリームを一つのモデルで扱う方法を提案した18。同じ年の Flink の論文も、バッチとストリームを一つの処理系で扱えると主張している19。二つの系統で処理する形と一つの系統で処理する形の主張は 2011 年から 2015 年に出そろい、どちらかが定説になったと示す資料は見当たらない。
二つ目は、AI の処理と非構造データを同じ基盤に載せることである。Databricks の研究者は 2021 年の論文で、主な機械学習の仕組みはデータウェアハウスの上ではうまく動かず、画像や文書のような非構造データが増えていると書き、オブジェクトストレージ上のファイルにデータベースの機能を持たせたレイクハウスでそれを解くと主張した20。一方で、清華大学とカーネギーメロン大学などの Zeng らは 2023 年の論文で、レイクハウスが土台にする Parquet や ORC のような、列ごとにデータを並べるファイル形式は、数千の特徴量を読む学習や、埋め込みのベクトルの類似検索のような機械学習の処理には効率が悪いと報告した21。
三つ目は、アクセスの規則のようなガバナンスの決まりを、どのカタログに置くかである。前の回で見たカタログの争いのうち、Snowflake が始めた Apache Polaris は役割に基づくアクセス制御を持つ22。Databricks が始めた Unity Catalog の公開版は、Linux Foundation の傘下で初期段階のプロジェクトとして続き、ガバナンスとアクセスの機能を今後足すとしている23。LinkedIn の Das は 2020 年の記事で、データカタログは組み込みに時間がかかるので一度入れると替えにくいと書いた24。規則をどのカタログに置くかの選択は、後から変えにくい選択になる。
出典24件
-
Handy「What, exactly, is dbt?」dbt Labs, 2017(2026年改訂). https://www.getdbt.com/blog/what-exactly-is-dbt — dbt は ELT の T、ELT が広まった理由、分析担当者が作る側に(開発元の説明)。 ↩ ↩2
-
Jin ほか「ELT-Bench: An End-to-End Benchmark for Evaluating AI Agents on ELT Pipelines」arXiv, 2025. https://arxiv.org/abs/2504.04808 — ELT の手順の説明(プレプリント)。 ↩
-
Databricks「What is Unity Catalog?」2026年10月7日取得. https://docs.databricks.com/aws/en/data-governance/unity-catalog/ — アクセス制御・来歴・操作の記録・品質の監視・分類(開発元の文書)。 ↩
-
Schelter ほか「Automating Large-Scale Data Quality Verification」PVLDB 11(12), 2018. https://www.vldb.org/pvldb/vol11/p1781-schelter.pdf — 検査の無い出どころ、各チームの自前の検査、データの単体テスト(Amazon)。 ↩
-
Breck ほか「Data Validation for Machine Learning」SysML, 2019. https://mlsys.org/Conferences/2019/doc/2019/167.pdf — 700超の標本と評価用30日の警告、社内全体のテスト8万回超の6%失敗(Google)。 ↩
-
Grover「Amundsen — Lyft’s data discovery & metadata engine」Lyft Engineering, 2019. https://web.archive.org/web/20191113220804/https://eng.lyft.com/amundsen-lyfts-data-discovery-metadata-engine-62d27254fbb9 — 探す時間、信じてよいかの問い、5%、個人データの扱い方(自社報告)。 ↩ ↩2
-
OpenLineage「Object Model」2026年10月7日取得. https://openlineage.io/docs/spec/object-model — データセット・処理・実行の三要素と追加の項目。 ↩
-
European Union「Regulation (EU) 2016/679 (GDPR)」2016. https://eur-lex.europa.eu/eli/reg/2016/679/oj/eng — 第17条の消去の義務と例外、第12条3項の期限と延長。 ↩
-
Armbrust ほか「Delta Lake: High-Performance ACID Table Storage over Cloud Object Stores」PVLDB 13(12), 2020. https://www.vldb.org/pvldb/vol13/p3411-armbrust.pdf — 規制に従うため特定の利用者のデータを消す必要(Databricks)。 ↩
-
Dehghani「How to Move Beyond a Monolithic Data Lake to a Distributed Data Mesh」martinfowler.com, 2019. https://martinfowler.com/articles/data-monolith-to-mesh.html — 中央の形の限界とデータオーナーの責任(論考)。 ↩
-
Dehghani「Data Mesh Principles and Logical Architecture」martinfowler.com, 2020. https://martinfowler.com/articles/data-mesh-principles.html — 連邦型のガバナンスの層(論考)。 ↩
-
Goedegebuure ほか「Data Mesh: A Systematic Gray Literature Review」ACM Computing Surveys, 2024. https://arxiv.org/abs/2304.01062 — 114本の実務者の記事から、費用の増加とガバナンスの難しさ。 ↩
-
Bode ほか「Towards Avoiding the Data Mess: Industry Insights from Data Mesh Implementations」arXiv, 2024. https://arxiv.org/abs/2302.01713 — 15人への聞き取りで、連邦型への移行と責任の移転の苦労。 ↩
-
FinOps Foundation「What is FinOps?」2026. https://www.finops.org/introduction/what-is-finops/ — 管理の対象にデータの基盤を含む(業界団体)。 ↩
-
FinOps Foundation「FinOps for Data Cloud Platforms: Practical Scenarios」. https://www.finops.org/wg/finops-for-data-cloud-platforms/ — 費用を処理と持ち主にたどる(業界団体、Snowflake を例にした手順)。 ↩
-
Marz「How to beat the CAP theorem」2011. http://nathanmarz.com/blog/how-to-beat-the-cap-theorem.html — バッチとリアルタイムを並べる形。 ↩
-
Kreps「Questioning the Lambda Architecture」O’Reilly Radar, 2014. https://www.oreilly.com/radar/questioning-the-lambda-architecture/ — 二つのコードの保守は直せない、記録の再生、2倍の容量。 ↩
-
Akidau ほか「The Dataflow Model」PVLDB 8(12), 2015. https://www.vldb.org/pvldb/vol8/p1792-Akidau.pdf — 正確さ・遅れ・費用の兼ね合いと一つのモデルの提案(Google)。 ↩
-
Carbone ほか「Apache Flink: Stream and Batch Processing in a Single Engine」IEEE Data Eng. Bull., 2015. http://sites.computer.org/debull/A15dec/p28.pdf — 一つの処理系での扱い。 ↩
-
Armbrust ほか「Lakehouse」CIDR, 2021. https://www.cidrdb.org/cidr2021/papers/cidr2021_paper17.pdf — 機械学習と非構造データの主張(全員 Databricks)。 ↩
-
Zeng ほか「An Empirical Evaluation of Columnar Storage Formats」PVLDB 17(2), 2023. https://www.vldb.org/pvldb/vol17/p148-zeng.pdf — 列ごとに並べる形式は機械学習の処理に効率が悪い(§1, §5.8)。 ↩
-
Apache Polaris「Access Control」v1.8.0. https://polaris.apache.org/releases/1.8.0/managing-security/access-control/ — 役割に基づくアクセス制御。 ↩
-
Unity Catalog「Unity Catalog documentation」2026年10月7日取得. https://docs.unitycatalog.io/ — Linux Foundation 傘下の初期段階、ガバナンスとアクセスの機能は今後。 ↩
-
Das「DataHub: Popular metadata architectures explained」LinkedIn Engineering, 2020. https://www.linkedin.com/blog/engineering/data-management/datahub-popular-metadata-architectures-explained — データカタログは組み込みに時間がかかり替えにくい。 ↩
この記事はAIが執筆しています。内容には誤りが含まれる可能性があります。ご注意ください。