-
Notifications
You must be signed in to change notification settings - Fork 10
Configuring PBench
Create a JSON file for each stage of a benchmark.
Always begin the file with a description
.
Set the catalog and schema using catalog
and schema
.
Use queries
and query_files
to define the SQL queries to run in a stage.
Use next
to define the order of stage files in a benchmark.
For more information, see Parameters.
Use the next
parameter in a stage file to define the order of stage files in a benchmark.
For example, consider the four files stage1.json
, stage2.json
, stage3.json
, and stage4.json
:
-
stage1.json
has the following entry fornext
:"next": [ "stage2.json", "stage3.json" ]
stage2
andstage3
are started in parallel whenstage1
completes.stage2
andstage3
inherit parameters fromstage1
. See Inherited Parameters in Stage Files. -
stage2.json
andstage3.json
have the following entry fornext
:"next": [ "stage4.json" ]
stage4
inherits its parameters from the stage that starts it:- if
stage3
completes beforestage2
, thenstage3
passes inheritable parameters tostage4
- if
stage2
completes beforestage3
, thenstage2
passes inheritable parameters tostage4
See Inherited Parameters in Stage Files.
When both
stage2
andstage3
are finished, stage4` is started. - if
-
stage4.json
is the last stage of the benchmark run and has nonext
parameter entry.
A child stage inherits some parameters from its parent stage if those parameters are not explicitly set in the child file. If a child stage has multiple parents, the child stage inherits those parameters from the first of the parent stages that finishes, which starts the child stage.
The parameters that a child stage inherits from a parent stage are:
abort_on_error
catalog
cold_runs
save_column_metadata
save_json
save_output
schema
session_params
timezone
warm_runs
New values for catalog
, schema
, session_params
, and timezone
assigned in a stage are not applied unless a stage also sets start_on_new_client = true
.
For more information, see Parameters.
A query file is a file containing one or more - usually several - SQL queries that are called by the query_files
parameter of a stage file. For a query file example, see query_01.sql.
Save the connection information for InfluxDB and MySQL databases in configuration files, then use those configuration files with pbench run
with the --influx
and --mysql
command options.
NOTE:
An example configuration template for InfluxDB namedinfluxdb.template.json
can be found in the PBench repository. Copyinfluxdb.template.json
to the directory local to PBench and edit it as appropriate.
Create a file named influxdb.json
similar to the following example and edited as appropriate in the directory local to PBench.
Use --influx influxdb.json
with pbench run
to call the new file.
{
"url": "https://example.com)",
"org": "myorg",
"bucket": "benchmark",
"token": "*******=="
}
NOTE:
An example configuration template for MySQL namedmysql.template.json
can be found in the PBench repository. Copymysql.template.json
to the directory local to PBench and edit it as appropriate.
Create a file named mysql.json
similar to the following example and edited as appropriate in the directory local to PBench.
Use --mysql mysql.json
with pbench run
to call the new file.
{
"username": "presto",
"password": "*******",
"server": "localhost",
"database": "test"
}
For more information, see Running PBench.