summary:
また,ACIDトランザクションや排他制御といった更新処理の一貫性保証機能,スケーラブルなストレージ制御,スキーマの進化管理など,いわゆる状態管理機能を仕様内部には持たず,これらを外部システムに委任することを前提とした設計となっている.
その目的は,特定の実行環境やストレージ基盤に依存しない,軽量かつ中立的な表データ記述フォーマットを実現することであり,これはIcebergやDelta Lakeのような分散処理最適化フォーマットとは異なるレイヤーに位置づけられる.
具体的には,OTFは次のような構成要素からなる.まず,データファイル本体[Data File]は一般的にはCSV[Comma-Separated Values]やTSV[Tab-Separated Values]といったシンプルなテキスト形式で記述される.表形式データの各行はレコード,各列は属性[フィールド]に相当する.なお,JSON,SQLite,Excel形式など他のデータフォーマットもサポートしている場合がある.
次に,スキーマファイル[Schema File]はJSONまたはYAML形式で記述され,各列[フィールド]の名前,データ型[string, number, date, booleanなど],必須・任意などの制約,値の検証ルール[例:正規表現,列値の範囲],意味論的情報[例:この列はISO 8601形式の日付である等]といった情報を含む.このスキーマファイルは「Table Schema」とも呼ばれ,Frictionless Data標準の一部として定義されている.
そして,メタデータ定義[Metadata]はテーブル全体の情報[作成者,データセットのタイトル,説明,ライセンス,発行日など]を記述し,再利用性と出所の明確化を支援する.これは一般的に「Datapackage.json」というファイルに記述される.
このようにOTFは,データ本体+構造定義+意味定義という3層構造を基本とし,機械処理によるバリデーションと,意味的相互運用性を実現する.これにより,異なるシステム間でのデータ交換や長期的なデータ保存において,データの整合性と解釈の一貫性を確保することができる.
Mathematics is the language with which God has written the universe.