Documentation
¶
Overview ¶
dbget is a command line tool to export OpenM++ model metadata, input parameters and run results. It is reading from model database and produce CSV, TSV or JSON output.
Most generic format to specify source data is to use connection string and driver name:
dbget -dbget.Do model-list -dbget.Database "Database=model.sqlite; Timeout=86400; OpenMode=ReadOnly;" -dbget.DatabaseDriver SQLite
Dget can read model data from SQLite, MySQL, PostgreSQL, MS SQL, Oracle and DB2.
By default openM++ is using SQLite database and it is enough to specife path to model.sqlite file:
dbget -do model-list -db some/dir/model.sqlite dbget -do model-list -dbget.Sqlite some/dir/model.sqlite
If SQLite database file name is the same as model name and located in current directory then it is enough to specify model name only:
dbget -m modelOne -do all-runs
As result of above command dbget will open modelOne.sqlite database file in current directory and do "all-runs" command to output all model runs result and input parameters.
Most often used options of dbget do have a short form to reduce typing on command line. For example: -db is a short version of: -dbget.Sqlite option and -do is a short of -dbget.Do. Longer version of options can be used on command line and ini files.
For example, if there is my.ini file:
[dbget] Do = model-list ; dbget action: 'model-iist' = get list of the models Sqlite = some/dir/model.sqlite ; path to model SQLite database file
then commands below are equal:
dbget -ini my.ini dbget -OpenM.IniFile my.ini dbget -do model-list -db some/dir/model.sqlite dbget -dbget.Do model-list -dbget.Sqlite some/dir/model.sqlite
By default dbget produce .csv output file(s), e.g. commands above will create model-list.csv file. It is also possible to produce .tsv output and, for some commands, .json output:
dbget -db modelOne.sqlite -do model-list dbget -db modelOne.sqlite -do model-list -csv dbget -db modelOne.sqlite -do model-list -tsv dbget -db modelOne.sqlite -do model-list -json dbget -db modelOne.sqlite -do model-list -dbget.As csv dbget -db modelOne.sqlite -do model-list -dbget.As tsv dbget -db modelOne.sqlite -do model-list -dbget.As json
By default dbget write results into the file and user can redirect it to console:
dbget -db modelOne.sqlite -do model-list -dbget.ToConsole dbget -db modelOne.sqlite -do model-list -pipe
It is convenient to use -pipe as a short form of: -dbget.ToConsole -OpenM.LogToConsole=false to produce output suitable for command pipes.
**Important:** By using -pipe you are suppressing any console error message output and therefore you must check dbget exit code or enable additonal log output to file by using -OpenM.LogToFile option.
By default dbget produces language specific output based on match of user OS language to model languages. For example, if user OS language is fr-CA then output will be created from model FR language, if it is exists in the model database. If there are no laguage matched then output created in default model language.
dbget -m modelOne -do all-runs
Above -do all-runs option producrs output of all modelOne model runs input parameters and output tables data into .csv files. Dimension labels in those .csv files are language specific, for example it can be Männlich, Weiblich for Deutsche OS version.
User can override default OS language:
dbget -m modelOne -do all-runs -lang FR dbget -m modelOne -do all-runs -lang fr-CA dbget -m modelOne -do all-runs -lang isl dbget -m modelOne -do all-runs -dbget.Language EN dbget -m modelOne -do all-runs -dbget.Language en-CA dbget -m modelOne -do all-runs -dbget.Language isl
If isl = Icelandic language not found in model database then closest languge will be used, for example: DA, or, if no match found in database then it is a default model language.
If user do not want language specific labels in the output then -dbget.NoLanguage option can be used. In that case dimension items will be M, F codes instead of Male, Female lables.
dbget -m modelOne -do all-runs -dbget.NoLanguage
If user want language neutral output with dimension items id's: 0, 1 instead codes: M, F then -dbget.IdCsv option can be used. In that case dimension items will be M, F codes instead of Male, Female lables.
dbget -m modelOne -do all-runs -dbget.IdCsv
**dbget commands (actions)**
Get list of the models from database:
dbget -db modelOne.sqlite -do model-list dbget -db modelOne.sqlite -do model-list -dbget.As csv dbget -db modelOne.sqlite -do model-list -dbget.As tsv dbget -db modelOne.sqlite -do model-list -dbget.As json dbget -db modelOne.sqlite -do model-list -csv -dbget.ToConsole dbget -db modelOne.sqlite -do model-list -tsv -dbget.ToConsole dbget -db modelOne.sqlite -do model-list -json -dbget.ToConsole dbget -db modelOne.sqlite -do model-list -tsv -pipe dbget -db modelOne.sqlite -do model-list -dbget.Language EN dbget -db modelOne.sqlite -do model-list -lang fr-CA dbget -db modelOne.sqlite -do model-list -lang isl dbget -db modelOne.sqlite -do model-list -dbget.Notes -lang en-CA dbget -db modelOne.sqlite -do model-list -dbget.Notes -lang fr-CA dbget -db modelOne.sqlite -do model-list -dbget.Notes -lang isl dbget -db modelOne.sqlite -do model-list -dbget.NoLanguage dbget -dbget.Sqlite my/dir/modelOne.sqlite -dbget.Do model-list dbget -dbget.Do model-list -dbget.Database "Database=model.sqlite; Timeout=86400; OpenMode=ReadOnly;" -dbget.DatabaseDriver SQLite
Get model metadata from database:
dbget -m modelOne -do model dbget -m modelOne -do model -csv dbget -m modelOne -do model -tsv dbget -m modelOne -do model -json dbget -m modelOne -do model -pipe dbget -m modelOne -do model -lang en-CA dbget -m modelOne -do model -lang fr-CA dbget -m modelOne -do model -lang isl dbget -m modelOne -do model -lang fr-CA -dbget.Notes dbget -m modelOne -do model -dbget.NoLanguage dbget -m modelOne -do model -dir my/output/dir dbget -m modelOne -do model -f my-model.csv dbget -dbget.ModelName modelOne -dbget.Do model -dbget.As csv -dbget.ToConsole -dbget.Language FR
Get list of model runs:
dbget -m modelOne -do run-list dbget -m modelOne -do run-list -csv dbget -m modelOne -do run-list -tsv dbget -m modelOne -do run-list -json dbget -m modelOne -do run-list -lang fr-CA dbget -m modelOne -do run-list -dbget.NoLanguage dbget -m modelOne -do run-list -dir my/output/dir dbget -m modelOne -do run-list -f my-runs.csv dbget -m modelOne -do run-list -pipe dbget -m modelOne -do run-list -lang fr-CA -dbget.Notes dbget -db my/dir/modelOne.sqlite -dbget.ModelName modelOne -dbget.Do run-list
Get all model runs parameters and output table values:
dbget -m modelOne -do all-runs dbget -m modelOne -do all-runs -lang fr-CA dbget -m modelOne -do all-runs -dbget.NoLanguage dbget -m modelOne -do all-runs -dbget.IdCsv dbget -m modelOne -do all-runs -tsv dbget -m modelOne -do all-runs -dir my/output/dir dbget -m modelOne -do all-runs -pipe dbget -m modelOne -do all-runs -dbget.NoZeroCsv dbget -m modelOne -do all-runs -dbget.NoNullCsv dbget -m modelOne -do all-runs -dbget.NoZeroCsv -dbget.NoNullCsv dbget -dbget.ModelName modelOne -dbget.Do all-runs
Get model run parameters and output table values:
dbget -m modelOne -do run -dbget.FirstRun dbget -m modelOne -do run -dbget.LastRun dbget -m modelOne -do run -r Default-4 dbget -m modelOne -do run -r Default-4 -lang fr-CA dbget -m modelOne -do run -r Default-4 -dbget.NoLanguage dbget -m modelOne -do run -r Default-4 -dbget.IdCsv dbget -m modelOne -do run -r Default-4 -tsv dbget -m modelOne -do run -r Default-4 -pipe dbget -m modelOne -do run -r Default-4 -dbget.NoZeroCsv dbget -m modelOne -do run -r Default-4 -dbget.NoNullCsv dbget -m modelOne -do run -r Default-4 -dbget.NoZeroCsv -dbget.NoNullCsv dbget -dbget.ModelName modelOne -dbget.Do run -dbget.Run Default
Get parameter run values:
dbget -m modelOne -r Default -parameter ageSex dbget -m modelOne -r Default -parameter ageSex -lang fr-CA dbget -m modelOne -r Default -parameter ageSex -dbget.NoLanguage dbget -m modelOne -r Default -parameter ageSex -dbget.IdCsv dbget -m modelOne -r Default -parameter ageSex -tsv dbget -m modelOne -r Default -parameter ageSex -pipe dbget -m modelOne -dbget.FirstRun -parameter ageSex dbget -m modelOne -dbget.LastRun -parameter ageSex dbget -dbget.ModelName modelOne -dbget.Do parameter -dbget.Run Default -dbget.Parameter ageSex
Get output table values:
dbget -m modelOne -r Default -table ageSexIncome dbget -m modelOne -r Default -table ageSexIncome -lang fr-CA dbget -m modelOne -r Default -table ageSexIncome -dbget.NoLanguage dbget -m modelOne -r Default -table ageSexIncome -dbget.IdCsv dbget -m modelOne -r Default -table ageSexIncome -tsv dbget -m modelOne -r Default -table ageSexIncome -pipe dbget -m modelOne -r Default -table ageSexIncome -dbget.NoZeroCsv dbget -m modelOne -r Default -table ageSexIncome -dbget.NoNullCsv dbget -m modelOne -dbget.FirstRun -table ageSexIncome dbget -m modelOne -dbget.LastRun -table ageSexIncome dbget -dbget.ModelName modelOne -dbget.Do table -dbget.Run Default -dbget.Table ageSexIncome
Get output table sub-values (get accumulators):
dbget -m modelOne -r Default -sub-table ageSexIncome dbget -m modelOne -r Default -sub-table ageSexIncome -lang fr-CA dbget -m modelOne -r Default -sub-table ageSexIncome -dbget.NoLanguage dbget -m modelOne -r Default -sub-table ageSexIncome -dbget.IdCsv dbget -m modelOne -r Default -sub-table ageSexIncome -tsv dbget -m modelOne -r Default -sub-table ageSexIncome -pipe dbget -m modelOne -r Default -sub-table ageSexIncome -dbget.NoZeroCsv dbget -m modelOne -r Default -sub-table ageSexIncome -dbget.NoNullCsv dbget -m modelOne -dbget.FirstRun -sub-table ageSexIncome dbget -m modelOne -dbget.LastRun -sub-table ageSexIncome dbget -dbget.ModelName modelOne -dbget.Do sub-table -dbget.Run Default -dbget.Table ageSexIncome
Get output table all sub-values, including derived (get all accumulators):
dbget -m modelOne -r Default -sub-table-all ageSexIncome dbget -m modelOne -r Default -sub-table-all ageSexIncome -lang fr-CA dbget -m modelOne -r Default -sub-table-all ageSexIncome -dbget.NoLanguage dbget -m modelOne -r Default -sub-table-all ageSexIncome -dbget.IdCsv dbget -m modelOne -r Default -sub-table-all ageSexIncome -tsv dbget -m modelOne -r Default -sub-table-all ageSexIncome -pipe dbget -m modelOne -r Default -sub-table-all ageSexIncome -dbget.NoZeroCsv dbget -m modelOne -r Default -sub-table-all ageSexIncome -dbget.NoNullCsv dbget -m modelOne -dbget.FirstRun -sub-table-all ageSexIncome dbget -m modelOne -dbget.LastRun -sub-table-all ageSexIncome -tsv -pipe dbget -m modelOne -dbget.LastRun -sub-table-all ageSexIncome -tsv -pipe -dbget.NoZeroCsv -dbget.NoNullCsv dbget -dbget.ModelName modelOne -dbget.Do sub-table-all -dbget.Run Default -dbget.Table ageSexIncome
Get list of input parameters sets (list of input scenarios, list of worksets):
dbget -m modelOne -do set-list dbget -m modelOne -do set-list -csv dbget -m modelOne -do set-list -tsv dbget -m modelOne -do set-list -json dbget -m modelOne -do set-list -lang fr-CA dbget -m modelOne -do set-list -dbget.NoLanguage dbget -m modelOne -do set-list -dir my/output/dir dbget -m modelOne -do set-list -f my-scenarios.csv dbget -m modelOne -do set-list -pipe dbget -m modelOne -do set-list -lang fr-CA -dbget.Notes dbget -db my/dir/modelOne.sqlite -dbget.ModelName modelOne -dbget.Do set-list
Get all parameters from all input sets (a.k.a. input scenarios or worksets):
dbget -m modelOne -do all-sets dbget -m modelOne -do all-sets -lang fr-CA dbget -m modelOne -do all-sets -dbget.NoLanguage dbget -m modelOne -do all-sets -dbget.IdCsv dbget -m modelOne -do all-sets -tsv dbget -m modelOne -do all-sets -pipe dbget -dbget.ModelName modelOne -dbget.Do all-sets
Get parameter input set (a.k.a. input scenario or workset) values:
dbget -m modelOne -s Default -parameter-set ageSex dbget -m modelOne -s Default -parameter-set ageSex -lang fr-CA dbget -m modelOne -s Default -parameter-set ageSex -dbget.NoLanguage dbget -m modelOne -s Default -parameter-set ageSex -dbget.IdCsv dbget -m modelOne -s Default -parameter-set ageSex -tsv dbget -m modelOne -s Default -parameter-set ageSex -pipe dbget -dbget.ModelName modelOne -dbget.Do parameter-set -dbget.Set Default -dbget.Parameter ageSex
Get all parameters from input set (a.k.a. input scenario or workset):
dbget -m modelOne -s Default -do set dbget -m modelOne -s Default -do set -lang fr-CA dbget -m modelOne -s Default -do set -dbget.NoLanguage dbget -m modelOne -s Default -do set -dbget.IdCsv dbget -m modelOne -s Default -do set -tsv dbget -m modelOne -s Default -do set -pipe dbget -dbget.ModelName modelOne -dbget.Do set -dbget.Set Default
Get entity microdata:
dbget -m modelOne -r "Microdata in database" -microdata Person dbget -m modelOne -r "Microdata in database" -microdata Person -lang fr-CA dbget -m modelOne -r "Microdata in database" -microdata Person -dbget.NoLanguage dbget -m modelOne -r "Microdata in database" -microdata Person -dbget.IdCsv dbget -m modelOne -r "Microdata in database" -microdata Person -tsv dbget -m modelOne -r "Microdata in database" -microdata Person -pipe dbget -m modelOne -r "Microdata in database" -microdata Person -dbget.NoZeroCsv dbget -m modelOne -r "Microdata in database" -microdata Person -dbget.NoNullCsv dbget -dbget.ModelName modelOne -dbget.Do microdata -dbget.Run "Microdata in database" -dbget.Entity Person
Aggregate and compare microdata run values:
dbget -m modelOne -do microdata-aggregate -dbget.RunId 219 -dbget.Entity Other -dbget.GroupBy AgeGroup -dbget.Calc OM_AVG(Income) dbget -m modelOne -do microdata-aggregate -dbget.FirstRun -dbget.WithLastRun -dbget.Entity Other -dbget.GroupBy AgeGroup -dbget.Calc OM_AVG(Income),OM_AVG(Income[base]-Income[variant]) dbget -m modelOne -do microdata-compare -dbget.RunId 219 -dbget.WithRunIds 221 -dbget.Entity Person -dbget.GroupBy AgeGroup -dbget.Calc OM_AVG(Income[base]-Income[variant])
Get model metadata from compatibility (Modgen) views:
dbget -m modelOne -do old-model dbget -m modelOne -do old-model -csv dbget -m modelOne -do old-model -tsv dbget -m modelOne -do old-model -json dbget -m modelOne -do old-model -pipe dbget -dbget.ModelName modelOne -dbget.Do old-model -dbget.As csv -dbget.ToConsole -dbget.Language FR
Get model run parameters and output tables values from compatibility (Modgen) views:
dbget -m modelOne -do old-run dbget -m modelOne -do old-run -csv dbget -m modelOne -do old-run -tsv dbget -m modelOne -do old-run -lang fr-CA dbget -m modelOne -do old-run -dbget.NoLanguage dbget -m modelOne -do old-run -dbget.IdCsv dbget -m modelOne -do old-run -pipe dbget -m modelOne -do old-run -dir my/dir dbget -m modelOne -do old-run -dbget.NoZeroCsv dbget -m modelOne -do old-run -dbget.NoNullCsv dbget -dbget.ModelName modelOne -dbget.Do old-run -dbget.As csv -dbget.ToConsole -dbget.Language FR
Get parameter run values from compatibility (Modgen) views:
dbget -m modelOne -do old-parameter -dbget.Parameter ageSex dbget -m modelOne -do old-parameter -dbget.Parameter ageSex -csv dbget -m modelOne -do old-parameter -dbget.Parameter ageSex -tsv dbget -m modelOne -do old-parameter -dbget.Parameter ageSex -lang fr-CA dbget -m modelOne -do old-parameter -dbget.Parameter ageSex -dbget.NoLanguage dbget -m modelOne -do old-parameter -dbget.Parameter ageSex -dbget.IdCsv dbget -m modelOne -do old-parameter -dbget.Parameter ageSex -pipe dbget -dbget.ModelName modelOne -dbget.Do old-parameter -dbget.Parameter ageSex -dbget.As csv -dbget.ToConsole -dbget.Language FR
Get output table values from compatibility (Modgen) views:
dbget -m modelOne -do old-table -dbget.Table salarySex dbget -m modelOne -do old-table -dbget.Table salarySex -csv dbget -m modelOne -do old-table -dbget.Table salarySex -tsv dbget -m modelOne -do old-table -dbget.Table salarySex -lang fr-CA dbget -m modelOne -do old-table -dbget.Table salarySex -dbget.NoLanguage dbget -m modelOne -do old-table -dbget.Table salarySex -dbget.IdCsv dbget -m modelOne -do old-table -dbget.Table salarySex -pipe dbget -m modelOne -do old-table -dbget.Table salarySex -dbget.NoZeroCsv dbget -m modelOne -do old-table -dbget.Table salarySex -dbget.NoNullCsv dbget -dbget.ModelName modelOne -dbget.Do old-table -dbget.Table ageSexIncome -dbget.As csv -dbget.ToConsole -dbget.Language FR