Skip to content

Semantic Data Interconnect (SDI) Data Query Service

Idea

The Semantic Data Interconnect (SDI) Data Query Service is used to create, update, retrieve and delete queries. It is also used to get results of queried data. It allows you to handle the entire lifecycle of semantic/business or physical queries.

Access

For accessing this service, you need to have the respective roles listed in SDI roles and scopes.

SDI Data Query Service APIs can be accessed in either of the following ways:

  1. Using REST client: Users of SDI admin role can create, update, delete and retrieve queries from SDI Data Query APIs. In future, users would also get access to in-built query editors.
  2. Using Apps: Analytical applications built on SDI can use queried data using query results. The query results API can be integrated with analytical applications.

Application users can access the REST APIs using REST Client. Depending on the APIs, users will need different roles to access SDI Data Query Service. SDI Data Query Service APIs can be accessed by SDI admin role or technical user roles. The only exception is Query Results API can be accessed by SDI admin, technical user and SDI user roles.

Note

Access to SDI Data Query Service APIs are protected by MindSphere authentication methods, using OAUTH credentials.

Basics

You can create and execute business queries as well as physical queries using SDI Data Query Service. Business queries are validated based on selected semantic model and physical queries are validated based on physical schemas of data within a tenant. Users need to create queries by using custom JSON query format. For more information about how to formulate queries, refer How to create queries.

Features

Currently, SDI supports queries in custom JSON query format. Operators like Where, inner join, select, order by, from, etc. are supported. Query service supports both semantic queries and physical schema-based queries. If you have created semantic queries based on incomplete semantic model, SDI allows the users to save queries but to execute the query complete semantic model details to be provided. Physical schema-based queries are validated against physical schemas. Only validated queries can be saved and are validated against the provided schemas.

SDI validates every query created by the user. If query is not executable, then SDI provides "executable" flag to False. This helps users to understand that query cannot be executed. To modify the query, user can look at "pendingActions" provided for users to modify the query. Once "executable" flag it TRUE, then user can get the results with status of execution. Presently, SDI provides "current" and "outdated" for query results provided.

SDI currently supports UTC format dates (for example, 2020-02-15T04:46:13Z) and W3C format dates (for example, 2020-10-15T04:46:13+00:00) in the queries.

Limitations

  • The timeout period for Query Results API is 60 seconds. TO increase this timeout, you need to replace queries into two different queries. This will retrieve same analytics processing for different payloads.
  • The maximum concurrent request for SDI is restricted to 100 for each tenant.
  • The maximum number of queries that can be stored in SDI is 100 for each tenant.
  • The maximum payload for query results response is 250 MB.
  • If schema names have a special character “.”; then user need to use "\"{schemaname}\"" to mention schema name or columns. This needs to be followed for the entire query. Partial use of "\"{schemaname}\"" for schema names or columns results in an error.
  • In where clause, if column value is a "string" then user need to pass value within single quotes '{value}'.
  • JSON format queries currently does not support the following SQL operations:
    • IN , NOT IN, BETWEEN, LIMIT, LIKE, MIN, MAX, SUM, AVG, Any
    • COUNT, Distinct
    • NOT
    • IS NULL
    • Alias
    • Left join , right join , full join , outer join, exists, self-join
    • GROUP BY , HAVING
    • union , subquery, all, intersect
    • Insert into , select top, select *

To get latest changes on known restrictions refer Release notes.

Example Scenario

Application developers wants to integrate query results API into dashboard application to receive queried data. Data is ingested into SDI from Enterprise Resource Planning (ERP) and MindSphere IoT data after which schemas are generated automatically by SDI. Data analysts can formulate queries on basis of semantic model or different schemas from data catalog. Each query is uniquely identified by queryid. Application developers can use queryid and integrate query results API into dashboard application to receive queried data.

Any questions left?

Ask the community


Except where otherwise noted, content on this site is licensed under the MindSphere Development License Agreement.