Query - Query Twins

관계를 트래버스하고 속성 값을 기준으로 필터링할 수 있는 쿼리를 실행합니다. 상태 코드:

  • 200 정상
  • 400 잘못된 요청
    • BadRequest - 연속 토큰이 잘못되었습니다.
    • SqlQueryError - 쿼리에 몇 가지 오류가 포함됩니다.
    • TimeoutError - 쿼리 실행 시간이 60초 후에 초과되었습니다. 쿼리를 단순화하거나 조건을 추가하여 결과 크기를 줄입니다.
  • 429 요청이 너무 많음
  • QuotaReachedError - 최대 쿼리 속도 제한에 도달했습니다.
POST https://digitaltwins-hostname/query?api-version=2023-10-31

URI 매개 변수

Name In(다음 안에) 필수 형식 Description
api-version
query True

string

요청된 API 버전입니다.

요청 헤더

Name 필수 형식 Description
max-items-per-page

integer

요청당 검색할 최대 항목 수입니다. 서버는 요청된 번호보다 적게 반환하도록 선택할 수 있습니다.

traceparent

string

분산 추적 시스템에서 요청을 식별합니다.

tracestate

string

공급업체별 추적 식별 정보를 제공하며 추적 매개 변수의 도우미입니다.

요청 본문

Name 형식 Description
continuationToken

string

이전 쿼리에서 다음 결과 집합을 검색하는 데 사용되는 토큰입니다.

query

string

실행할 쿼리입니다. 연속 토큰이 제공되면 이 값은 무시됩니다.

응답

Name 형식 Description
200 OK

QueryResult

Success

Headers

query-charge: number

Other Status Codes

ErrorResponse

기본 응답입니다.

Headers

x-ms-error-code: string

보안

oauth2

Type: oauth2
Flow: implicit
Authorization URL: https://login.microsoftonline.com/common/oauth2/authorize?resource=0b07f429-9f4b-4714-9392-cc5e8e80c8b0

예제

Query for digital twins
Query for digital twins through a relationship
Retrieve paged query results

Query for digital twins

Sample Request

POST https://digitaltwins-hostname/query?api-version=2023-10-31

{
  "query": "SELECT * FROM DIGITALTWINS WHERE temp = 79"
}

Sample Response

{
  "value": [
    {
      "$dtId": "Twin-01",
      "$metadata": {
        "$lastUpdateTime": "2022-02-28T00:30:00.1234567Z",
        "$model": "dtmi:com:example:Sample;1",
        "name": {
          "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
        },
        "temp": {
          "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
        },
        "comfortIndex": {
          "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
        }
      },
      "name": "Sample01",
      "temp": 79,
      "comfortIndex": 50
    },
    {
      "$dtId": "Twin-02",
      "$metadata": {
        "$lastUpdateTime": "2022-02-28T00:29:00.1234567Z",
        "$model": "dtmi:com:example:Sample;1",
        "name": {
          "lastUpdateTime": "2022-02-28T00:29:00.1234567Z"
        },
        "temp": {
          "lastUpdateTime": "2022-02-28T00:29:00.1234567Z",
          "sourceTime": "2022-05-31T12:00:00.000125009Z"
        },
        "comfortIndex": {
          "lastUpdateTime": "2022-02-28T00:29:00.1234567Z"
        }
      },
      "name": "Sample02",
      "temp": 79,
      "comfortIndex": 50
    },
    {
      "$dtId": "Twin-03",
      "$metadata": {
        "$lastUpdateTime": "2022-02-28T00:31:00.1234567Z",
        "$model": "dtmi:com:example:Sample;1",
        "name": {
          "lastUpdateTime": "2022-02-28T00:31:00.1234567Z"
        },
        "temp": {
          "lastUpdateTime": "2022-02-28T00:31:00.1234567Z"
        },
        "comfortIndex": {
          "lastUpdateTime": "2022-02-28T00:31:00.1234567Z"
        }
      },
      "name": "Sample03",
      "temp": 79,
      "comfortIndex": 50
    }
  ],
  "continuationToken": "<token>"
}

Query for digital twins through a relationship

Sample Request

POST https://digitaltwins-hostname/query?api-version=2023-10-31

{
  "query": "SELECT Widget, Gadget FROM DIGITALTWINS Widget JOIN Gadget RELATED Widget.Contains WHERE Widget.$dtId = 'Twin-01'"
}

Sample Response

