Data Stream
What is a Data Stream?
A Data Stream is a single piece of data being recorded from either an Asset or calculated from Kelvin SmartApps™. It is stored in the time series database in the Kelvin API.
Usually one Asset will have multiple data streams being recorded.
When setting up your Data Streams, it is important you plan your naming strategy properly before starting, to ensure you can easily filter and find your wanted data quickly.
Data Stream and Assets
You can get a good overview of Asset / Data Stream pair concept in this introduction video;
A Data Stream is linked to one or more Assets, signifying the flow of specific metric data related to that asset. Together, they provide a continuous or periodic record of key parameters indicative of an asset's performance, health, or status.
For example:
- Pump (Asset):
- Temperature (Data Stream): This stream monitors the operating temperature of the pump, capturing data in real-time or at set intervals.
- Pressure (Data Stream): This stream measures the pressure of the fluid being pumped, again possibly in real-time or at defined intervals.
- Motor (Asset):
- Temperature (Data Stream): Monitors the operating temperature of the motor.
- Speed (Data Stream): Captures data on the RPM speed at which the motor is running.
- Production Process (Virtual Asset):
- Efficiency (Data Stream): This could be a virtual data stream that calculates efficiency by combining real-time data from multiple sensors or devices on a production line.
Every piece of data that is recorded is specifically associated with an Asset and a Data Stream. This pair ensures that there's a clear traceability and context for each data point.
For example, if a temperature reading of 75°C is recorded at a certain timestamp, it would be associated with a specific motor (Asset) and its temperature monitoring (Data Stream). This provides clarity on what the data represents and where it originated.
By defining data collection in terms of Assets and Data Streams, organizations can achieve a structured and organized approach to monitoring and analyzing their industrial environments, whether dealing with physical machinery or virtual representations of processes. It ensures that data is not only collected but is meaningful, contextual, and can be used for informed decision-making, predictive maintenance, and other data-driven applications.
Reference
| Field | Description |
|---|---|
| Name | Unique name identifier. It must contain only lowercase alphanumeric characters. The characters ., _ and - are allowed to separate words instead of a space BUT can not be at the beginning or end of the name. |
| Title | The display name to show on the Kelvin UI. It can contain any characters, including spaces. |
| Type | Determines if the data is directly derived from sensors or is processed/calculated. Allowed values: Measurement or Computed. |
| Semantic Type | Provides context or deeper meaning behind the data, beyond just its format or structure. Check Kelvin API for the full list of available semantic types. |
| Data Type | Specifies the kind of data in the stream. Allowed values: Boolean, Number, Object, String. |
| Unit | Defines the measurement unit for data. Check Kelvin API for the full list of available units. |
| Description | Optional description for the data stream, up to 200 characters. |
Name
The unique name of the data stream. It must contain only lowercase alphanumeric characters.
The characters ., _ and - are allowed to separate words instead of a space BUT can not be at the beginning or end of the name.
The maximum length is 64 characters.
Title
The display name of the data stream. It can contain any characters, including spaces.
This is used to identify the data stream in the Kelvin UI.
The maximum length is 64 characters.
Type
There are two types of data streams:
- Measurement: These represent direct data values derived from sensors or PLCs associated with physical assets at the edge. They are typically acquired using a Connection, utilizing industrial protocols.
- Computed: These pertain to data values that have been processed or calculated. Often, these are gathered via a Kelvin SmartApp™, where computations, algorithms, or machine learning models generate new data insights.
Semantic Type
A semantic type for a data stream pertains to the deeper meaning or context behind the data being transmitted or processed. Unlike syntactic types, which primarily concern the format or structure of data (e.g., number, string, boolean), semantic types give insights into the nature, purpose, or origin of the data.
For instance, in an industrial setting, a data stream might be syntactically classified as a series of floating-point numbers. However, its semantic type could further define it as "Temperature" or "Pressure".
This is a non-exhaustive list shown to give you an idea of the options available. You can check the full list using the Kelvin API. You can also create your own Semantic Types through the Kelvin API.
| Semantic Type Name | Semantic Type |
|---|---|
| acceleration | Acceleration |
| angle | Angle |
| angular_acceleration | Angular Acceleration |
| angular_velocity | Angular Velocity |
| area | Area |
| capacitance | Capacitance |
| current | Current |
| data_rate | Data Rate |
| data_size | Data Size |
| density | Density |
| distance | Distance |
| electric_charge | Electric Charge |
| energy | Energy |
| force | Force |
| frequency | Frequency |
| humidity | Humidity |
| illuminance | Illuminance |
| inductance | Inductance |
| latitude | Latitude |
| length | Length |
| longitude | Longitude |
| luminance | Luminance |
| luminosity | Luminosity |
| luminous_flux | Luminous Flux |
| luminous_intensity | Luminous Intensity |
| magnetic_flux | Magnetic Flux |
| magnetic_induction | Magnetic Induction |
| mass | Mass |
| mass_flow_rate | Mass Flow Rate |
| power | Power |
| pressure | Pressure |
| relative_humidity | Relative Humidity |
| resistance | Resistance |
| sound_pressure | Sound Pressure |
| state | State |
| temperature | Temperature |
| thrust | Thrust |
| timespan | TimeSpan |
| torque | Torque |
| velocity | Velocity |
| voltage | Voltage |
| volume | Volume |
| volume_flow_rate | Volume Flow Rate |
Data Type
When setting up your Data Stream, it's essential to choose the appropriate Data Type that matches the kind of data you expect to receive.
Some Semantic Types are predefined and will automatically determine the Data Type for you. For instance, if you choose "Pressure" as the semantic type, the system will automatically set the data type to Number. In contrast, the "State" semantic type offers more flexibility and can be a Boolean, Number, or String. In such cases, you'll need to manually select the correct Data Type.
Below are the available primitive data types with brief descriptions and their respective ranges:
| Option | Description |
|---|---|
| Boolean | Represents a binary state, either True or False |
| Number | Uses a double precision floating point format. |
| Object | Suitable for complex data structures, such as a Lufkin dynagraph card. |
| String | Variable-length text. |
Ensure that you pick the type that best aligns with the data you anticipate receiving to maintain data integrity and optimize processing.
Unit
This option is only available if the Data Type is Number.
You can check the full list of units available for your instance through the Kelvin API. You can also create your own units through the Kelvin API.
| Unit Name | Unit | Symbol |
|---|---|---|
| acre | Acre | ac |
| ampere | Ampere | A |
| astronomical_unit | Astronomical Unit | au |
| bar | Bar | bar |
| bel | Bel | B |
| bit | Bit | Bit |
| bit_per_second | Bit per Second | bps |
| byte | Byte | Byte |
| byte_per_second | Byte per Second | B/s |
| candela | Candela | cd |
| candela_per_square_metre | Candela per Square Metre | cd/m² |
| centimetre | Centimetre | cm |
| centimetre_per_second | Centimetre per Second | cm/s |
| centimetre_per_second_squared | Centimetre per Second Squared | cm/s² |
| coulomb | Coulomb | C |
| cubic_centimetre | Cubic Centimetre | cm³ |
| cubic_foot | Cubic Foot | ft³ |
| cubic_inch | Cubic Inch | in³ |
| cubic_metre | Cubic Metre | m³ |
| day | Day | d |
| decibel | Decibel | dB |
| degree_celsius | Degree Celsius | °C |
| degree_fahrenheit | Degree Fahrenheit | °F |
| degree_of_arc | Degree of Arc | ° |
| degree_per_second | Degree per Second | °/s |
| electronvolt | Electronvolt | eV |
| exbibit | Exbibit | Eibit |
| exbibit_per_second | Exbibit per Second | Eibit/s |
| exbibyte | Exbibyte | EiB |
| exbibyte_per_second | Exbibyte per Second | EiB/s |
| farad | Farad | F |
| fluid_ounce | Fluid Ounce | fl oz |
| foot | Foot | ft |
| footcandle | Footcandle | fc |
| g_force | G-Force | g |
| gallon | Gallon | gal |
| gibibit | Gibibit | Gibit |
| gibibit_per_second | Gibibit per Second | Gibit/s |
| gibibyte | Gibibyte | GiB |
| gibibyte_per_second | Gibibyte per Second | GiB/s |
| gigahertz | Gigahertz | GHz |
| gigajoule | Gigajoule | GJ |
| gigawatt | Gigawatt | GW |
| gram | Gram | g |
| gram_per_cubic_metre | Gram per Cubic Metre | g/m³ |
| gram_per_hour | Gram per Hour | g/h |
| gram_per_second | Gram per Second | g/s |
| hectare | Hectare | ha |
| henry | Henry | H |
| hertz | Hertz | Hz |
| horsepower | Horsepower | hp |
| hour | Hour | h |
| inch | Inch | in |
| inches_of_mercury | Inches of Mercury | inHg |
| inches_of_water | Inches of Water | inH2O |
| joule | Joule | J |
| kelvin | Kelvin | K |
| kibibit | Kibibit | Kibit |
| kibibit_per_second | Kibibit per Second | Kibit/s |
| kibibyte | Kibibyte | KiB |
| kibibyte_per_second | Kibibyte per Second | KiB/s |
| kilogram | Kilogram | kg |
| kilogram_per_cubic_metre | Kilogram per Cubic Metre | kg/m³ |
| kilogram_per_hour | Kilogram per Hour | kg/h |
| kilogram_per_second | Kilogram per Second | kg/s |
| kilohertz | Kilohertz | kHz |
| kilojoule | Kilojoule | kJ |
| kilometre | Kilometre | km |
| kilometre_per_hour | Kilometre per Hour | km/h |
| kilometre_per_second | Kilometre per Second | km/s |
| kiloohm | Kiloohm | kΩ |
| kilopascal | Kilopascal | kPa |
| kilovolt | Kilovolt | kV |
| kilowatt | Kilowatt | kW |
| kilowatt_hour | Kilowatt Hour | kWh |
| kilowatt_hour_per_year | Kilowatt Hour per Year | kWh/yr |
| knot | Knot | kt |
| litre | Litre | L |
| litre_per_hour | Litre per Hour | L/h |
| litre_per_second | Litre per Second | L/s |
| lumen | Lumen | lm |
| lux | Lux | lx |
| maxwell | Maxwell | Mx |
| mebibit | Mebibit | Mibit |
| mebibit_per_second | Mebibit per Second | Mibit/s |
| mebibyte | Mebibyte | MiB |
| mebibyte_per_second | Mebibyte per Second | MiB/s |
| megaelectronvolt | Megaelectronvolt | MeV |
| megahertz | Megahertz | MHz |
| megajoule | Megajoule | MJ |
| megaohm | Megaohm | MΩ |
| megavolt | Megavolt | MV |
| megawatt | Megawatt | MW |
| metre | Metre | m |
| metre_per_hour | Metre per Hour | m/h |
| metre_per_second | Metre per Second | m/s |
| metre_per_second_squared | Metre per Second Squared | m/s² |
| microampere | Microampere | μA |
| microfarad | Microfarad | μF |
| microgram | Microgram | μg |
| microhenry | Microhenry | μH |
| micrometre | Micrometre | μm |
| microsecond | Microsecond | μs |
| microvolt | Microvolt | μV |
| microwatt | Microwatt | μW |
| mile | Mile | mi |
| mile_per_hour | Mile per Hour | mi/h |
| mile_per_second | Mile per Second | mi/s |
| milliampere | Milliampere | mA |
| millibar | Millibar | mbar |
| millifarad | Millifarad | mF |
| milligram | Milligram | mg |
| millihenry | Millihenry | mH |
| millilitre | Millilitre | mL |
| millilitre_per_hour | Millilitre per Hour | mL/h |
| millilitre_per_second | Millilitre per Second | mL/s |
| millimetre | Millimetre | mm |
| millimetres_of_mercury | Millimetres of Mercury | mmHg |
| milliohm | Milliohm | mΩ |
| millisecond | Millisecond | ms |
| millivolt | Millivolt | mV |
| milliwatt | Milliwatt | mW |
| minute | Minute | min |
| nanofarad | Nanofarad | nF |
| nanometre | Nanometre | nm |
| nanosecond | Nanosecond | ns |
| nautical_mile | Nautical Mile | nmi |
| newton | Newton | N |
| newton_metre | Newton Metre | N·m |
| NULL | NULL | NULL |
| ohm | Ohm | Ω |
| ounce | Ounce | ozf |
| pascal | Pascal | Pa |
| percent | Percent | % |
| picofarad | Picofarad | pF |
| pound | Pound | lbf |
| pound_per_square_inch | Pound per Square Inch | psi |
| radian | Radian | rad |
| radian_per_second | Radian per Second | rad/s |
| radian_per_second_squared | Radian per Second Squared | rad/s² |
| revolution_per_minute | Revolution per Minute | rpm |
| revolution_per_second | Revolution per Second | rps |
| second | Second | s |
| second_of_arc | Second of Arc | ' |
| slug | Slug | slug |
| square_centimetre | Square Centimetre | cm² |
| square_foot | Square Foot | ft² |
| square_inch | Square Inch | in² |
| square_kilometre | Square Kilometre | km² |
| square_metre | Square Metre | m² |
| square_millimetre | Square Millimetre | mm² |
| tebibit | Tebibit | Tibit |
| tebibit_per_second | Tebibit per Second | Tibit/s |
| tebibyte | Tebibyte | TiB |
| tebibyte_per_second | Tebibyte per Second | TiB/s |
| tesla | Tesla | T |
| ton | Ton | ton |
| tonne | Tonne | t |
| turn | Turn | rev |
| volt | Volt | V |
| watt | Watt | W |
| weber | Weber | Wb |
| year | Year | yr |
| yobibit | Yobibit | Yibit |
| yobibit_per_second | Yobibit per Second | Yibit/s |
| yobibyte | Yobibyte | YiB |
| yobibyte_per_second | Yobibyte per Second | YiB/s |
| zebibit | Zebibit | Zibit |
| zebibit_per_second | Zebibit per Second | Zibit/s |
| zebibyte | Zebibyte | ZiB |
| zebibyte_per_second | Zebibyte per Second | ZiB/s |
Description
You can also optionally add a description to the data stream.
The maximum length is 200 characters.

