# 導出データ
## 定義
導出データ(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)