データセット
MIDAS のプロジェクトは、CSV ファイルから読み込んだデータと、そこから SQL やデータ変換で生成した派生データで構成されます。このページでは、データセットの種類と、それぞれの動作について説明します。
データセットの種類
Primary Dataset
CSV や TSV ファイルを読み込むと、Primary Dataset が作成されます。読み込んだデータがそのまま格納され、セルの直接編集や行の除外ができます。
Project Overview には元ファイルの名前、読み込み日時、ファイルサイズがメタデータとして表示されます。
Derived Dataset
SQL Editor、Crosstab、Reshape、Dummy Coding などの変換操作で生成されるデータセットです。どの親データセットから、どの操作で生成されたかが記録されます。
Derived Dataset のデータは直接編集できません。データを変更するには、変換操作を修正するか、親データセットを更新します。
フィルタ操作などで一時的に生成されるデータ(Ephemeral Dataset)は、プロジェクトファイルには保存されません。Data Table の「Save as Dataset」で Derived Dataset に変換すると、プロジェクトに残ります。
データ型の自動推論
CSV ファイルを読み込むと、各列のデータ型が自動的に判定されます。MIDAS が対応しているデータ型(boolean, int64, float64, date, datetime, string, enum)についてはデータの準備と読み込みを参照してください。
判定には優先順位があり、boolean、数値(int64/float64)、日付(date/datetime)の順にチェックされます。どれにも該当しない場合は string になります。enum 型は自動推論されず、string 型から手動で変換して作成します。
空欄や欠損値は null として扱われ、型の判定には影響しません。
Derived Dataset のスキーマ継承
SQL Editor などで Derived Dataset を作成すると、結果の列は親データセットのメタデータを引き継ぎます。具体的には、測定尺度(名義・順序・間隔・比率)、データ型、enum 名が引き継がれます。
引き継ぎのルールは次のとおりです。
- 結果の列名と同じ名前の列が親データセットにあれば、その設定を引き継ぐ
- 親が複数ある場合(JOIN など)は、FROM 句で最初に指定したデータセットが優先される
- 該当する親の列がない場合は、クエリ結果から自動判定される
たとえば、親データセットで郵便番号の列を比率尺度から名義尺度に変更していた場合、SQL で SELECT zip_code FROM ... とすると、名義尺度の設定がそのまま引き継がれます。
ただし、CAST(category AS INTEGER) のように値の意味が変わる変換を行った場合、引き継がれた尺度が不適切になることがあります。そのような場合は手動で修正してください。
カスケード削除
データセットを削除すると、そのデータセットに依存するリソースが連鎖的に削除されます。
削除されるもの
- そのデータセットを親に持つ Derived Dataset(推移的に、孫・ひ孫も含む)
- そのデータセットで学習した Model
削除されないもの
- Report(ただし、削除されたデータセットを参照しているレポート要素はエラーになります)
たとえば、Primary Dataset「A」から Derived Dataset「B」を作成し、「B」から Derived Dataset「C」と Model「M」を作成している場合、「A」を削除すると「B」「C」「M」もすべて削除されます。
削除前に影響範囲を確認するには、Project Lineage タブで依存関係を確認してください。
遅延評価とキャッシュ
Derived Dataset は、必要になるまでデータを計算しません。たとえば、プロジェクトファイルを開いた直後は、Derived Dataset のデータはまだ計算されていない状態です。Data Table タブやグラフでそのデータセットを参照したタイミングで初めて計算が実行され、結果がメモリにキャッシュされます。
親データセットが更新されると(再読み込み、型変更、セル編集など)、下流にある Derived Dataset のキャッシュはすべて破棄されます。次にデータが必要になったとき、自動的に再計算されます。
依存する Model は「stale」(古い状態)としてマークされ、再学習するまで予測に使えなくなります。
Materialized View
Derived Dataset のデータは、デフォルトではプロジェクトファイル(MDS)に保存されません。プロジェクトを開くたびに、親データセットから再計算されます。
Materialized View を有効にすると、計算結果が MDS ファイルに含まれるようになります。
- 無効(デフォルト): ファイルサイズが小さい。データは必要なときに再計算される
- 有効: ファイルサイズが大きくなる。プロジェクトを開いたとき、すぐにデータが使える
計算コストの高い SQL クエリや大規模なデータ変換を含むデータセットで有効にすると便利です。Materialized View を有効にすると MDS ファイルにデータが含まれるため、ファイルを第三者に共有する際はデータの内容に注意してください。設定は Project Overview の Datasets セクションから変更できます。
データセットのリネームと SQL の自動更新
Project Overview でデータセットの名前を変更すると、そのデータセットを参照している SQL クエリが自動的に更新されます。
たとえば、データセット「sales_2024」を「sales」にリネームすると、Derived Dataset の SQL 内の FROM "sales_2024" が FROM "sales" に書き換わります。更新は SQL の構文解析に基づいて行われるため、文字列リテラルやコメント内の同名テキストは影響を受けません。
リネーム後、影響を受けた Derived Dataset のキャッシュは破棄され、次回アクセス時に再計算されます。
See also
- データの準備と読み込み - ファイル形式、データ型、測定尺度
- 列の型変換 - データ型の手動変更
- SQL Editor - SQL で Derived Dataset を作成
- Reshape - データ形状の変換
- Project Overview - データセットの一覧管理
- Project Lineage - 依存関係の可視化