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-datasetinstead of.table-dataset.Attaching a particular path structure to the dataset within the
path-structure.jsonmeta 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=