Export to OData
Overview
Seeq has an OData export feature that allows trends and calculations to be exported to Spotfire, Tableau, or Microsoft applications Excel and Power BI.
OData exports can be read directly by these software programs for use in dashboards or for further analysis.
Users can authenticate the OData feed using a Seeq Access Key or username & password. Alternatively, if Seeq is set up with Windows Auth and a user is reading an OData export in a Windows product (e.g. Excel, Power BI), the user can authenticate the OData feed seamlessly.
Viewing OData Exports
Creating & Editing OData Exports
Exporting to Other Applications
Data Exports
There are two parallel OData services available: Legacy and Modern.
All defined OData exports are able to be exported using either service. Specifying a Modern or Legacy URL will dictate which service Seeq will utilize.
Administrators can set the Features/OData/DefaultProtocol
configuration option to 4.0
to enable the Modern service as the default experience. 2.0
will show the Legacy export URLs instead.
Legacy exports will be deprecated in a future version of Seeq, then fully removed in a proceeding version.
Modern OData Exports
Modern exports are accessed via /odata/{id}.svc
URLs. These endpoints support up to OData Version 4.0.
Four tables are available within each OData Export: Information
, Items
, Samples
, and Capsules
.
Information Table
The Information table details the meta information about the export. It includes which configuration options were used to generate the export, the link back to Seeq where this export can be modified, and other such data.
Items Table
The Items table lists the properties of all exported items.
Their Seeq ID, type, name, asset path, and description are listed first. All other metadata properties follow after that in alphabetical order (minus specific properties that are unlikely to be useful such as UI Config). Finally, any conditions with capsule properties list those properties alphabetically and their associated unit of measure.
Note: The Asset Path column uses the ǀ
(Unicode U+01C0) character as the asset separator if trying to split this value based on a delimiter in the other application. This character is used to avoid accidental splits on strings that may contain other characters readily available on the keyboard.
Samples Table
The Samples table reports the value of each signal at different timestamps. The grid period options determine the timestamps that will be output. The signal’s value at the given timestamp will be present in either the numeric_value
or string_value
column, depending on the signal type.
Calendar and Chain mode
These modes output the signals' value at each real-world timestamp. Calendar mode lists all timestamps within the exported interval. Chain mode filters out times where no capsules are present.
Capsule mode
Capsule mode represents a signal segment within each capsule. This data includes the same columns as Calendar/Chain mode, but also include the condition’s ID, the capsule’s ID, and the time this sample is located relative to the capsule’s start (in minutes).
Capsules Table
The Capsules table lists all capsules within the exported time range. The start, end, and duration are listed for all capsules (when available) followed by the capsule properties in alphabetical order.
Legacy OData Exports
The legacy OData service is deprecated and will be removed after December 2025. Workflows will need to be migrated to use the modern service URLs before this date to avoid any disruptions.
Note: The columns output by legacy OData exports are based on the signal and condition names & asset paths. If any duplicate columns are present, it can cause errors for some clients. If exports with duplicate columns are defined, archive those exports and clear your client cache to fix the issue.
Note: Memory limitations for legacy exports may cause exports to return 502 Bad Gateway
responses or 400 responses with a This OData export is estimated to be larger than the server configuration allows...
error message. Systems which regularly export large amounts of data will likely want to preemptively increase Memory/Appserver/Size
and/or Memory/Appserver/OData/MaxEstimatedMemoryUtilization
config options to ensure legacy exports work as expected.
It is generally a good idea to limit the expected size of legacy exports to prevent memory errors and to get responses quickly. The specifics vary from server to server, but ensuring your exports have fewer than 10 items and 100,000 rows is a good upper boundary to help ensure performance.
Legacy exports are accessed via /odata.svc/{name}_DataSet
URLs. These endpoints support up to OData Version 2.0.
Each export configuration equates to a single table. This table can either be a Samples or Capsules export.
When the Features/OData/DefaultProtocol
configuration is set to 4.0, the legacy export links can be accessed by expanding the Legacy section of the “Export to an OData client” modal.
Samples Export
The Samples table reports the value of each signal (and condition) at different timestamps. The grid period options determine the timestamps that will be output.
Note: For items coming from asset trees, Seeq includes the asset pathway along with the item name in column names. If trying to split this name based on a delimiter in the other application, the character Seeq uses to separate the asset pathway is ǀ
(Unicode U+01C0). This is due to the OData standard’s column name limitations and to avoid accidental splits on strings that may contain other characters readily available on the keyboard.
Calendar and Chain mode
These modes output the signals' value at each real-world timestamp. Conditions are represented as signal-like data using the $condition.countOverlaps()
formula function.
Calendar mode lists all timestamps within the exported interval. Chain mode filters out times where no capsules are present.
Capsule mode
Capsule mode outputs a column for each signal + capsule pair. The signal segments are gridded from the start key of each capsule.
Capsules Export
The Capsules table lists all capsules within the exported time range. The start, end, and duration are listed for all capsules (when available) followed by the capsule properties in alphabetical order.
Parameters
The following parameters can be specified in the URL when fetching an OData table:
Parameter | Description | Examples |
---|---|---|
| Use the specified start and end for the exported time range instead of the originally-configured values. Supported date-time formats include ISO-8601 with offset ( Applies only to the tables with time-based outputs. Note: When used with the Samples table, be sure you’ve specified a custom Sample Table Grid or Ungridded to ensure consistent sample frequencies are output. Auto Update and | Export the month of January 2022 (within the specified time zone) instead of the originally-configured time range. |
| Filter out rows that do not match the specified predicate(s). Supported predicates include the following:
Note: All rows that would be output by the unfiltered table must still be calculated. It is more efficient to do filtering natively in your analysis due to caching and the more robust compute service. Supported by Modern exports only. | Return only sample rows where the value is positive. Filter to only rows where the sample value is a string that contains the word “Transition.” Output only a specific condition’s capsules. Find all capsules before January 3rd that have a valid value for “My Custom Capsule Property.“ |
| Output only the columns specified in the parameter. Supported by Modern exports only. | Output only the Name, Item ID, and Type columns of the Items table. |
Administration and Performance
View OData Exports
The complete list of OData exports can be viewed from the Administration page’s “Exports” tab. This page allows filtering, sorting, and archiving exports as needed. The page also includes the date the date the export was created and was last run/updated (adjusted to your local time zone) and a link to the workbook it was made from.
Configuration Options
Many configuration options are available that alter the behavior and performance of OData exports from a system administration perspective.
Features/OData/DefaultProtocol
decides which service will be shown by default - 4.0
will provide users with Modern export links, 2.0
will use the Legacy service’s URLs. This option can be overridden by fully disabling the Legacy service using Features/OData/Legacy/Enabled
and forcing only the modern service to be used.
Threads/OData/*/Count
corresponds to the number of worker threads that will be available to process OData requests concurrently. The Initialization
thread pool handles initial triage and metadata requests while Processing
covers the actual table outputs. Higher values mean that more requests can be processed concurrently, but could have negative impacts on the rest of the system performance and reliability.
Any requests that are not actively being worked on by the worker threads go into a queue, whose size is dictated by Threads/OData/*/QueueSize
. Actively running requests can also be sent back into the queue based on the Features/Reprioritizer/*
configuration.
If requests to the Legacy metadata endpoints (/odata.svc
and /odata.svc/$metadata
) are negatively impacting request throughput, the Features/OData/Legacy/SkipCapsuleTimeSchemas
configuration option can be enabled to skip the output of Capsule Time exports from those metadata documents. Not needing to calculate the capsule data can greatly reduce the processing time of these documents.
Refer to the configurations' description of the remaining OData options for more details.
Examples:
Configuring Automatic Refresh in Power BI Cloud Service
Step 3. Configure refresh schedule
When the dataset refreshes it will pull the latest data that matched the configuration of your oData export. In order get live data your export must either use the "Auto update" option in your initial configuration or the "End Date" of your configuration needs to be set into the future such as 1/1/2030
=
Authenticating using Seeq Username and Password or Access Key in Microsoft Power BI Desktop
Step 3. Load the relevant tables.
Select the desired tables and click Load.
It’s usually simplest to load all tables. You may be able to omit the Information and either Samples or Capsules tables depending on the information needed.
Authenticating using Passwordless Windows Auth in Microsoft Power BI Desktop
Joining modern OData tables in Microsoft Excel
Step 2. Download the raw table data.
From the Navigator modal, check the “Select multiple items“ option. Select the desired tables. Then click “Load To.“
On the Import Data form, select “Table” and “New worksheet“ then clock OK. This will load each of the tables' raw data as their own sheet.
Migrate a visualization in Microsoft Power BI Desktop from a Legacy to Modern URL
Step 1. Edit a dashboard.
Launch Power BI Desktop and open a report with a visualization that’s using legacy export URLs.
In this example, we’ll be using the Samples Table, but the same concepts also apply to the Capsules Table.
Step 2. Add the modern tables to the schema.
Navigate to the "Get Data" dropdown → OData. Insert the export URL and click OK.
If necessary, authenticate using an Access Key or Windows Auth as described above.
Select the desired tables and click Load.
Step 3. Swap the old values for the new ones.
Remove the legacy fields from the visualization. Navigate into the modern tables' data columns and substitute the new values in their place. Power BI will automatically join the item properties with the data tables.
Reconfigure any calculations or aggregations as necessary.
Delete the legacy tables from the schema to keep the dashboards efficient.
Save the report and publish to the web.