Cubes comes with a command line tool that can:
Usage:
slicer command [command_options]
or:
slicer command sub_command [sub_command_options]
Commands are:
Command | Description |
---|---|
serve | Start OLAP server |
model validate | Validates logical model for OLAP cubes |
model json | Create JSON representation of a model (can be used) when model is a directory. |
test | Test the configuration and model against backends |
ddl | Generate DDL for SQL backend (experimental) |
edit | Launches the cubes modeller (if installed) (experimental) |
Run Cubes OLAP HTTP server.
Example server configuration file slicer.ini:
[server]
host: localhost
port: 5000
reload: yes
log_level: info
[workspace]
url: sqlite:///tutorial.sqlite
view_prefix: vft_
[model]
path: models/model_04.json
To run local server:
slicer serve slicer.ini
In the [server] section, space separated list of modules to be imported can be specified under option modules:
[server]
modules=cutom_backend
...
Note
Use –debug option if you would like to see more detailed error messages in the browser (generated by Flask).
For more information about OLAP HTTP server see OLAP Server
Usage:
slicer model convert --format bundle model.json model.cubesmodel
slicer model convert model.cubesmodel > model.json
Optional arguments:
--format model format: json or bundle
--force replace the target if exists
Usage:
slicer model validate /path/to/model/directory
slicer model validate model.json
slicer model validate http://somesite.com/model.json
Optional arguments:
-d, --defaults show defaults
-w, --no-warnings disable warnings
-t TRANSLATION, --translation TRANSLATION
model translation file
For more information see Model Validation in Logical Model and Metadata
Example output:
loading model wdmmg_model.json
-------------------------
cubes: 1
wdmmg
dimensions: 5
date
pog
region
cofog
from
-------------------------
found 3 issues
validation results:
warning: No hierarchies in dimension 'date', flat level 'year' will be used
warning: Level 'year' in dimension 'date' has no key attribute specified
warning: Level 'from' in dimension 'from' has no key attribute specified
0 errors, 3 warnings
The tool output contains recommendation whether the model can be used:
Every cube in the model is tested through the backend whether it can be accessed and whether the mappings reflect reality.
Usage:
slicer test [-h] [-E EXCLUDE_STORES] config
Positional arguments:
config server confuguration .ini file
Optional arguments:
-E EXCLUDE_STORES, --exclude-store EXCLUDE_STORES
Note
This is experimental command.
Generates DDL schema of a model for SQL backend
Usage:
slicer ddl [-h] [--dimension-prefix DIMENSION_PREFIX]
[--dimension-suffix DIMENSION_SUFFIX]
[--fact-prefix FACT_PREFIX]
[--fact-suffix FACT_SUFFIX]
[--backend BACKEND]
url model
positional arguments:
url SQL database connection URL
model model reference - can be a local file path or URL
optional arguments:
--dimension-prefix DIMENSION_PREFIX
prefix for dimension tables
--fact-prefix FACT_PREFIX
prefix for fact tables
--backend BACKEND backend name (currently limited only to SQL backends)
Usage:
slicer denormalize [-h] [-p PREFIX] [-f] [-m] [-i] [-s SCHEMA]
[-c CUBE] config
positional arguments:
config slicer confuguration .ini file
optional arguments:
-h, --help show this help message and exit
-p PREFIX, --prefix PREFIX
prefix for denormalized views (overrides config value)
-f, --force replace existing views
-m, --materialize create materialized view (table)
-i, --index create index for key attributes
-s SCHEMA, --schema SCHEMA
target view schema (overrides config value)
-c CUBE, --cube CUBE cube(s) to be denormalized, if not specified then all
in the model
If you plan to use denormalized views, you have to specify it in the configuration in the [workspace] section:
[workspace]
denormalized_view_prefix = mft_
denormalized_view_schema = denorm_views
# This switch is used by the browser:
use_denormalization = yes
The denormalization will create tables like denorm_views.mft_contracts for a cube named contracts. The browser will use the view if option use_denormalization is set to a true value.
Denormalize all cubes in the model:
slicer denormalize slicer.ini
Denormalize only one cube:
slicer denormalize -c contracts slicer.ini
Create materialized denormalized view with indexes:
slicer denormalize --materialize --index slicer.ini
Replace existing denormalized view of a cube:
slicer denormalize --force -c contracts slicer.ini
Schema where denormalized view is created is schema specified in the configuration file. Schema is shared with fact tables and views. If you want to have views in separate schema, specify denormalized_view_schema option in the configuration.
If for any specific reason you would like to denormalize into a completely different schema than specified in the configuration, you can specify it with the --schema option.
By default, a view name is the same as corresponding cube name. If there is denormalized_view_prefix option in the configuration, then the prefix is prepended to the cube name. Or it is possible to override the option with command line argument --prefix.
Note
The tool will not allow to create view if it’s name is the same as fact table name and is in the same schema. It is not even possible to --force it. A view prefix or different schema has to be specified.