mirror of
https://github.com/nosqlbench/nosqlbench.git
synced 2025-02-25 18:55:28 -06:00
108 lines
3.8 KiB
YAML
108 lines
3.8 KiB
YAML
# nb -v run driver=cql yaml=cql-iot tags=phase:schema host=dsehost
|
|
description: An IOT workload which more optimal DSE settings
|
|
|
|
scenarios:
|
|
default:
|
|
schema: run driver=cql tags==phase:schema threads==1 cycles==UNDEF
|
|
rampup: run driver=cql tags==phase:rampup cycles===TEMPLATE(rampup-cycles,10000000) threads=auto
|
|
main: run driver=cql tags==phase:main cycles===TEMPLATE(main-cycles,10000000) threads=auto
|
|
|
|
bindings:
|
|
machine_id: Mod(<<sources:10000>>); ToHashedUUID() -> java.util.UUID
|
|
sensor_name: HashedLineToString('data/variable_words.txt')
|
|
time: Mul(<<timespeed:100>>L); Div(<<sources:10000>>L); ToDate()
|
|
cell_timestamp: Mul(<<timespeed:100>>L); Div(<<sources:10000>>L); Mul(1000L)
|
|
sensor_value: Normal(0.0,5.0); Add(100.0) -> double
|
|
station_id: Div(<<sources:10000>>);Mod(<<stations:100>>); ToHashedUUID() -> java.util.UUID
|
|
data: HashedFileExtractToString('data/lorem_ipsum_full.txt',800,1200)
|
|
blocks:
|
|
- tags:
|
|
phase: schema
|
|
params:
|
|
prepared: false
|
|
statements:
|
|
- create-keyspace: |
|
|
create keyspace if not exists <<keyspace:baselines>>
|
|
WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '<<rf:1>>'}
|
|
AND durable_writes = true;
|
|
tags:
|
|
name: create-keyspace
|
|
- create-table : |
|
|
create table if not exists <<keyspace:baselines>>.<<table:iot>> (
|
|
machine_id UUID, // source machine
|
|
sensor_name text, // sensor name
|
|
time timestamp, // timestamp of collection
|
|
sensor_value double, //
|
|
station_id UUID, // source location
|
|
data text,
|
|
PRIMARY KEY ((machine_id, sensor_name), time)
|
|
) WITH CLUSTERING ORDER BY (time DESC)
|
|
AND compression = { 'sstable_compression' : '<<compression:LZ4Compressor>>' }
|
|
AND nodesync={'enabled': 'true'}
|
|
AND compaction = {
|
|
'class': 'TimeWindowCompactionStrategy',
|
|
'compaction_window_size': <<expiry_minutes:60>>,
|
|
'compaction_window_unit': 'MINUTES',
|
|
'split_during_flush': true
|
|
};
|
|
tags:
|
|
name: create-table
|
|
- truncate-table: |
|
|
truncate table <<keyspace:baselines>>.<<table:iot>>;
|
|
tags:
|
|
name: truncate-table
|
|
- tags:
|
|
phase: rampup
|
|
params:
|
|
cl: <<write_cl:LOCAL_QUORUM>>
|
|
statements:
|
|
- insert-rampup: |
|
|
insert into <<keyspace:baselines>>.<<table:iot>>
|
|
(machine_id, sensor_name, time, sensor_value, station_id, data)
|
|
values ({machine_id}, {sensor_name}, {time}, {sensor_value}, {station_id}, {data})
|
|
using timestamp {cell_timestamp}
|
|
idempotent: true
|
|
tags:
|
|
name: insert-rampup
|
|
- tags:
|
|
phase: verify
|
|
type: read
|
|
params:
|
|
ratio: 1
|
|
cl: <<read_cl:LOCAL_QUORUM>>
|
|
statements:
|
|
- select-verify: |
|
|
select * from <<keyspace:baselines>>.<<table:iot>>
|
|
where machine_id={machine_id} and sensor_name={sensor_name} and time={time};
|
|
verify-fields: "*, -cell_timestamp"
|
|
tags:
|
|
name: select-verify
|
|
- tags:
|
|
phase: main
|
|
type: read
|
|
params:
|
|
ratio: <<read_ratio:1>>
|
|
cl: <<read_cl:LOCAL_QUORUM>>
|
|
statements:
|
|
- select-read: |
|
|
select * from <<keyspace:baselines>>.<<table:iot>>
|
|
where machine_id={machine_id} and sensor_name={sensor_name}
|
|
limit <<limit:10>>
|
|
tags:
|
|
name: select-read
|
|
- tags:
|
|
phase: main
|
|
type: write
|
|
params:
|
|
ratio: <<write_ratio:9>>
|
|
cl: <<write_cl:LOCAL_QUORUM>>
|
|
statements:
|
|
- insert-main: |
|
|
insert into <<keyspace:baselines>>.<<table:iot>>
|
|
(machine_id, sensor_name, time, sensor_value, station_id, data)
|
|
values ({machine_id}, {sensor_name}, {time}, {sensor_value}, {station_id}, {data})
|
|
using timestamp {cell_timestamp}
|
|
idempotent: true
|
|
tags:
|
|
name: insert-main
|