# Dremel: Interactive Analysis of Web-Scale Datasets - Designed for [[columnar]] data strucutre. ![[record-vs-column-oriented.png]] A graph from [[database/dremel]] paper explaining the difference between record-oriented storage and column-oriented storage. ## Algorithms [The striping and assembly algorithms from the Dremel paper](https://github.com/julienledem/redelm/wiki/The-striping-and-assembly-algorithms-from-the-Dremel-paper) - Picture serializing a record as (depth-first) traversing a tree. - When a leaf is reached, write out the value for the corresponding column, with the maximum definition level for this column (meaning it is defined) and the current repetition level. - When a field is not defined, the definition level will be smaller than the definition level of this field. > Only repeated fields increment the repetition level, only non-required fields > increment the definition level. <!-- vi:set tw=64 cc=64: -->