コンテンツにスキップ
FDL
Esc
↑↓移動↵開く⌘Jプレビュー
このページの内容

仕様

FDL 0.1(草案)の規範となる説明。何を決め、何をホストに任せ、どんな用語を使うか。

FDL 0.1 の仕様です。草案で、実装を作りながら変えていきます。ツールはこの仕様に合わせて作り、ツールと仕様が食い違ったときは、先に仕様を直してからツールを合わせます。この日本語訳は参考で、英語版を正とします。

FDL は、DuckLake のカタログのバージョンを残すための、置き場のファイル配置です。Git がコミットを保存する形にならっています。どのファイルを置き場のどこに置き、読み手と書き手がそれをどう扱うかを決めます。サーバーは要りません。置き場に求めるのは、読む・書く・条件付きで書くの 3 つです。

「must(しなければならない)」は必須、「may(してよい)」は任意、「should(するのがよい)」は推奨です。should と違うことをするツールには、それなりの理由があります。

決めること

  • リポジトリの配置と、各ファイルの名前と中身(配置)
  • バージョンの記録の項目と、固めたカタログ(バージョン)
  • ref の中身と、動かすときの決まり(ref)
  • データファイルを消してよいとき、バージョンの保持期間を終わらせる手順と取り下げる手順(データファイル)
  • 読み手がバージョンを見つけて開く手順と、誰が作ったかの確かめ方(読む)
  • 書き込みの順番と、push が断られるとき(書く)
  • HTTP で push を受け付けるホストが応えるリクエスト(HTTP での push)

ホストに任せること

  • 誰がリポジトリを読めるか、誰が main を動かせるか。1 つのリポジトリの中身はすべて同じ人が読める
  • 認証、URL の形、保持期間の既定値
  • DuckLake のカタログそのものの中身。これは DuckLake の仕様が決める

形式の中に、ホストやサービスの名前は出てきません。ホストが足す項目は、仕様が空けておいた場所に置きます。

用語

用語 意味
置き場(store) リポジトリを置く場所。バケットかフォルダ
リポジトリ(repository) 置き場の 1 つのプレフィックス(ルート)の下にあるもの全部
ルート(root) そのプレフィックス。/ で終わる。この仕様のパスはルートからの相対パス
バージョン(version) 固めたカタログ 1 つとその記録。一度書いたら変えない
ref バージョン ID を書いたファイル。ブランチ、タグ、リクエストは ref
作業カタログ(working catalog) 書き手自身の SQLite の DuckLake カタログ。リポジトリには置かない
データファイル(data file) DuckLake が書く Parquet ファイル。バージョンの間で共有する
ホスト(host) リポジトリを預かり、権限を管理するサービス
猶予期間(grace period) どこからも参照されないデータファイルを、消すまで残しておく期間。ホストが決めなければ 7 日

DuckLake のスナップショットとバージョンの関係は、作業ブランチの小さなコミットと、それを squash して main に入れたコミットの関係と同じです。スナップショットは書き込みのたびにでき、カタログの中に残ります。人に見せる単位はバージョンです。

このページは役に立ちましたか?