{
  "value": [
    {
      "Widget": {
        "$dtId": "Twin-01",
        "$metadata": {
          "$lastUpdateTime": "2022-02-28T00:30:00.1234567Z",
          "$model": "dtmi:com:example:Sample;1",
          "name": {
            "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
          },
          "temp": {
            "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
          },
          "comfortIndex": {
            "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
          }
        },
        "name": "Sample01",
        "temp": 79,
        "comfortIndex": 50
      },
      "Gadget": {
        "$dtId": "Twin-02",
        "$metadata": {
          "$lastUpdateTime": "2022-02-28T00:30:00.1234567Z",
          "$model": "dtmi:com:example:Sample;1",
          "name": {
            "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
          },
          "temp": {
            "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
          },
          "comfortIndex": {
            "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
          }
        },
        "name": "Sample02",
        "temp": 79,
        "comfortIndex": 50
      }
    },
    {
      "Widget": {
        "$dtId": "Twin-01",
        "$metadata": {
          "$lastUpdateTime": "2022-02-28T00:30:00.1234567Z",
          "$model": "dtmi:com:example:Sample;1",
          "name": {
            "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
          },
          "temp": {
            "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
          },
          "comfortIndex": {
            "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
          }
        },
        "name": "Sample01",
        "temp": 79,
        "comfortIndex": 50
      },
      "Gadget": {
        "$dtId": "Twin-10",
        "$metadata": {
          "$lastUpdateTime": "2022-02-28T00:30:00.1234567Z",
          "$model": "dtmi:com:example:Sample;1",
          "name": {
            "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
          },
          "temp": {
            "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
          },
          "comfortIndex": {
            "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
          }
        },
        "name": "Sample10",
        "temp": 79,
        "comfortIndex": 50
      }
    }
  ]
}

Retrieve paged query results

Sample Request

POST https://digitaltwins-hostname/query?api-version=2023-10-31

{
  "continuationToken": "<continuationToken from previous query>"
}

Sample Response

{
  "value": [
    {
      "$dtId": "Twin-04",
      "$metadata": {
        "$lastUpdateTime": "2022-02-28T00:30:00.1234567Z",
        "$model": "dtmi:com:example:Sample;1",
        "name": {
          "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
        },
        "temp": {
          "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
        },
        "comfortIndex": {
          "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
        }
      },
      "name": "Sample04",
      "temp": 79,
      "comfortIndex": 50
    },
    {
      "$dtId": "Twin-05",
      "$metadata": {
        "$lastUpdateTime": "2022-02-28T00:30:00.1234567Z",
        "$model": "dtmi:com:example:Sample;1",
        "name": {
          "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
        },
        "temp": {
          "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
        },
        "comfortIndex": {
          "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
        }
      },
      "name": "Sample05",
      "temp": 79,
      "comfortIndex": 50
    },
    {
      "$dtId": "Twin-06",
      "$metadata": {
        "$lastUpdateTime": "2022-02-28T00:30:00.1234567Z",
        "$model": "dtmi:com:example:Sample;1",
        "name": {
          "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
        },
        "temp": {
          "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
        },
        "comfortIndex": {
          "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
        }
      },
      "name": "Sample06",
      "temp": 79,
      "comfortIndex": 50
    }
  ]
}

정의

Name Description
Error

오류 정의입니다.

ErrorResponse

오류 응답입니다.

InnerError

포함된 오류에서 제공한 것보다 더 구체적인 오류 설명입니다.

QueryResult

쿼리 작업 및 선택적 연속 토큰의 결과입니다.

QuerySpecification

이전 쿼리 결과의 쿼리 문 또는 연속 토큰을 포함하는 쿼리 사양입니다.

Error

오류 정의입니다.

Name 형식 Description
code

string

HTTP 오류 코드의 하위 상태 역할을 하는 서비스별 오류 코드입니다.

details

Error[]

내부 오류 세부 정보입니다.

innererror

InnerError

오류에 대한 현재 개체보다 더 구체적인 정보를 포함하는 개체입니다.

message

string

사람이 읽을 수 있는 오류 표현입니다.

ErrorResponse

오류 응답입니다.

Name 형식 Description
error

Error

오류 세부 정보입니다.

InnerError

포함된 오류에서 제공한 것보다 더 구체적인 오류 설명입니다.

Name 형식 Description
code

string

포함된 오류에서 제공한 것보다 더 구체적인 오류 코드입니다.

innererror

InnerError

오류에 대한 현재 개체보다 더 구체적인 정보를 포함하는 개체입니다.

QueryResult

쿼리 작업 및 선택적 연속 토큰의 결과입니다.

Name 형식 Description
continuationToken

string

새 QuerySpecification을 생성하여 다음 결과 집합을 검색하는 데 사용할 수 있는 토큰입니다.

value

object[]

쿼리 결과입니다.

QuerySpecification

이전 쿼리 결과의 쿼리 문 또는 연속 토큰을 포함하는 쿼리 사양입니다.

Name 형식 Description
continuationToken

string

이전 쿼리에서 다음 결과 집합을 검색하는 데 사용되는 토큰입니다.

query

string

실행할 쿼리입니다. 연속 토큰이 제공되면 이 값은 무시됩니다.