Skip to main content

Operations: Append & Delete Time Series

To Append and Delete multiple time series entries, use TimeSeriesBatchOperation.

TimeSeriesBatchOperation

TimeSeriesBatchOperation executes a list of time series entries Append and Delete actions.
The list is prepared in advance in a TimeSeriesOperation instance using TimeSeriesOperation.Append and TimeSeriesOperation.Delete, and is passed to TimeSeriesBatchOperation as an argument.

Syntax

  • TimeSeriesBatchOperation
    This is the operation you need to execute to append and delete time series entries.

    • Definition
public TimeSeriesBatchOperation(string documentId, TimeSeriesOperation operation)
  • Parameters

    ParametersTypeDescription
    documentIdstringID of the document to append TS data to
    operationTimeSeriesOperationOperation configuration class:
    Which Append/Delete actions to perform
  • TimeSeriesOperation
    This is the configuration class provided to TimeSeriesBatchOperation as an argument, with a list of time series entries Append and Delete actions.

public class TimeSeriesOperation
{
public string Name;
public void Append(AppendOperation appendOperation)
public void Delete(DeleteOperation deleteOperation)

//..
}
PropertyTypeDescription
NamestringTime Series name
AppendmethodAdd an Append action to the list
DeletemethodAdd a Delete action to the list
  • To add a time series entry Append action, call TimeSeriesOperation.Append.
public void Append(AppendOperation appendOperation)
public class AppendOperation
{
public DateTime Timestamp;
public double[] Values;
public string Tag;

//..
}
PropertyTypeDescription
TimestampDateTimeThe TS entry will be appended at this timestamp
Valuesdouble[]Entry values
TagstringEntry tag (optional)
  • To add a time series entry Delete action, call TimeSeriesOperation.Delete.
public void Delete(DeleteOperation deleteOperation)
public class DeleteOperation
{
public DateTime? From, To;

//..
}
PropertyTypeDescription
From (optional)DateTime?Range start
Entries will be deleted starting at this timestamp
To (optional)DateTime?Range end
Entries will be deleted up to this timestamp

Usage Flow

  • Create an instance of TimeSeriesOperation

    • Add it the time series name.
  • Prepare the Append and Delete sequence.

    • Call TimeSeriesOperation.Append to add an Append action

    • Call TimeSeriesOperation.Delete to add a Delete action

      NOTE: Delete actions will be executed before Append actions.

  • Create a TimeSeriesBatchOperation instance.
    Pass it the document ID and your TimeSeriesOperation instance

  • Call store.Operations.Send with your TimeSeriesBatchOperation instance to execute the operation.

Usage Samples

  • In this sample, we append two entries to a time series using TimeSeriesBatchOperation.
var baseTime = DateTime.Today;

// Define the Append operations:
// =============================
var appendOp1 = new TimeSeriesOperation.AppendOperation
{
Timestamp = baseTime.AddMinutes(1), Values = new[] {79d}, Tag = "watches/fitbit"
};

var appendOp2 = new TimeSeriesOperation.AppendOperation
{
Timestamp = baseTime.AddMinutes(2), Values = new[] {82d}, Tag = "watches/fitbit"
};

var appendOp3 = new TimeSeriesOperation.AppendOperation
{
Timestamp = baseTime.AddMinutes(3), Values = new[] {80d}, Tag = "watches/fitbit"
};

var appendOp4 = new TimeSeriesOperation.AppendOperation
{
Timestamp = baseTime.AddMinutes(4), Values = new[] {78d}, Tag = "watches/fitbit"
};

// Define 'TimeSeriesOperation' and add the Append operations:
// ===========================================================
var timeSeriesOp = new TimeSeriesOperation
{
Name = "HeartRates"
};

timeSeriesOp.Append(appendOp1);
timeSeriesOp.Append(appendOp2);
timeSeriesOp.Append(appendOp3);
timeSeriesOp.Append(appendOp4);


// Define 'TimeSeriesBatchOperation' and execute:
// ==============================================
var timeSeriesBatchOp = new TimeSeriesBatchOperation("users/john", timeSeriesOp);
store.Operations.Send(timeSeriesBatchOp);
  • In this sample, we delete two ranges of entries from a time series.
var baseTime = DateTime.Today;

var deleteOp = new TimeSeriesOperation.DeleteOperation
{
From = baseTime.AddMinutes(2), To = baseTime.AddMinutes(3)
};

var timeSeriesOp = new TimeSeriesOperation
{
Name = "HeartRates"
};

timeSeriesOp.Delete(deleteOp);

var timeSeriesBatchOp = new TimeSeriesBatchOperation("users/john", timeSeriesOp);

store.Operations.Send(timeSeriesBatchOp);