Table Datasets V2
Table Datasets V3 is the current table dataset storage format Kart uses, and is a good starting point for learning about Table Datasets V2. Kart 0.10 continues to support Table Datasets V2, but all newly created repos will use Table Datasets V3.
Differences
A V2 table dataset is exactly like a V3 table dataset, except:
The folder that contains the entire dataset is called
.sno-dataset
instead of.table-dataset
.Attaching a particular path structure to the dataset within the
path-structure.json
meta item is not supported - instead, all V2 datasets use the same path structure, known as the legacy path structure.
Legacy path-structure
The legacy path structure information isn’t written to a
path-structure.json
file, but if it was, it would look as follows:
{
"scheme": "msgpack/hash",
"branches": 256,
"levels": 2,
"encoding": "hex"
}
This means that every feature path looks something like the following:
3c/57/kU0=
This example is for a feature with one primary key column only, and a
primary key value of [77]
.
To generate the path to the file:
[77]
-> MessagePack -> bytes([0x91, 0x4d])
-> SHA256 ->
bytes([0x3c, 0x57, 0x8e, 0x75, ...])
-> hex encode first two bytes
as a 2-level path -> 3c/57
To generate the filename:
[77]
-> MessagePack -> bytes([0x91, 0x4d])
-> Base64 -> kU0=