featurebase/qa/scripts/perf/able/able.yaml
2022-09-02 13:23:39 -07:00

96 lines
2.9 KiB
YAML

fields:
- name: "id"
type: uint # (default IDField (non-mutex))
distribution: "sequential"
min: 0
max: 1000000000 # 1B
repeat: false # if false, data generation stops when we hit >= max. only available with sequential
step: 1
- name: "age"
type: int
distribution: "uniform" # uniform or zipfian # TODO should totally add some kind of poission, normal, gaussian, bimodal
min: 15
max: 107
null_chance: 0.01
- name: "education_level"
type: string
source_file: "values/education.txt"
distribution: "zipfian"
s: 1.1
v: 5.1
- name: "gender"
type: string
source_file: "values/gender.txt"
distribution: "fixed"
- name: "income_bracket"
type: string
source_file: "values/income.txt"
- name: "domain"
type: "string-set"
min_num: 1
max_num: 6
source_file: "values/opendns-top-domains-10K.txt"
distribution: "zipfian"
s: 1.5
v: 4.3
- name: "timestamp"
type: "timestamp" # (default TimestampField)
min_date: 2006-01-02T15:04:05.001Z # RFC3339Nano
max_date: 2010-01-02T15:04:05.001Z # RFC3339Nano
distribution: "increasing" # only "increasing" is supported right now
min_step_duration: "10us"
max_step_duration: "100ms" # generated values will add randomly between 1s and 1h to previous value starting at min_date.
repeat: false # stop at > max_date unless repeat=true... then go back to min.
- name: "political_party"
type: "string"
source_file: "values/political_parties.txt"
distribution: "zipfian"
s: 1.0001
v: 1.0001
- name: "ltv"
type: "float" # use idk_params to choose a scale
min_float: 0.2
max_float: 1500
distribution: "uniform" # only supported value
- name: "hobby"
type: "string-set"
source_file: "values/hobbies.txt"
distribution: "zipfian"
min_num: 0
max_num: 4
s: 1.3
v: 2.5
# idk_params describe how data from "fields" should be ingested by IDK
idk_params:
primary_key_config:
field: "id" # if this is a single field named "id" then we'll use uint IDs, if it's empty we'll autogen ids, and if it's anything else we'll do string keys... yes this is a bit hacky, needs to be cleaned up.
# fields is keyed by names of fields from top level "fields". It is
# not required that all fields appear here, those that don't will
# use the default ingestion.
fields:
id:
- type: "ID"
timestamp:
- type: "RecordTime"
layout: "2006-01-02T15:04:05Z"
epoch: 1970-01-01T00:00:00.0Z
name: "na"
domain:
- type: "StringArray"
time_quantum: "YMD"
ltv:
- type: "Decimal"
scale: 2
income_bracket:
- type: "String"
mutex: true
education_level:
- type: "String"
mutex: true
gender:
- type: "String"
mutex: true
political_party:
- type: "String"
mutex: true