Each time series segment is composed of consecutive time series entries.
Each entry is composed of a timestamp, 1 to 32 values, and an optional tag.
DateTime timestamp marks each entry in millisecond precision.
Timestamps are always indicated using UTC.
Timestamps, and therefore time series entries, are always ordered by time,
from the oldest timestamp to the newest.
E.g. in a heart rate time series, timestamps would indicate the time in which each
heart rate measurement has been taken.
Up to 32
double values can be appended per-entry.
We allow storing as many as 32 values per entry, since appending multiple
values may be a requirement for some time series. Here are a few examples.
A heart-rate time series
An entry with a single value (the heart-rate measurement taken by
a smart wrist-watch) is added to the time series every minute.
A truck-route time series
An entry with 2 values (the latitude and longitude reported by
a GPS device) is added to the time series every minute.
A stock-price time series
An entry with 5 values (stock price when the trade starts and
ends, its highest and lowest prices during the day, and its daily
trade volume) is added to the time series every day.
A single optional
string tag can be added per entry.
Tags are designated to provide information regarding their entries.
A tag can be a short descriptive text.
A tag can also contain a document's ID, and function as a reference to this document.
A reference-tag is preferable when we want the tag to be very short and yet refer us
to an unlimited source of information.
Reference-tags can be used to filter time series data
during a query.
E.g., the query can -
1. load time series entries whose tags refer to device-specification documents.
2. retrieve and examine the specification document referred to by each entry.
3. project to the client only values measured by Japanese devices.
Prefer re-using a few tags many times over using many unique tags,
to minimize memory and storage usage and optimize time series performance.