Sift | Docs

Uploading Data to Sift

How to upload data into Sift.

You may not see any data when you first enter Sift. That's not a problem! We'll explain how to upload data into sift with two different methods:

  1. Upload CSV

  2. Streaming Data

Upload CSV

From the Sift overview page there are two different ways to select “Upload CSV”.

  1. If no runs exist in the application you will see an “Upload CSV” button in the middle of your screen (1 in the above photo).
  2. If runs already exist for your instance first select the “Advanced” drop down (2 in the above photo) then select “Upload CSV” under the advanced options (3 in the above photo).

This will open a modal where you can drag a CSV file or upload a file using your file upload dialog.

[!NOTE]

CSV File Formatting

Each column in the first row of your CSV file should contain the names of your channels. One column should be for your timestamp, ideally named "timestamp". Timestamps can be absolute or relative. We support 12 different timestamp formats, including rfc3339, datetime, UNIX, unix_millis, unix_micros, unix_nanos, nanoseconds, microseconds, milliseconds, seconds, minutes, and hours. After uploading your file, you'll be presented with a form to configure your upload.

General Configuration

Asset name (Required)

An asset is a physical object, like a vehicle or hardware test bed, or it can be a simulator or CI system. Fill out the asset that this data is associated with. You must fill out this field; Sift automatically fills out every other field, or it is not required.

Run name

Runs are discrete periods when data is captured from an asset. The run name is defaulted to the file name but can be modified. Suggested to update this name to capture the idea of data contained in the upload.

The row number of the first data row

This number should correspond with the first row in the CSV that contains data. Sift will automatically detect the first data row, but if the CSV file has additional header rows, this value can be modified to skip them.

Timestamp column

Sift will automatically detect the timestamp column, but if it is wrong for some reason, this value can be modified to specify the timestamp column. If you're using a relative timestamp, you'll see a date-time picker to select the run's start time.

Timestamp format

Sift will automatically detect the timestamp format, but if, for some reason, Sift is wrong, this value can be modified to one of the 12 timestamp formats described above.

Channel Configuration

A channel is an object that creates time series data. It can be a physical or simulated sensor. Each column of your CSV, except for the timestamp column, corresponds with a channel.

Let's review the fields in this form from left to right.

Checkbox

The checkbox lets you include or exclude a channel in your uploaded data.

Name

The name of a channel is auto-detected from the column header.

Data Type

Sift supports 10 data types: double, string, enum, bit field, bool, float, int32, uint32, int64, and uint64. It will automatically detect the data type, but if it is wrong for some reason, this value can be modified.

Units

The unit of the channel.

Description

The description of a channel.

Upload

After you've filled in the asset name and reviewed the configuration, click "Upload".

It may take a few minutes for your data to appear on the home page while Sift ingests it. Ensure your date time filter includes the data's start time and refresh if you can't find your data.

Automating CSV Upload

[!NOTE] The Sift API gives you the ability to automate uploading CSVs.

Streaming Data

Python Client Library

For streaming data into Sift our python client library in our public repository offers some examples for ingesting data into Sift.

Protobufs and gRPC

Stream data to Sift using Protobufs and gRPC.

On this page