データ基盤入門
データ基盤とは:DWH・データレイク・レイクハウスの違いと仕組み
業務のデータを分析に使うには、なぜ専用の基盤が要り、その形はなぜ何度も作り直されてきたのか
- 到達点
- データウェアハウス、データレイク、クラウドのデータウェアハウス、レイクハウスといった基盤を、「どこに置くか・どう計算するか・どう正しさを保つか」という繰り返し現れる問題への一つの答えとして読み、それぞれが何を得て何を諦めたかを説明できる状態
- 扱わないこと
- 個別製品の機能と操作は扱わない(Databricks・Snowflake・BigQuery・Iceberg の各シリーズで扱う)/製品の優劣の比較は扱わない(別の単発記事で扱う)/ストリーム処理の詳細と機械学習の基盤は扱わない(終章で、決着していない問いとして位置づけだけを示す)
- OLTPとOLAPの違い:分析を別コピーで動かす理由とHTAP
注文の登録のような業務の処理と売上の集計のような分析は、一回に触るデータの量が桁で違い、同じ資源で動かすと分析が業務の処理を遅らせる。分けると業務は守れるが、分析は遅れたコピーを読む。両方を一つで扱う HTAP でも、干渉を小さく抑えた設計は分析用のコピーを別に持つ。
- データウェアハウスとは?業務データベースとの違いとETL
部門ごとに業務システムからデータを抜き出すと、同じ問いに別々の数字が返る。データウェアハウスは、写すときに名前・コード・キーの食い違いをそろえ、過去の状態も行として残すことで、数字を一つにしようとした。そろえる場所をめぐって Inmon と Kimball は分かれ、倉庫を作った後でも指標の定義が割れると数字は割れる。
- 列指向データベースとは:行指向との違い、速い理由と苦手な処理
データウェアハウスの集計は、多数の行の少数の列を読む。分析用のデータベースは、データを列ごとに並べて圧縮し、多数の機械に分けて読むことで、読む量と一行ごとの処理の手間を減らした。その代わりに、一行ずつの書き込みと特定の行の取り出しは苦手になる。
- データレイクとは?仕組みと、データスワンプになる理由
データレイクは、安い汎用の機械に生のデータを形を決めずに置き、読むときに解釈する。取り込みは速く安くなったが、データの意味と品質を確かめる作業は読む人ごとに先送りされた。それを管理しなければデータの沼になる危険が、早くから指摘された。
- ストレージとコンピュートの分離とは:得たものと、遅さ・料金の代償
分析用のデータベースは、計算する機械のディスクにデータを置く形から、データを共有のオブジェクトストレージに置き、計算する機械を別に動かす形へ移った。保存と計算を別々に増減でき、止めれば払わずに済むようになったが、遠い保存先の遅さをキャッシュで補い、使った分の料金を自分で管理する負担が生じた。
- オープンテーブルフォーマットとは:版をログで差し替える仕組み
オブジェクトストレージ上のただのファイルは、更新の途中が見え、一覧の取得も遅い。Delta Lake・Iceberg・Hudi は、どのファイルがテーブルのどの版に属するかを記録して一回で差し替え、更新と過去の版を持たせた。ファイルの整理と、メタデータの在りかを握るカタログの課題は残った。
- データガバナンスとは:データの信頼を決める仕組みと残る課題
誰でも何でも保存して問い合わせられる基盤では、どのデータを信じてよいかを決める仕組みの必要がいっそう強まった。品質の検査をコードにし、来歴で写しをたどり、データオーナーに責任を持たせる。その仕組みをどこに置くかは割れており、バッチとストリーム、AI の処理をめぐる主張も並んだままである。