---
title: データセット
description: Primary Dataset と Derived Dataset の違い、データ型の自動推論、スキーマ継承、カスケード削除、遅延評価とキャッシュ、Materialized View、リネーム時の SQL 自動更新について説明します。
priority: 0.6
---

# データセット {#datasets}

MIDAS のプロジェクトは、CSV ファイルから読み込んだデータと、そこから SQL やデータ変換で生成した派生データで構成されます。このページでは、データセットの種類と、それぞれの動作について説明します。

## データセットの種類 {#dataset-types}

### Primary Dataset {#primary-dataset}

CSV や TSV ファイルを読み込むと、Primary Dataset が作成されます。読み込んだデータがそのまま格納され、セルの直接編集や行の除外ができます。

[Project Overview](project-overview) には元ファイルの名前、読み込み日時、ファイルサイズがメタデータとして表示されます。

### Derived Dataset {#derived-dataset}

[SQL Editor](sql-editor)、[Crosstab](crosstab)、[Reshape](reshape)、[Dummy Coding](dummy-coding) などの変換操作や、[Filtered Data](filtered-data) の **Save as Dataset** で生成されるデータセットです。どの親データセットから、どの操作で生成されたかが記録されます。

Derived Dataset のデータは直接編集できません。データを変更するには、変換操作を修正するか、親データセットを更新します。

**Ephemeral Dataset** は、プロジェクトに永続化されない一時的なデータセットです。Primary Dataset と Derived Dataset がプロジェクトに保存されるのに対し、Ephemeral Dataset はタブを開いている間だけ存在し、タブを閉じると破棄されます。[Filtered Data](filtered-data) タブのフィルタ結果などがこれにあたります。

タブを開いたままプロジェクトを保存すると、タブを復元するためにそのデータもプロジェクトファイルに含まれます。どのタブからも参照されていない Ephemeral Dataset は保存時に含まれません。フィルタ結果を恒久的に残すには、[Filtered Data](filtered-data) の **Save as Dataset** や [Data Table](data-table) の **Save Filtered Data** で Derived Dataset として保存します。

## データ型の自動推論 {#automatic-data-type-inference}

CSV ファイルを読み込むと、各列のデータ型が自動的に判定されます。MIDAS が対応しているデータ型（boolean, int64, float64, date, datetime, string, enum）については[データの準備と読み込み](data-preparation#data-types)を参照してください。

判定には優先順位があり、boolean、数値（int64/float64）、日付（date/datetime）の順にチェックされます。どれにも該当しない場合は string になります。enum 型は自動推論されず、string 型から[手動で変換](enum-definitions)して作成します。

空欄や欠損値は `null` として扱われ、型の判定には影響しません。

## Derived Dataset のスキーマ継承 {#schema-inheritance-in-derived-datasets}

SQL Editor などで Derived Dataset を作成すると、結果の列は親データセットのメタデータを引き継ぎます。具体的には、測定尺度（名義・順序・間隔・比率）、データ型、enum 名が引き継がれます。

引き継ぎのルールは次のとおりです。

- 結果の列名と同じ名前の列が親データセットにあれば、その設定を引き継ぐ
- 測定尺度・データ型・enum 名は独立して継承される。親が複数ある場合（JOIN など）、同名の列が複数の親にあれば FROM 句で先に指定したデータセットが優先され、ある属性を先の親で取得できなければ後続の親から補完される
- 該当する親の列がない場合は、クエリ結果から自動判定される

たとえば、親データセットで郵便番号の列を間隔尺度から名義尺度に変更していた場合、SQL で `SELECT zip_code FROM ...` とすると、名義尺度の設定がそのまま引き継がれます。

ただし、`CAST(category AS INTEGER)` のように結果の型が変わる変換では、親の測定尺度は引き継がれず、結果の型から自動判定されます。自動判定の結果が意図と異なる場合は手動で修正してください。

## カスケード削除 {#cascade-deletion}

データセットを削除すると、そのデータセットに依存するリソースが連鎖的に削除されます。

**削除されるもの**
- そのデータセットを親に持つ Derived Dataset（推移的に、孫・ひ孫も含む）
- そのデータセットで適合した Model

**削除されないもの**
- Report（ただし、削除されたデータセットを参照しているレポート要素はレポートから自動的に除去されます）

たとえば、Primary Dataset「A」から Derived Dataset「B」を作成し、「B」から Derived Dataset「C」と Model「M」を作成している場合、「A」を削除すると「B」「C」「M」もすべて削除されます。

削除前に影響範囲を確認するには、[Project Lineage](project-lineage) タブで依存関係を確認してください。

## 遅延評価とキャッシュ {#lazy-evaluation-and-caching}

Derived Dataset は、必要になるまでデータを計算しません。たとえば、プロジェクトファイルを開いた直後は、Derived Dataset のデータはまだ計算されていない状態です。[Data Table](data-table) タブやグラフでそのデータセットを参照したタイミングで初めて計算が実行され、結果がメモリにキャッシュされます。

親データセットが更新されると（再読み込み、型変更、セル編集など）、下流にある Derived Dataset のキャッシュはすべて破棄されます。次にデータが必要になったとき、自動的に再計算されます。

依存する Model も自動的に再推定されます。再推定が完了するまで、そのモデルの推定結果は表示されません。

## Materialized View {#materialized-view}

Derived Dataset のデータは、デフォルトではプロジェクトファイル（MDS）に保存されません。プロジェクトを開くたびに、親データセットから再計算されます。

Materialized View を有効にすると、計算結果が MDS ファイルに含まれるようになります。

- **無効（デフォルト）**: ファイルサイズが小さい。データは必要なときに再計算される
- **有効**: ファイルサイズが大きくなる。プロジェクトを開いたとき、すぐにデータが使える

計算コストの高い SQL クエリや大規模なデータ変換を含むデータセットで有効にすると便利です。Materialized View を有効にすると MDS ファイルにデータが含まれるため、ファイルを第三者に共有する際はデータの内容に注意してください。設定は [Project Overview](project-overview) の Datasets セクションから変更できます。

予測区間や DoE のプロット用データなど、分析結果から作成される一部のデータセットは、操作から再計算できません。これらのデータセットでは Materialized View が常に有効で、無効にできません。

## データセットのリネームと SQL の自動更新 {#renaming-datasets-and-automatic-sql-updates}

[Project Overview](project-overview) でデータセットの名前を変更すると、そのデータセットを参照している SQL クエリが自動的に更新されます。

たとえば、データセット「sales_2024」を「sales」にリネームすると、Derived Dataset の SQL 内の `FROM "sales_2024"` が `FROM "sales"` に書き換わります。更新は SQL の構文解析に基づいて行われるため、文字列リテラルやコメント内の同名テキストは影響を受けません。

自動更新の対象は、`FROM "sales_2024"` のようにダブルクォートで囲んだテーブル名参照です。`FROM sales_2024` のように引用符なしで記述した参照は更新されないため、リネーム後に SQL を手動で修正してください。

リネーム後、影響を受けた Derived Dataset のキャッシュは破棄され、次回アクセス時に再計算されます。

## See also {#see-also}

- **[データの準備と読み込み](data-preparation)** - ファイル形式、データ型、測定尺度
- **[列の型変換](column-type-conversion)** - データ型の手動変更
- **[SQL Editor](sql-editor)** - SQL で Derived Dataset を作成
- **[Reshape](reshape)** - データ形状の変換
- **[Project Overview](project-overview)** - データセットの一覧管理
- **[Project Lineage](project-lineage)** - 依存関係の可視化
