# 導出データ ## 定義 導出データ(derived data)とは、他のデータセットに対するクエリや変換処理の結果として生成され、時間の経過とともに更新・追加され続けるデータを指す。RDBMS における「テーブル」が本来は最新状態のスナップショットを意味していたのに対し、列指向クエリエンジン(Redshift、BigQuery、Trino、Spark、DuckDB 等)の発展によって分析クエリの実行が容易になり、こうした導出データが大量に生成されるようになった結果、現代における「テーブル」は起点データそのものよりも、そこから派生した導出データを指すことが多くなっている(Source: [[@2023__DataEngineeringStudy__30分でわかるデータ指向アプリケーションデザイン]] p.19)。 ## 横断的知見 - (この節は今後、複数ソースの突き合わせで得られた知見を蓄積する。現時点では単一ソースからの知見のみ。) ## 未解決の問い - dbt のようなクエリ依存関係記述ツールと、Delta Lake / Iceberg / Apache Hudi のようなテーブルフォーマットが提供する time travel(スナップショット管理)は、導出データの履歴管理としてどう役割分担すべきか。 - 数千以上の導出データが生成される実運用(講演で紹介された Treasure Data 社の依存関係グラフのような規模)で、依存関係グラフの複雑さそのものをどう管理・削減すべきか。 - バッチ処理とストリーム処理の区別が薄れていく(Dataflow Model 以降の潮流)中で、導出データの「鮮度」をどう定義・保証すべきか。 ## 関連 - 概念: [[列指向OLAPデータベース]] - ソース: [[@2023__DataEngineeringStudy__30分でわかるデータ指向アプリケーションデザイン]](p.18-20 導出データの定義と Treasure Data 社の依存関係グラフ実例) ## 出典 - [[@2023__DataEngineeringStudy__30分でわかるデータ指向アプリケーションデザイン]](p.18-20)