Essbase BSO export.
What to expect from input:
To parse the export file you need to know two things:
Essbase BSO export. What to expect from input: * Space separated. * Quoted member names, non-quoted values. * Max file size is 2GB. * COLUMNS are specified in first line of the file: - List of quoted member names of single dense dimension, last field is empty. - No members from this dimension ever appear in the file again. - N members are specified, up to these many figures can appear in data lines. * POV lines appear periodically, those signal complete POV update: - List of quoted member names from distinct sparse dimensions. * DATA line consists of both partial POV updates and figures: - Quoted members of remaining dense dimensions (not present in POV lines). - Figures are non-quoted #Mi and numeric values, up to N occurrences per line. - Last field is always empty string, so last figure is followed by space. - Missing values from the left are marked as #Mi, from the right - skipped. To parse the export file you need to know two things: * Number of data storing dimensions in the cube. * Complete mapping of members to dimensions for storage dimensions.
(cells)
(cells spec)
Processor will get data point per each cell in file.
Requires complete member to dimension mapping in m->d and correct data dimension count in dim-count.
Processor gets seq of [{dimension member} value].
Default processor will return a vector of cells.
Errors out with ex-info if any member is mapped to nil.
Processor will get data point per each cell in file. Requires complete member to dimension mapping in m->d and correct data dimension count in dim-count. Processor gets seq of [{dimension member} value]. Default processor will return a vector of cells. Errors out with ex-info if any member is mapped to nil.
(data-field? field)
Take field, see if it's a possible Essbase value (empty, #Mi or number).
Take field, see if it's a possible Essbase value (empty, #Mi or number).
(data-line? row)
Check if last field is empty and penultimate field is a data-field.
Check if last field is empty and penultimate field is a data-field.
(dump->tsv m->d order out-path in-path & in-paths)
Given dump files consolidates them into single, row-expanded TSV.
One row per cell.
Requires complete member to dimension mapping in m->d and complete list of dimension names in order. It will be used to get dim-count right.
Given dump files consolidates them into single, row-expanded TSV. One row per cell. Requires complete member to dimension mapping in m->d and complete list of dimension names in order. It will be used to get dim-count right.
(members)
(members spec)
Processor gets member name per every occurrence in file.
Default processor creates a hash-set of member names.
It will discard all the figures, provided dim-count is correct, and only process members.
Processor gets member name per every occurrence in file. Default processor creates a hash-set of member names. It will discard all the figures, provided dim-count is correct, and only process members.
(records)
(records spec)
Processor will get data point per each data-line in file.
Requires complete member to dimension mapping in m->d and correct data storing dimension count in dim-count.
Processor gets seq of [{dimension member} {column value}].
Default processor will return a vector of such data points.
Errors out with ex-info if any member is mapped to nil.
Processor will get data point per each data-line in file. Requires complete member to dimension mapping in m->d and correct data storing dimension count in dim-count. Processor gets seq of [{dimension member} {column value}]. Default processor will return a vector of such data points. Errors out with ex-info if any member is mapped to nil.
(sniff-dimensions cells)
A processor for Cells that will return dimensions of first cell.
A processor for Cells that will return dimensions of first cell.
(sniff-unknown m->d)
Creates a processor for Members that will return a seq of distinct missing members.
Creates a processor for Members that will return a seq of distinct missing members.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close