MongoDB is a general NoSQL database that stores data as JSON-like documents.
This supplemental guide explains how the data generated for TSBS is stored, additional flags available when
using the data importer (tsbs_load_mongo
), and additional flags
available for the query runner (tsbs_run_queries_mongo
). This
should be read after the main README.
Data generated by tsbs_generate_data
for MongoDB is serialized as a
FlatBuffer to represent each reading. This format is not (easily) human readable
in its serialized format, however the FlatBuffer is specified as follows:
// mongo.fbs
namespace serialize;
table MongoTag {
key:string;
value:string;
}
table MongoReading {
key:string;
value:double;
}
table MongoPoint {
measurementName:string;
timestamp:long;
tags:[MongoTag];
fields:[MongoReading];
}
root_type MongoPoint;
URL for connecting to the MongoDB server daemon.
Length of the timeout for writes.
It is expressed as a Golang time.Duration string, meaning a number followed
by a unit abbreviation (s = seconds,
m = minutes, h = hours), e.g., the default 10s
is ten seconds.
Store each data reading as a separate document instead of the default aggregated format. The default aggregated format stores an hour's worth of readings for a particular device in one document and uses updates for a more efficient storage model. However for testing or comparing, this flag is provided to use a model where each data reading is stored as a single document.
Whether to use a MongoDB time-series collection. If true, document-per-event must also be true.
Whether retryable writes should be enabled.
If true, measurements will be inserted with {ordered: true}, or {ordered: false} if false.
Whether measurements will be inserted with random or deterministic field order.
Whether measurements in the same batch will be inserted with the same meta field.
URL for connecting to the MongoDB server daemon.
Length of the timeout for reads.
It is expressed as a Golang time.Duration string, meaning a number followed
by a unit abbreviation (s = seconds,
m = minutes, h = hours), e.g., the default 10s
is ten seconds.