

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Consultar dados de AWS IoT SiteWise
<a name="query-industrial-data"></a>

Você pode usar as operações da AWS IoT SiteWise API para consultar os valores atuais, os valores históricos e os agregados de suas propriedades de ativos em intervalos de tempo específicos. AWS IoT SiteWise fornece várias interfaces de consulta para atender às diferentes necessidades de integração:
+ **Operações diretas de API** — chamadas de API simples e direcionadas para necessidades específicas de recuperação de dados
+ **Linguagem de consulta semelhante a SQL** - consultas poderosas e flexíveis para análise de dados complexa
+ **Driver ODBC** - Integração com ferramentas e aplicativos de inteligência de negócios

Use esses recursos de consulta para:
+ Obtenha insights em tempo real sobre dados operacionais
+ Analise tendências e padrões históricos
+ Calcule métricas de desempenho em seus ativos industriais
+ Integre dados de IoT com sistemas e painéis corporativos
+ Crie aplicativos personalizados que aproveitam dados industriais

Por exemplo, você pode descobrir todos os ativos com valores de propriedade específicos, criar representações personalizadas de seus dados ou desenvolver soluções de software que se integrem aos dados industriais armazenados em seus AWS IoT SiteWise ativos. Também é possível explorar os dados de ativos em tempo real no AWS IoT SiteWise Monitor. Para saber como configurar o SiteWise Monitor, consulte[Monitore dados com AWS IoT SiteWise Monitor](monitor-data.md).

As operações descritas nesta seção retornam objetos de valor de propriedade que contêm estruturas de carimbos de data/hora, qualidade e valor (TQV):
+ O `timestamp` contém o horário Unix epoch atual em segundos, com correção em nanossegundos.
+ `quality` contém uma das seguintes strings, que indicam a qualidade do ponto de dados:
  + `GOOD` – os dados não são afetados por nenhum problema.
  + `BAD` – os dados são afetados por um problema, como a falha do sensor.
  + `UNCERTAIN` – os dados são afetados por um problema, como a imprecisão do sensor.
+ O `value` contém um dos campos a seguir, a depender do tipo de propriedade:
  + `booleanValue`
  + `doubleValue`
  + `integerValue`
  + `stringValue`
  + `nullValue`

**Topics**
+ [

# Consulte os valores atuais da propriedade do ativo em AWS IoT SiteWise
](current-values.md)
+ [

# Consulte valores históricos de propriedades de ativos em AWS IoT SiteWise
](historical-values.md)
+ [

# Consulte agregados de propriedades de ativos em AWS IoT SiteWise
](aggregates.md)
+ [

# AWS IoT SiteWise linguagem de consulta
](sql.md)
+ [

# Otimização de consultas
](query-optimize.md)
+ [

# ODBC
](query-ODBC.md)

# Consulte os valores atuais da propriedade do ativo em AWS IoT SiteWise
<a name="current-values"></a>

Este tutorial mostra duas maneiras de obter o valor atual de uma propriedade de ativo. Você pode usar o AWS IoT SiteWise console ou usar a API no AWS Command Line Interface (AWS CLI).

**Topics**
+ [

## Consultar o valor atual de uma propriedade de ativo (console)
](#query-current-value-console)
+ [

## Consultar o valor atual de uma propriedade de ativo (AWS CLI)
](#query-current-value-cli)

## Consultar o valor atual de uma propriedade de ativo (console)
<a name="query-current-value-console"></a>

Você pode usar o AWS IoT SiteWise console para visualizar o valor atual de uma propriedade do ativo.

**Como obter o valor atual de uma propriedade de ativo (console)**

1. <a name="sitewise-open-console"></a>Navegue até o [console do AWS IoT SiteWise](https://console.aws.amazon.com/iotsitewise/).

1. <a name="sitewise-choose-assets"></a>No painel de navegação, selecione **Ativos**.

1. Escolha o ativo com a propriedade a ser consultada.

1. Escolha o ícone de seta para expandir uma hierarquia de ativos e encontrar o ativo.

1. Escolha a guia do tipo de propriedade. Por exemplo, escolha **Medições** para visualizar o valor atual de uma propriedade de medição.

1. Encontre a propriedade a ser visualizada. O valor atual aparece na coluna **Valor mais recente**.

## Consultar o valor atual de uma propriedade de ativo (AWS CLI)
<a name="query-current-value-cli"></a>

Você pode usar o AWS Command Line Interface (AWS CLI) para consultar o valor atual de uma propriedade do ativo.

Use a [GetAssetPropertyValue](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_GetAssetPropertyValue.html)operação para consultar o valor atual de uma propriedade do ativo.

Para identificar uma propriedade de ativo, especifique uma das seguintes opções:
+ O `assetId` e `propertyId` da propriedade de ativo para a qual os dados são enviados.
+ O `propertyAlias`, que é um alias de fluxo de dados (por exemplo, `/company/windfarm/3/turbine/7/temperature`). Para usar esta opção, primeiro você deve definir o apelido da propriedade do seu ativo. Para definir aliases de propriedade, consulte [Gerencie fluxos de dados para AWS IoT SiteWise](manage-data-streams.md).

**Como obter o valor atual de uma propriedade de ativo (AWS CLI)**
+ Execute o seguinte comando para obter o valor atual da propriedade de ativo. *asset-id*Substitua pela ID do ativo e *property-id* pela ID da propriedade.

  ```
  aws iotsitewise get-asset-property-value \
    --asset-id asset-id \
    --property-id property-id
  ```

  A operação retornará uma resposta contendo o TQV atual da propriedade, no formato a seguir:

  ```
  {
    "propertyValue": {
      "value": {
        "booleanValue": Boolean,
        "doubleValue": Number,
        "integerValue": Number,
        "stringValue": "String",
        "nullValue": {
            "valueType": "String"
        }
      },
      "timestamp": {
        "timeInSeconds": Number,
        "offsetInNanos": Number
      },
      "quality": "String"
    }
  }
  ```

# Consulte valores históricos de propriedades de ativos em AWS IoT SiteWise
<a name="historical-values"></a>

Você pode usar a [GetAssetPropertyValueHistory](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_GetAssetPropertyValueHistory.html)operação AWS IoT SiteWise da API para consultar os valores históricos de uma propriedade do ativo.

Para identificar uma propriedade de ativo, especifique uma das seguintes opções:
+ O `assetId` e `propertyId` da propriedade de ativo para a qual os dados são enviados.
+ O `propertyAlias`, que é um alias de fluxo de dados (por exemplo, `/company/windfarm/3/turbine/7/temperature`). Para usar esta opção, primeiro você deve definir o apelido da propriedade do seu ativo. Para definir aliases de propriedade, consulte [Gerencie fluxos de dados para AWS IoT SiteWise](manage-data-streams.md).

Envie os seguintes parâmetros para refinar os resultados:
+ `startDate` — O início exclusivo do intervalo a partir do qual é possível consultar dados históricos, expressos em segundos, em tempo Unix epoch.
+ `endDate` — O final inclusivo do intervalo a partir do qual a consulta de dados históricos é feita, expresso em segundos, no tempo Unix epoch.
+ `maxResults` – O número máximo de resultados a serem retornados em uma solicitação. Remete ao padrão de `20` resultados. 
+ `nextToken` – Um token de paginação retornado de uma chamada anterior a essa operação.
+ `timeOrdering` — A ordem a ser aplicada aos valores retornados: `ASCENDING` ou `DESCENDING`.
+ `qualities` – A qualidade sob a qual pautar e filtrar os resultados: `GOOD`, `BAD`, ou `UNCERTAIN`.

**Como consultar o histórico de valores de uma propriedade de ativo (AWS CLI)**

1. Execute o seguinte comando para obter o histórico de valores da propriedade de ativo: Esse comando consulta o histórico da propriedade em um intervalo específico de 10 minutos. *asset-id*Substitua pela ID do ativo e *property-id* pela ID da propriedade. Substitua os parâmetros de data pelo intervalo a ser consultado.

   ```
   aws iotsitewise get-asset-property-value-history \
     --asset-id asset-id \
     --property-id property-id \
     --start-date 1575216000 \
     --end-date 1575216600
   ```

   A operação retorna uma resposta que contém o histórico TQVs da propriedade no seguinte formato:

   ```
   {
     "assetPropertyValueHistory": [
       {
         "value": {
           "booleanValue": Boolean,
           "doubleValue": Number,
           "integerValue": Number,
           "stringValue": "String",
           "nullValue": {
               "valueType": "String"
           }
         },
         "timestamp": {
           "timeInSeconds": Number,
           "offsetInNanos": Number
         },
         "quality": "String"
       }
     ],
     "nextToken": "String"
   }
   ```

1. Se existirem mais entradas de valor, você poderá passar o token de paginação do `nextToken` campo para uma chamada subsequente para a [GetAssetPropertyValueHistory](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_GetAssetPropertyValueHistory.html)operação.

# Consulte agregados de propriedades de ativos em AWS IoT SiteWise
<a name="aggregates"></a>

AWS IoT SiteWise calcula automaticamente valores agregados de propriedades de ativos, que são um conjunto de métricas básicas calculadas em vários intervalos de tempo. AWS IoT SiteWise calcula os seguintes agregados a cada minuto, hora e dia para suas propriedades de ativos:
+ **média** – A média (meio) dos valores de uma propriedade ao longo de um intervalo de tempo.
+ **contagem** O número de pontos de dados para uma propriedade em um intervalo de tempo.
+ **máximo** – O máximo de valores de uma propriedade ao longo de um intervalo de tempo.
+ **mínimo** – O mínimo de valores de uma propriedade ao longo de um intervalo de tempo.
+ **desvio padrão** – O desvio padrão dos valores de uma propriedade ao longo de um intervalo de tempo.
+ **soma** – A soma dos valores de uma propriedade em um intervalo de tempo.

Para propriedades não numéricas, como cadeias de caracteres e booleanos, AWS IoT SiteWise calcula somente o agregado de contagem.

Você também pode calcular métricas personalizadas para os dados dos ativos. Com as propriedades de métrica, defina agregações específicas para a operação. As propriedades métricas oferecem funções de agregação e intervalos de tempo adicionais que não são pré-computados para a API. AWS IoT SiteWise Para obter mais informações, consulte [Agregar dados de propriedades e outros ativos (métricas)](metrics.md).

**Topics**
+ [

## Agregados de uma propriedade de ativo (API)
](#aggregates-api)
+ [

## Agregados de uma propriedade de ativo (AWS CLI)
](#aggregates-cli)

## Agregados de uma propriedade de ativo (API)
<a name="aggregates-api"></a>

Use a AWS IoT SiteWise API para obter agregados para uma propriedade de ativo.

Use a [GetAssetPropertyAggregates](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_GetAssetPropertyAggregates.html)operação para consultar agregados de uma propriedade do ativo.

Para identificar uma propriedade de ativo, especifique uma das seguintes opções:
+ O `assetId` e `propertyId` da propriedade de ativo para a qual os dados são enviados.
+ O `propertyAlias`, que é um alias de fluxo de dados (por exemplo, `/company/windfarm/3/turbine/7/temperature`). Para usar esta opção, primeiro você deve definir o apelido da propriedade do seu ativo. Para definir aliases de propriedade, consulte [Gerencie fluxos de dados para AWS IoT SiteWise](manage-data-streams.md).

Você deve passar os seguintes parâmetros obrigatórios:
+ `aggregateTypes` – A lista de agregados a recuperar. Você pode especificar qualquer opção entre `AVERAGE`, `COUNT`, `MAXIMUM`, `MINIMUM`, `STANDARD_DEVIATION` e `SUM`.
+ `resolution`— O intervalo de tempo para recuperar a métrica: `1m` (1 minuto), `15m` (15 minutos), `1h` (1 hora) ou `1d` (1 dia).
+ `startDate` — O início exclusivo do intervalo a partir do qual é possível consultar dados históricos, expressos em segundos, em tempo Unix epoch.
+ `endDate` — O final inclusivo do intervalo a partir do qual a consulta de dados históricos é feita, expresso em segundos, no tempo Unix epoch.

Defina também qualquer um dos seguintes parâmetros para refinar os resultados:
+ `maxResults` – O número máximo de resultados a serem retornados em uma solicitação. Remete ao padrão de `20` resultados. 
+ `nextToken` – Um token de paginação retornado de uma chamada anterior a essa operação.
+ `timeOrdering` — A ordem a ser aplicada aos valores retornados: `ASCENDING` ou `DESCENDING`.
+ `qualities` – A qualidade sob a qual pautar e filtrar os resultados: `GOOD`, `BAD`, ou `UNCERTAIN`.

**nota**  
A [GetAssetPropertyAggregates](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_GetAssetPropertyAggregates.html)operação retorna um TQV com um formato diferente das outras operações descritas nesta seção. A estrutura `value` contém um campo para cada um dos `aggregateTypes` na solicitação. O `timestamp` contém a hora na qual a agregação ocorreu, em segundos, no horário Unix epoch.

## Agregados de uma propriedade de ativo (AWS CLI)
<a name="aggregates-cli"></a>

**Como consultar agregados de uma propriedade de ativo (AWS CLI)**

1. Execute o seguinte comando para obter os agregados para a propriedade de ativo: Este comando consulta média e soma, com resolução de 1 hora para um intervalo específico de 1 hora. *asset-id*Substitua pela ID do ativo e *property-id* pela ID da propriedade. Substitua os parâmetros pelos agregados e intervalo a ser consultado.

   ```
   aws iotsitewise get-asset-property-aggregates \
     --asset-id asset-id \
     --property-id property-id \
     --start-date 1575216000 \
     --end-date 1575219600 \
     --aggregate-types AVERAGE SUM \
     --resolution 1h
   ```

   A operação retorna uma resposta que contém o histórico TQVs da propriedade no formato a seguir. A resposta inclui apenas os agregados solicitados.

   ```
   {
     "aggregatedValues": [
       {
         "timestamp": Number,
         "quality": "String",
         "value": {
           "average": Number,
           "count": Number,
           "maximum": Number,
           "minimum": Number,
           "standardDeviation": Number,
           "sum": Number
         }
       }
     ],
     "nextToken": "String"
   }
   ```

1. Se existirem mais entradas de valor, você poderá passar o token de paginação do `nextToken` campo para uma chamada subsequente para a [GetAssetPropertyAggregates](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_GetAssetPropertyAggregates.html)operação.

**nota**  
 Se seu intervalo de consulta contiver um `null` valor TQVs, consulte [AssetPropertyValue](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_AssetPropertyValue.html)API. Todas as estatísticas, exceto a contagem, resultam em uma `null` resposta, semelhante às estatísticas de String TQVs. Se seu intervalo de consulta contiver `Double.NaN` para tipo duplo TQVs, todos os cálculos, exceto a contagem, resultarão em `Double.NaN` a. 

# AWS IoT SiteWise linguagem de consulta
<a name="sql"></a>

Com a operação da [ExecuteQuery](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ExecuteQuery.html)API de recuperação de AWS IoT SiteWise dados, você pode recuperar informações sobre definições estruturais declarativas e os dados de série temporal associados a elas, a partir do seguinte:
+ Modelos da 
+ ativos
+ medições
+ métricas
+ transformações
+ agregados

Isso pode ser feito com instruções de consulta semelhantes a SQL, em uma única solicitação de API.

**nota**  
Esse recurso está disponível em todas as regiões em que AWS IoT SiteWise está disponível, exceto AWS GovCloud (Oeste dos EUA), Canadá (Central), China (Pequim) e Leste dos EUA (Ohio). 

**Topics**
+ [

# Referência da linguagem de consulta para AWS IoT SiteWise
](query-reference.md)

# Referência da linguagem de consulta para AWS IoT SiteWise
<a name="query-reference"></a>

 AWS IoT SiteWise suporta uma linguagem de consulta avançada para trabalhar com seus dados. Os tipos de dados, operadores, funções e constructos disponíveis são descritos nos tópicos a seguir.

Consulte [Consultas de exemplo](sql-examples.md) para escrever consultas com a linguagem de AWS IoT SiteWise consulta.

**Topics**
+ [

# Visualizações de referência de consulta
](query-reference-views.md)
+ [

# Tipos de dados compatíveis
](supported-data-types.md)
+ [

# Cláusulas compatíveis
](supported-clauses.md)
+ [

# Operadores lógicos
](sql-supported-logical.md)
+ [

# Operadores de comparação
](sql-supported-comparision.md)
+ [

# Funções SQL
](sql-functions.md)
+ [

# Consultas de exemplo
](sql-examples.md)

# Visualizações de referência de consulta
<a name="query-reference-views"></a>

Esta seção fornece informações para ajudá-lo a entender as visualizações AWS IoT SiteWise, como metadados do processo e dados de telemetria.

As tabelas a seguir fornecem os nomes das visualizações e as descrições das visualizações:


**Modelo de dados**  

|  **Nome da visualização**  |  **Descrição da visualização**  | 
| --- | --- | 
|  asset  |  Contém informações sobre o ativo e a derivação do modelo.  | 
|  asset\$1property  |  Contém informações sobre a estrutura da propriedade do ativo.  | 
|  raw\$1time\$1series  |  Contém os dados históricos da série temporal.  | 
|  latest\$1value\$1time\$1series  |  Contém o valor mais recente da série temporal.  | 
|  precomputed\$1aggregates  |  Contém os valores agregados de propriedades de ativo calculados automaticamente. Eles são um conjunto de métricas básicas calculadas com base em vários intervalos de tempo.  | 

As visualizações a seguir listam os nomes das colunas e os tipos de dados de cada exibição.


**View:asset**  

|  **nome da coluna**  |  **tipodedados**  | 
| --- | --- | 
|  asset\$1id  |  string  | 
|  asset\$1name  |  string  | 
|  asset\$1description  |  string  | 
|  asset\$1model\$1id  |  string  | 
|  id\$1do\$1ativo-pai  |  string  | 
| id\$1externo do ativo | string | 
| id\$1external\$1model\$1do\$1ativo | string | 
| hierarchy\$1id | string | 


**View:asset\$1property**  

|  **nome da coluna**  |  **tipodedados**  | 
| --- | --- | 
|  asset\$1id  |  string  | 
|  property\$1id  |  string  | 
|  property\$1name  |  string  | 
|  property\$1alias  |  string  | 
|  id\$1externo\$1da\$1propriedade  |  string  | 
|  asset\$1composite\$1model\$1id  |  string  | 
|  tipo\$1do\$1propriedade  |  string  | 
|  property\$1data\$1type  |  string  | 
|  int\$1attribute\$1value  |  integer  | 
|  valor\$1do\$1atributo duplo  |  double  | 
|  valor\$1atributo\$1booleano  |  booleano  | 
|  valor\$1atributo\$1de\$1string  |  string  | 


**View:raw\$1time\$1series**  

|  **nome da coluna**  |  **tipodedados**  | 
| --- | --- | 
|  asset\$1id  |  string  | 
|  property\$1id  |  string  | 
|  property\$1alias  |  string  | 
|  event\$1timestamp  |  timestamp  | 
|  quality  |  string  | 
|  boolean\$1value  |  booleano  | 
|  int\$1value  |  integer  | 
|  double\$1value  |  double  | 
|  string\$1value  |  string  | 


**View:latest\$1value\$1time\$1series**  

|  **nome da coluna**  |  **tipodedados**  | 
| --- | --- | 
|  asset\$1id  |  string  | 
|  property\$1id  |  string  | 
|  property\$1alias  |  string  | 
|  event\$1timestamp  |  timestamp  | 
|  quality  |  string  | 
|  boolean\$1value  |  booleano  | 
|  int\$1value  |  integer  | 
|  double\$1value  |  double  | 
|  string\$1value  |  string  | 


**View:precomputed\$1aggregates**  

|  **nome da coluna**  |  **tipodedados**  | 
| --- | --- | 
|  asset\$1id  |  string  | 
|  property\$1id  |  string  | 
|  property\$1alias  |  string  | 
|  event\$1timestamp  |  timestamp  | 
|  quality  |  string  | 
|  resolução  |  string  | 
|  sum\$1value  |  double  | 
|  count\$1value  |  integer  | 
|  average\$1value  |  double  | 
|  maximum\$1value  |  double  | 
|  minimum\$1value  |  double  | 
|  stdev\$1value  |  double  | 

# Tipos de dados compatíveis
<a name="supported-data-types"></a>

AWS IoT SiteWise a linguagem de consulta oferece suporte aos seguintes tipos de dados.


**Valor escalar**  

|  **Tipo de dados**  |  **Descrição**  | 
| --- | --- | 
|  `STRING`  |  Uma string com comprimento máximo de 1.024 bytes.  | 
|  `INTEGER`  |  Um inteiro assinado de 32 bits com um intervalo de `-2,147,483,648 to 2,147,483,647`.  | 
|  `DOUBLE`  |  Um número de ponto flutuante com intervalo de`–10^100 to 10^100`, ou `Nan` com precisão `IEEE 754` dupla.  | 
|  `BOOLEAN`  |  `true` ou `false`.  | 
|  `TIMESTAMP`  |  Carimbos de data/hora compatíveis com ISO-8601: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot-sitewise/latest/userguide/supported-data-types.html)  | 

**nota**  
`Null`: um booleano `true` indicando a falta de dados definidos.

**Example**  
`TIMESTAMP`exemplos de valores:  

```
TIMESTAMP '2025-12-21 23:59:59.999Z'
TIMESTAMP '2025-12-21 23:59:59+23:59'
'2025-12-21 23:59:59'
'2025-12-21T23:59:59.123+11:11'
```

**nota**  
 Os dados de precisão dupla não são exatos. Alguns valores não são convertidos exatamente e não representarão todos os números reais devido à precisão limitada. Os dados de ponto flutuante na consulta podem não ter o mesmo valor representado internamente. O valor será arredondado se a precisão de um número de entrada for muito alta. 

# Cláusulas compatíveis
<a name="supported-clauses"></a>

A `SELECT` instrução é usada para recuperar dados de uma ou mais visualizações. AWS IoT SiteWise suporta `JOIN` as `INNER JOIN` operações e.

As visualizações são unidas com uma `JOIN` sintaxe explícita ou com notações separadas por vírgula na cláusula. `FROM`

**Example**  
Uma `SELECT` declaração geral:  

```
SELECT expression [, ...]
  [ FROM table_name AS alias [, ...] ]
  [ WHERE condition ]
  [ GROUP BY expression [, ...] ]
  [ HAVING condition ]
  [ ORDER BY expression [ ASC | DESC ] [ NULLS FIRST | NULLS LAST ] [, ...] ]
  [ LIMIT expression ]
```

**Example**  
Uma declaração SELECT com as diferentes cláusulas:  

```
SELECT
  a.asset_name,
  a.asset_id,
  p.property_type,
  p.property_data_type,
  p.string_attribute_value,
  p.property_name
FROM asset a, asset_property p
WHERE a.asset_description LIKE '%description%'
AND p.property_type IN ('attribute', 'metric')
OR p.property_id IN (
  SELECT property_id
  FROM raw_time_series
  WHERE event_timestamp BETWEEN TIMESTAMP '2025-01-01 00:00:00' AND TIMESTAMP '2025-01-02 00:00:00'
  GROUP BY asset_id, property_id
  HAVING COUNT(*) > 100
 )
GROUP BY p.property_type
HAVING COUNT(*) > 5
ORDER BY a.asset_name ASC
LIMIT 20;
```

**nota**  
 Um implícito `JOIN` combina duas ou mais tabelas diferentes sem usar a `JOIN` palavra-chave com base no esquema interno AWS IoT SiteWise do. Isso é o equivalente a executar um `JOIN` nos `property_id` campos `asset_id` e entre metadados e tabelas de dados brutos. Esse padrão SiteWise permite aproveitar qualquer filtro de metadados na consulta, ao buscar tabelas de dados brutos de uma forma que resulta em menos dados gerais escaneados.   

**Example de uma consulta:**  

```
SELECT a.asset_name, p.property_name, r.event_timestamp
FROM asset a, asset_property p, raw_time_series r
WHERE a.asset_name='my_asset' AND p.property_name='my_property'
```
O exemplo acima verifica apenas os dados da propriedade do ativo pertencente aos nomes de metadados especificados.  

**Example de um equivalente menos otimizado da consulta acima:**  

```
SELECT a.asset_name, p.property_name, r.event_timestamp
FROM asset a
JOIN asset_property p ON a.asset_id=p.asset_id
JOIN raw_time_series r ON p.asset_id=r.asset_id AND p.property_id=r.property_id
WHERE a.asset_name='my_asset' AND p.property_name='my_property'
```

Uma explicação de cada cláusula e sua descrição estão listadas abaixo:


|  **Cláusula**  |  **Assinatura**  |  **Descrição**  | 
| --- | --- | --- | 
|  `LIMIT`  |  <pre>LIMIT { count }</pre>  |  Essa cláusula limita o conjunto de resultados ao número especificado de linhas. Você pode usar `LIMIT` com ou sem `OFFSET` cláusulas `ORDER BY` e. `LIMIT`só funciona com números inteiros não negativos de [0,2147483647].  | 
|  `ORDER BY`  |  <pre>ORDER BY expression<br />[ ASC | DESC ]<br />[ NULLS FIRST | NULLS LAST ] <br /></pre>  |  A `ORDER BY` cláusula classifica o conjunto de resultados de uma consulta.   Ao se referir às colunas selecionadas em uma agregação na `ORDER BY` cláusula, use o índice ordinal da coluna em vez do nome ou alias.  <pre>SELECT AVG(t.double_value)<br />FROM latest_value_time_series t<br />GROUP BY t.asset_id<br />ORDER BY 1</pre>   | 
|  `GROUP BY`  |  <pre>GROUP BY expression [, ...]</pre>  |  A `GROUP BY` cláusula identifica as colunas de agrupamento para a consulta. É usado em conjunto com uma expressão agregada.  | 
|  `HAVING`  |  <pre>HAVING boolean-expression</pre>  |  A `HAVING` cláusula filtra as linhas do grupo criadas pela cláusula GROUP BY.  | 
|  `SUB SELECT`  |  <pre>SELECT column1, column2<br />FROM table1<br />WHERE column3 IN (SELECT column4 FROM table2);<br /></pre>  |  Uma `SELECT` declaração incorporada em outra `SELECT` declaração.  | 
|  `JOIN`  |  <pre>SELECT column1, column2<br />FROM table1 JOIN table2<br />ON table1.column1 = table2.column1;<br /></pre>  | 
|  `INNER JOIN`  |  <pre>SELECT columns<br />FROM table1<br />INNER JOIN table2 ON table1.column = table2.column;<br /></pre>  |  An `INNER JOIN` retorna todas as linhas de ambas as tabelas que correspondem à condição de junção.  | 
|  `UNION`  |  <pre>query<br />   { UNION [ ALL ] }<br />another_query<br /></pre>  |  O `UNION` operador calcula a união do conjunto de seus dois argumentos, removendo automaticamente registros duplicados do conjunto de resultados.  | 

# Operadores lógicos
<a name="sql-supported-logical"></a>

AWS IoT SiteWise suporta os seguintes operadores lógicos.


|  **Operador**  |  **Assinatura**  |  **Descrição**  | 
| --- | --- | --- | 
|  `AND`  |  a `AND` b  |  `TRUE` se ambos os valores forem verdadeiros  | 
|  `OR`  |  a `OR` b  |  `TRUE`se um valor for verdadeiro  | 
|  `NOT`  |  expressão `NOT`  |  `TRUE`se uma expressão for falsa e `FALSE` se uma expressão for verdadeira  | 
|  `IN`  |  `IN`expressão x  |  `TRUE`se o valor estiver na expressão  | 
|  `BETWEEN`  |  `BETWEEN`a `AND` b  |  `TRUE`se o valor estiver entre o limite superior e inferior, e inclui ambos os limites  | 
|  `LIKE`  |  Padrão `LIKE`  |  `TRUE`se o valor estiver no padrão `LIKE`suporta curingas. Veja abaixo os exemplos: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot-sitewise/latest/userguide/sql-supported-logical.html)  | 

Exemplos de todos os operadores lógicos:


|  **Função**  |  **Exemplo**  | 
| --- | --- | 
|  E  |  <pre>SELECT a.asset_name <br />   FROM asset AS a, latest_value_time_series AS t <br />   WHERE t.int_value > 30 AND t.event_timestamp > TIMESTAMP '2025-05-15 00:00:01'<br /></pre>  | 
|  OU  |  <pre>SELECT a.asset_name <br />   FROM asset AS a<br />   WHERE a.asset_name like 'abc' OR a.asset_name like 'pqr'<br /></pre>  | 
|  NOT  |  <pre>SELECT ma.asset_id AS a_id<br />   FROM asset AS ma<br />   WHERE (ma.asset_id NOT LIKE 'some%patterna%' escape 'a') AND ma.asset_id='abc'<br /></pre>  | 
|  IN  |  <pre>SELECT a.asset_name <br />   FROM asset AS a<br />   WHERE a.asset_name IN ('abc', 'pqr')<br /></pre>  | 
|  BETWEEN  |  <pre>SELECT asset_id, int_value, event_timestamp AS i_v <br />   FROM raw_time_series<br />   WHERE event_timestamp BETWEEN TIMESTAMP '2025-04-15 00:00:01' and TIMESTAMP '2025-05-15 00:00:01'  <br /></pre>  | 
|  LIKE  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot-sitewise/latest/userguide/sql-supported-logical.html)  | 

# Operadores de comparação
<a name="sql-supported-comparision"></a>

AWS IoT SiteWise suporta os seguintes operadores de comparação. Todas as operações de comparação estão disponíveis para tipos de dados incorporados e são avaliadas como um booleano.


**Operadores lógicos**  

|  **Operador**  |  **Descrição**  | 
| --- | --- | 
|  `<`  |  Menor que  | 
|  `>`  |  Maior que  | 
|  `<=`  |  Menor ou igual a  | 
|  `>=`  |  Maior ou igual a  | 
|  `=`  |  Igual  | 
|  `!=`  |  Not equal  | 


**Tabela verdadeira da operação de comparação para valores não numéricos**  

|  **Tipo**  |  **Digite >= x**  |  **Tipo <= x**  |  **Tipo > x**  |  **Tipo < x**  |  **Tipo = x**  |  **Digite\$1 = x**  | 
| --- | --- | --- | --- | --- | --- | --- | 
|  `NULL`  |  `FALSE`  |  `FALSE`  |  `FALSE`  |  `FALSE`  |  `FALSE`  |  `TRUE`  | 

Alguns predicados se comportam como operadores, mas têm uma sintaxe especial. Consulte abaixo:


**Predicados de comparação**  

|  **Operador**  |  **Descrição**  | 
| --- | --- | 
|  `IS NULL`  |  Testa se um valor é`NULL`.  | 
|  `IS NOT NULL`  |  Testa se um valor não é`NULL`.  | 

## operadores NaN
<a name="sql-supported-comparision-nan"></a>

 `NaN`, ou “Não é um número”, é um valor especial na aritmética de ponto flutuante. Aqui está uma lista de `NaN` comparações e como elas funcionam. 
+ `NaN`os valores devem ser colocados entre aspas simples. Por exemplo, '`NaN`'.
+ `NaN`os valores são considerados iguais entre si.
+ `NaN`é maior do que outros valores numéricos.
+ Em funções agregadas como`AVG()`,`STDDEV()`, e`SUM()`, se houver algum valor`NaN`, o resultado é`NaN`. 
+ Em funções agregadas como `MAX()` e`MIN()`, `NaN` os valores são incluídos nos cálculos.


**Comparações de valores de NaN**  

|  **Comparação**  |  **Resultado**  | 
| --- | --- | 
|  `'NaN' ≥ x`  |  Verdadeiro  | 
|  `'NaN' ≤ x`  |  Verdadeiro se x for igual a NaN, Falso caso contrário  | 
|  `'NaN' > x`  |  Falso se x for igual a NaN, caso contrário, verdadeiro  | 
|  `'NaN' < x`  |  Falso  | 
|  `'NaN' = x`  |  Verdadeiro se x for igual a NaN, Falso caso contrário  | 
|  `'NaN' != x`  |  Falso se x for igual a NaN, caso contrário, verdadeiro  | 

# Funções SQL
<a name="sql-functions"></a>

 Os grupos de funções suportados são: 

**Topics**
+ [

# Funções escalares
](sql-functions-scalar.md)
+ [

# Funções agregadas
](sql-functions-aggregated.md)

# Funções escalares
<a name="sql-functions-scalar"></a>

 As funções escalares usam um ou mais valores de entrada e retornam um único valor de saída. Eles são amplamente usados em SQL (Structured Query Language) para manipulação e recuperação de dados, melhorando a eficiência das tarefas de processamento de dados. 

**Topics**
+ [

# Funções de dados nulos
](sql-functions-null.md)
+ [

# Funções de string
](sql-functions-string.md)
+ [

# Funções matemáticas
](sql-functions-math.md)
+ [

# Funções de data e hora
](sql-functions-date.md)
+ [

# Funções de conversão de tipos
](sql-functions-type-conv.md)

# Funções de dados nulos
<a name="sql-functions-null"></a>

 As funções de dados nulos manipulam ou manipulam valores NULL, que representam a ausência de um valor. As funções permitem que você NULLs substitua por outros valores, verifique se um valor é NULL ou execute operações que manipulam de uma NULLs maneira específica. 


|  **Função**  |  **Assinatura**  |  **Descrição**  | 
| --- | --- | --- | 
|  `COALESCE`  |   COALESCE (expressão 1, expressão 2,..., expressão N)   |  Se todas as expressões forem avaliadas como nulas, COALESCE retornará null. As expressões devem ser do mesmo tipo.  | 

**Example de uma função COALESCE**  

```
SELECT COALESCE (l.double_value, 100) AS non_double_value FROM latest_value_time_series AS l LIMIT 1
```

# Funções de string
<a name="sql-functions-string"></a>

 As funções de string são ferramentas integradas usadas para manipular e processar dados de texto. Eles permitem tarefas como concatenação, extração, formatação e pesquisa em cadeias de caracteres. Essas funções são essenciais para limpar, transformar e analisar dados baseados em texto em um banco de dados. 


**Funções de string**  

|  **Função**  |  **Assinatura**  |  **Descrição**  | 
| --- | --- | --- | 
|  `LENGTH`  |   COMPRIMENTO (string)   |  Retorna o comprimento da string.  | 
|  `CONCAT`  |   CONCAT (string, string)   |  Concatena argumentos em uma string.  | 
|  `SUBSTR`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot-sitewise/latest/userguide/sql-functions-string.html)  |  Retorna uma das seguintes opções: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot-sitewise/latest/userguide/sql-functions-string.html) Usa indexação baseada em 1 para o parâmetro inicial.  | 
|  `UPPER`  |   UPPER (sequência de caracteres)   |  Converte os caracteres na string de entrada em maiúsculas.  | 
|  `LOWER`  |   LOWER (sequência de caracteres)   |  Converte os caracteres na string de entrada em minúsculas.  | 
|  `TRIM`  |   TRIM (sequência de caracteres)   |  Remove qualquer caractere de espaço do início, do fim ou dos dois lados da string.  | 
|  `LTRIM`  |   LTRIM (sequência de caracteres)   |  Remove qualquer caractere de espaço do início da string.  | 
|  `RTRIM`  |   RTRIM (sequência de caracteres)   |  Remove qualquer caractere de espaço do final da string.  | 
|  `STR_REPLACE`  |   STR\$1REPLACE (string, de, para)   |  Substitui todas as ocorrências da substring especificada por outra substring especificada.  | 

Exemplos de todas as funções:


|  **Função**  |  **Exemplo**  | 
| --- | --- | 
|  LENGTH  |  `SELECT LENGTH(a.asset_id) AS asset_id_length FROM asset AS a`  | 
|  CONCAT  |   `SELECT CONCAT(p.property_id, p.property_name) FROM asset_property AS p`   | 
|  SUBSTR  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot-sitewise/latest/userguide/sql-functions-string.html)  | 
|  UPPER  |   `SELECT UPPER(d.string_value) AS up_string FROM raw_time_series AS d`   | 
|  LOWER  |   `SELECT LOWER(d.string_value) AS low_string FROM raw_time_series AS d`   | 
|  TRIM  |   `SELECT TRIM(d.string_value) AS tm_string FROM raw_time_series AS d`   | 
|  LTRIM  |   `SELECT LTRIM(d.string_value) AS ltrim_string FROM raw_time_series AS d`   | 
|  RTRIM  |   `SELECT RTRIM(d.string_value) AS rtrim_string FROM raw_time_series AS d`   | 
|  STR\$1REPLACE  |   `SELECT STR_REPLACE(d.string_value, 'abc', 'def') AS replaced_string FROM raw_time_series AS d`   | 

## Operador de concatenação
<a name="sql-operators-concatenation"></a>

 O operador de concatenação`||`, ou operador de tubulação, une duas cadeias de caracteres. Ele fornece uma alternativa à `CONCAT` função e é mais legível ao combinar várias cadeias de caracteres.

**Example do operador de concatenação**  

```
SELECT a.asset_name || ' - ' || p.property_name 
  AS full_name
  FROM asset a, asset_property p
```

# Funções matemáticas
<a name="sql-functions-math"></a>

 As funções matemáticas são operações matemáticas predefinidas usadas em consultas SQL para realizar cálculos em dados numéricos. Eles fornecem maneiras de manipular e transformar dados sem precisar extraí-los do banco de dados e processá-los separadamente. 


**Funções matemáticas**  

|  **Função**  |  **Assinatura**  |  **Descrição**  | 
| --- | --- | --- | 
|  `POWER`  |  POTÊNCIA (int\$1double, int\$1double)  |  Retorna o valor do primeiro argumento elevado à potência do segundo argumento.  | 
|  `ROUND`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot-sitewise/latest/userguide/sql-functions-math.html)  |  Arredonda para o número inteiro mais próximo.  | 
|  `FLOOR`  |   PISO (int\$1double)   |  Retorna o maior número inteiro não maior que o valor fornecido.  | 

Exemplos de todas as funções:


|  **Função**  |  **Exemplo**  | 
| --- | --- | 
|  POWER  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot-sitewise/latest/userguide/sql-functions-math.html)  | 
|  ROUND  |   `ROUND (32.12435, 3)`   | 
|  FLOOR  |   `FLOOR (21.2)`   | 

# Funções de data e hora
<a name="sql-functions-date"></a>

 As funções de data e hora funcionam com datas e horas. Essas funções permitem a extração de componentes específicos de uma data, realizar cálculos e manipular valores de data.

Os identificadores permitidos nessas funções são:
+ YEAR
+ MONTH
+ DAY
+ HOUR
+ MINUTE
+ SECOND


|  **Função**  |  **Assinatura**  |  **Descrição**  | 
| --- | --- | --- | 
|  `NOW`  |   AGORA ()   |  Retorna o timestamp atual com precisão de milissegundos. Ele fornece a hora exata no momento em que é executado em uma consulta.  | 
|  `DATE_ADD`  |  DATE\$1ADD (identificador, intervalo\$1duração, coluna)  |  Retorna a soma de a date/time e um número de days/hours, or of a date/time and date/time intervalos.  | 
|  `DATE_SUB`  |  DATE\$1SUB (identificador, intervalo\$1duração, coluna)  |  Retorna a diferença entre um date/time e um número de days/hours, or between a date/time and date/time intervalos.  | 
|  `TIMESTAMP_ADD`  |  TIMESTAMP\$1ADD (identificador, intervalo\$1duração, coluna)  |  Adiciona um intervalo de tempo, nas unidades de tempo fornecidas, a uma expressão de data e hora.  | 
|  `TIMESTAMP_SUB`  |  TIMESTAMP\$1SUB (identificador, intervalo\$1duração, coluna)  |  Subtrai um intervalo de tempo, nas unidades de tempo fornecidas, de uma expressão de data e hora.  | 
|  `CAST`  |  CAST (expressão AS, padrão TIMESTAMP FORMAT)  |  Converte uma expressão de string em um timestamp usando o padrão de formato especificado. Os padrões comuns incluem `'yyyy-MM-dd HH:mm:ss'` o formato padrão de data e hora. Por exemplo, `SELECT CAST('2023-12-25 14:30:00' AS TIMESTAMP) AS converted_timestamp`.  | 

**Example de uma consulta SQL usando as funções listadas:**  

```
SELECT r.asset_id, r.int_value,
  date_add(DAY, 7, r.event_timestamp) AS date_in_future,
  date_sub(YEAR, 2, r.event_timestamp) AS date_in_past,
  timestamp_add(DAY, 2, r.event_timestamp) AS timestamp_in_future,
  timestamp_sub(DAY, 2, r.event_timestamp) AS timestamp_in_past,
  now() AS time_now
FROM raw_time_series AS r
```

# Funções de conversão de tipos
<a name="sql-functions-type-conv"></a>

 As funções de conversão de tipo são usadas para alterar o tipo de dados de um valor de um para outro. Eles são essenciais para garantir a compatibilidade dos dados e realizar operações que exigem dados em um formato específico. 


|  **Função**  |  **Assinatura**  |  **Descrição**  | 
| --- | --- | --- | 
|  `TO_DATE`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot-sitewise/latest/userguide/sql-functions-type-conv.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot-sitewise/latest/userguide/sql-functions-type-conv.html)  | 
|  `TO_TIMESTAMP`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot-sitewise/latest/userguide/sql-functions-type-conv.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot-sitewise/latest/userguide/sql-functions-type-conv.html)  | 
|  `TO_TIME`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot-sitewise/latest/userguide/sql-functions-type-conv.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot-sitewise/latest/userguide/sql-functions-type-conv.html)  | 
|  `CAST`  |  ELENCO (<expression>AS<data type>)  |  Converte uma entidade ou expressão que é avaliada como um único valor, de um tipo para outro. Os tipos de dados compatíveis são: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot-sitewise/latest/userguide/sql-functions-type-conv.html)  | 

**Example de uma consulta SQL usando as funções listadas:**  

```
SELECT TO_TIMESTAMP (100) AS timestamp_value,
  TO_DATE(r.event_timestamp) AS date_value,
  TO_TIME(r.event_timestamp) AS time_value
FROM raw_time_series AS r
```

# Funções agregadas
<a name="sql-functions-aggregated"></a>

 As funções agregadas são operações de banco de dados que realizam cálculos em várias linhas de dados para produzir um único resultado resumido. Essas funções analisam conjuntos de dados para retornar valores computados como somas, médias, contagens ou outras medidas estatísticas. 


|  **Função**  |  **Assinatura**  |  **Descrição**  | 
| --- | --- | --- | 
|  `AVG`  |  AVG (expressão)  |  Retorna a média de uma expressão numérica.  | 
|  `COUNT`  |  COUNT (expressão)  |  Retorna o número de linhas que correspondem aos critérios fornecidos.  | 
|  `MAX`  |  MAX (expressão)  |  Retorna o maior valor das expressões selecionadas.  | 
|  `MIN`  |  MIN (expressão)  |  Retorna o menor valor das expressões selecionadas.  | 
|  `SUM`  |  SUM (expressão)  |  Retorna a soma de uma expressão numérica.  | 
|  `STDDEV`  |  STDDEV (expressão)  |  Retorna o desvio padrão da amostra.  | 
|  `GROUP BY`  |  GROUP BY expressão  |  Retorna uma linha criada pelas colunas de agrupamento.  | 
|  `HAVING`  |  TENDO uma expressão booleana  |  Retorna as linhas do grupo filtradas por `GROUP BY` cláusula.  | 

Exemplos de todas as funções:


|  **Função**  |  **Exemplo**  | 
| --- | --- | 
|  AVG  |  <pre>SELECT d.asset_id, d.property_id, AVG(d.int_value) FROM raw_time_series AS d</pre>  | 
|  CONTAGEM  |  <pre>SELECT COUNT(d.int_value) FROM raw_time_series AS d</pre>  | 
|  MAX  |  <pre>SELECT MAX(d.int_value) FROM raw_time_series AS d</pre>  | 
|  MIN  |  <pre>SELECT MIN(d.int_value) FROM raw_time_series AS d</pre>  | 
|  SUM  |  <pre>SELECT SUM(d.int_value) FROM raw_time_series AS d</pre>  | 
|  STDDEV  |  <pre>SELECT STDDEV(d.int_value) FROM raw_time_series AS d</pre>  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot-sitewise/latest/userguide/sql-functions-aggregated.html)  |  <pre>SELECT MAX(d.int_value) AS max_int_value, d.asset_id <br />FROM raw_time_series AS d <br />GROUP BY d.asset_id <br />HAVING MAX(d.int_value) > 5                      <br /></pre>  | 

# Consultas de exemplo
<a name="sql-examples"></a>

## Filtragem de metadados
<a name="sql-examples-meta-filter"></a>

O exemplo a seguir é para filtragem de metadados com uma `SELECT` instrução com a linguagem de AWS IoT SiteWise consulta:

```
SELECT a.asset_name, p.property_name
FROM asset a, asset_property p
WHERE a.asset_name LIKE 'Windmill%'
```

## Filtragem de valor
<a name="sql-examples-value-filter"></a>

Veja a seguir um exemplo de filtragem de valores usando uma `SELECT` instrução com a linguagem de AWS IoT SiteWise consulta:

```
SELECT a.asset_name, r.int_value
FROM asset a, raw_time_series r
WHERE r.int_value > 30
AND r.event_timestamp > TIMESTAMP '2022-01-05 12:15:00'
AND r.event_timestamp < TIMESTAMP '2022-01-05 12:20:00'
```

# Otimização de consultas
<a name="query-optimize"></a>

## Filtros de metadados
<a name="metadata-filters"></a>

Ao consultar metadados ou dados brutos, use a `WHERE` cláusula para filtrar por campos de metadados para reduzir a quantidade de dados digitalizados. Use os seguintes operadores para limitar a verificação de metadados:
+ Igual (=)
+ Não é igual (>)
+ LIKE
+ IN
+ E
+ OU

Para propriedades de atributos, use os campos a seguir para filtrar os resultados. :
+ `double_attribute_value`
+ `int_attribute_value`
+ `boolean_attribute_value`
+ `string_attribute_value`

Esses campos oferecem melhor desempenho do que a tabela **latest\$1value\$1time\$1series** para propriedades de ativos do tipo de atributo.

**nota**  
Use literais no lado direito dos operadores para limitar adequadamente a varredura de dados. Por exemplo, a consulta a seguir tem um desempenho pior do que usar uma string literal estrita:  

```
SELECT property_id FROM asset_property WHERE property_name = CONCAT('my', 'property')
```

**Example para filtros de metadados:**  

```
SELECT p.property_name FROM asset_property p
WHERE p.property_type = 'attribute' AND p.string_attribute_value LIKE 'my-property-%'
```

## Filtros de dados brutos
<a name="raw-data-filters"></a>

**Todas as tabelas de dados brutos (**raw\$1time\$1series, latest\$1value\$1time\$1series****, precomputed\$1aggregates) têm timestamps associados às suas linhas**.** Além dos filtros de metadados, use filtros de `WHERE` cláusula no `event_timestamp` campo para reduzir a quantidade de dados digitalizados. Use as seguintes operações para limitar a varredura de dados brutos:
+ Igual (=)
+ Maior que (>)
+ Menor que (<)
+ Maior ou igual a (>=)
+ Menor ou igual a (<=)
+ BETWEEN
+ E

**Exemplos de filtros**:
+  Ao consultar a tabela **precomputed\$1aggregates**, sempre especifique um filtro de qualidade na cláusula. `WHERE` Isso reduz a quantidade de dados que a consulta verifica, especialmente se você estiver procurando `BAD` por `UNCERTAIN` dados. 

   **Também é altamente recomendável usar um filtro de resolução (1m, 15m, 1h ou 1d) ao consultar a tabela precomputed\$1aggregates.** Se você não especificar um filtro de resolução, AWS IoT SiteWise usará como padrão uma varredura completa da tabela em todas as resoluções, o que é ineficiente. 
+  Ao consultar dados brutos, as funções de timestamp também podem ser usadas na `WHERE` cláusula para filtrar a quantidade de dados digitalizados. Por exemplo, a consulta a seguir verifica apenas os últimos 30 minutos de dados da tabela **raw\$1time\$1series**: 

  ```
  SELECT r.event_timestamp, r.double_value
  FROM raw_time_series r
  WHERE r.event_timestamp > TIMESTAMP_SUB(MINUTE, 30, NOW())
  ```

**nota**  
Não são iguais `(!=)` e os `OR` operadores normalmente não aplicam filtros significativos à verificação de dados brutos. Filtros em valores de dados brutos (string\$1value, double\$1value etc.) também não limitam a varredura de dados brutos.

## Otimização JOIN
<a name="join-optimization"></a>

AWS IoT SiteWise O SQL suporta a `JOIN` palavra-chave para mesclar duas tabelas. Somente `JOIN` aqueles que filtram ativamente em um campo (usando a `ON` palavra-chave) são suportados. As uniões cartesianas completas são proibidas.

AWS IoT SiteWise também suporta `JOIN` s implícitos sem usar a `JOIN` palavra-chave. Elas são permitidas entre tabelas de metadados diferentes e entre uma tabela de metadados e uma tabela bruta. Por exemplo, esta consulta:

```
SELECT a.asset_name, p.property_name FROM asset a, asset_property p
```

Tem um desempenho melhor do que essa consulta equivalente:

```
SELECT a.asset_name, p.property_name FROM asset a
JOIN asset_property p ON a.asset_id = p.asset_id
```

As seguintes junções implícitas são permitidas (O é permitido, X é proibido):


|  | asset | asset\$1property | latest\$1value\$1time\$1series | raw\$1time\$1series | precomputed\$1aggregates | subconsulta | 
| --- | --- | --- | --- | --- | --- | --- | 
| asset | X | O | O | O | O | X | 
| asset\$1property | O | X | O | O | O | X | 
| latest\$1value\$1time\$1series | O | O | X | X | X | X | 
| raw\$1time\$1series | O | O | X | X | X | X | 
| precomputed\$1aggregates | O | O | X | X | X | X | 
| subconsulta | X | X | X | X | X | X | 

Use `JOIN` s implícitos sempre que possível. Se você precisar usar a `JOIN` palavra-chave, aplique filtros nas tabelas de ensino individuais `JOIN` para minimizar os dados digitalizados. Por exemplo, em vez dessa consulta:

```
SELECT level1.asset_id, level2.asset_id, level3.asset_id
FROM asset AS level1
JOIN asset AS level2 ON level2.parent_asset_id = level1.asset_id
JOIN asset AS level3 ON level3.parent_asset_id = level2.asset_id
WHERE level1.asset_name LIKE 'level1%'
AND level2.asset_name LIKE 'level2%'
AND level3.asset_name LIKE 'level3%'
```

Use essa consulta mais eficiente:

```
SELECT level1.asset_id, level2.asset_id, level3.asset_id
FROM asset AS level1
JOIN (SELECT asset_id, parent_asset_id FROM asset WHERE asset_name LIKE 'level2%') AS level2 ON level2.parent_asset_id = level1.asset_id
JOIN (SELECT asset_id, parent_asset_id FROM asset WHERE asset_name LIKE 'level3%') AS level3 ON level3.parent_asset_id = level2.asset_id
WHERE level1.asset_name LIKE 'level1%'
```

Ao inserir filtros de metadados em subconsultas, você garante que tabelas individuais no `JOIN` s sejam filtradas durante o processo de digitalização. Você também pode usar a `LIMIT` palavra-chave em subconsultas para obter o mesmo efeito.

## Consultas grandes
<a name="large-queries"></a>

Para consultas que produzem mais linhas do que o padrão, defina o tamanho da página da [ExecuteQuery](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ExecuteQuery.html)API para o valor máximo de 20000. Isso melhora o desempenho geral da consulta.

Use a `LIMIT` cláusula para reduzir a quantidade de dados digitalizados para algumas consultas. Observe que as funções agregadas e certas cláusulas de toda a tabela (`GROUP BY`,`ORDER BY`,`JOIN`) exigem uma verificação completa para serem concluídas antes de aplicar a cláusula. `LIMIT`

**nota**  
 AWS IoT SiteWise pode escanear uma quantidade mínima de dados mesmo com a `LIMIT` cláusula aplicada, especialmente para consultas de dados brutos que examinam várias propriedades. 

# ODBC
<a name="query-ODBC"></a>

O [driver ODBC](https://github.com/awslabs/aws-iotsitewise-odbc-driver) de código aberto AWS IoT SiteWise fornece uma interface SQL relacional AWS IoT SiteWise para desenvolvedores e permite a conectividade a partir de ferramentas de business intelligence (BI), como Power BI Desktop e Microsoft Excel. O driver AWS IoT SiteWise ODBC está atualmente disponível no [Windows](https://github.com/awslabs/aws-iotsitewise-odbc-driver/releases) e oferece suporte a SSO com Okta e Microsoft Azure Active Directory (AD).

Para obter mais informações, consulte a [documentação do driver AWS IoT SiteWise ODBC em. GitHub](https://github.com/awslabs/aws-iotsitewise-odbc-driver/blob/main/docs/markdown/index.md)

**Topics**
+ [

# Sintaxe da string de conexão e opções para o driver ODBC
](query-ODBC-connecting.md)
+ [

# Exemplos de cadeias de conexão para o AWS IoT SiteWise driver ODBC
](query-ODBC-connecting-examples.md)
+ [

# Solução de problemas de conexão com o driver ODBC
](query-ODBC-connecting-troubleshooting.md)

# Sintaxe da string de conexão e opções para o driver ODBC
<a name="query-ODBC-connecting"></a>

A sintaxe para especificar as opções de cadeia de conexão para o driver ODBC é a seguinte:

```
Driver={AWS IoT SiteWise ODBC Driver};(option)=(value);
```

As opções disponíveis são as seguintes:

**Opções de conexão do driver**
+ **`Driver`**   *(obrigatório)*   –   O driver que está sendo usado com o ODBC.

  O padrão é AWS IoT SiteWise.
+ **`DSN`**   –   O nome da fonte de dados (DSN) a ser usado para configurar a conexão.

  O padrão é `NONE`.
+ **`Auth`**   –   Modo de autenticação. Este valor deve ser um dos seguintes:
  + `AWS_PROFILE`: use a cadeia de credenciais padrão.
  + `IAM`— Use as credenciais AWS do IAM.
  + `AAD` – Use o provedor de identidade do Azure Active Directory (AD).
  + `OKTA` – Use o provedor de identidade Okta.

  O padrão é `AWS_PROFILE`.

**Opções de configuração do endpoint**
+ **`EndpointOverride`**— A substituição do endpoint para o AWS IoT SiteWise serviço. Essa é uma opção avançada que substitui a região. Por exemplo:

  ```
  iotsitewise.us-east-1.amazonaws.com
  ```
+ **`Region`**— A região de assinatura do endpoint do AWS IoT SiteWise serviço.

  O padrão é `us-east-1`.

**Opção do provedor de credencial**
+ **`ProfileName`**— O nome do perfil no arquivo de AWS configuração.

  O padrão é `NONE`.

**AWS Opções de autenticação do IAM**
+ **`UID`**ou **`AccessKeyId`**— O ID da chave de acesso do AWS usuário. Se ambos `UID` e `AccessKeyId` forem fornecidos na cadeia de conexão, o `UID` valor será usado, a menos que esteja vazio.

  O padrão é `NONE`.
+ **`PWD`** ou **`SecretKey`**   –   A chave de acesso secreta do usuário da AWS. Se ambos `PWD` e `SecretKey` forem fornecidos na string de conexão, o valor `PWD` será usado, a menos que esteja vazio.

  O padrão é `NONE`.
+ **`SessionToken`**   –   O token de sessão temporário necessário para acessar um banco de dados com a autenticação multifator (MFA) habilitada. Não inclua um ` = ` no final da entrada.

  O padrão é `NONE`.

**Opções de autenticação baseadas em SAML para Okta**
+ **`IdPHost`**   –   O nome do host do IdP especificado.

  O padrão é `NONE`.
+ **`UID`** ou **`IdPUserName`**   –   O nome de usuário da conta IdP especificada. Se ambos `UID` e `IdPUserName` forem fornecidos na string de conexão, o valor `UID` será usado, a menos que esteja vazio.

  O padrão é `NONE`.
+ **`PWD`** ou **`IdPPassword`**   –  A senha da conta IdP especificada. Se ambos `PWD` e `IdPPassword` forem fornecidos na string de conexão, o valor `PWD` será usado, a menos que esteja vazio.

  O padrão é `NONE`.
+ **`OktaApplicationID`**— O ID exclusivo fornecido pela Okta associado ao AWS IoT SiteWise aplicativo. Um local para encontrar o ID do aplicativo (AppId) está no `entityID` campo fornecido nos metadados do aplicativo. Um exemplo é:

  ```
  entityID="http://www.okta.com//(IdPAppID)
  ```

  O padrão é `NONE`.
+ **`RoleARN`**   –   O nome do recurso da Amazon (ARN) da função que o autor da chamada deve assumir.

  O padrão é `NONE`.
+ **`IdPARN`**   –   O nome do recurso da Amazon (ARN) do provedor SAML do IAM que descreve o IdP.

  O padrão é `NONE`.

**Opções de autenticação baseada em SAML para Azure Active Directory**
+ **`UID`** ou **`IdPUserName`**   –   O nome de usuário da conta IdP especificada.

  O padrão é `NONE`.
+ **`PWD`** ou **`IdPPassword`**   –  A senha da conta IdP especificada.

  O padrão é `NONE`.
+ **`AADApplicationID`**   –   O ID exclusivo do aplicativo registrado no Azure AD.

  O padrão é `NONE`.
+ **`AADClientSecret`**   –   O segredo do cliente associado ao aplicativo registrado no Azure AD usado para autorizar a busca de tokens.

  O padrão é `NONE`.
+ **`AADTenant`**   –   O ID do locatário do Azure AD.

  O padrão é `NONE`.
+ **`RoleARN`**   –   O nome do recurso da Amazon (ARN) da função que o autor da chamada deve assumir.

  O padrão é `NONE`.
+ **`IdPARN`**   –   O nome do recurso da Amazon (ARN) do provedor SAML do IAM que descreve o IdP.

  O padrão é `NONE`.

**AWS Opções do SDK (avançado)**
+ **`RequestTimeout`**— O tempo em milissegundos em que o AWS SDK espera por uma solicitação de consulta antes de atingir o tempo limite. Qualquer valor não positivo desativa o tempo limite da solicitação.

  O padrão é `3000`.
+ **`ConnectionTimeout`**— O tempo em milissegundos em que o AWS SDK espera que os dados sejam transferidos por uma conexão aberta antes de atingir o tempo limite. Um valor de 0 desativa o tempo limite da conexão. Esse valor deve ser não negativo.

  O padrão é `1000`.
+ **`MaxRetryCountClient`**   –   O número máximo de tentativas para erros que podem ser repetidos com códigos de erro 5xx no SDK. O valor não deve ser negativo.

  O padrão é `0`.
+ **`MaxConnections`**— O número máximo de conexões HTTP abertas simultaneamente com o AWS IoT SiteWise serviço. O valor deve ser positivo.

  O padrão é `25`.

**Opções de log do driver ODBC**
+ **`LogLevel`**   –   O nível de registro para registro do driver. Deve ser um dos seguintes:
  + **0**   (OFF)
  + **1**   (ERROR)
  + **2**   (AVISO)
  + **3**   (INFO.
  + **4**   (DEBUG).

  O padrão é `1` (ERRO).

  **Aviso:** informações pessoais podem ser registradas pelo driver ao usar o modo de registro DEBUG.
+ **`LogOutput`**   –   Pasta na qual armazenar o arquivo de log.

  O padrão é:
  + **Windows:**`%USERPROFILE%`, ou se não estiver disponível, `%HOMEDRIVE%%HOMEPATH%`.
  + **macOS e Linux:**`$HOME`, ou se não estiver disponível, o campo do valor `pw_dir` de `getpwuid(getuid())` retorno da função.

**Opções de registro em log do SDK**

O nível de registro do AWS SDK é separado do nível de registro do driver AWS IoT SiteWise ODBC. Configurar um não afeta o outro.

O nível de log do SDK é definido usando a variável `SW_AWS_LOG_LEVEL` de ambiente. Os valores válidos são:
+ `OFF`
+ `ERROR`
+ `WARN`
+ `INFO`
+ `DEBUG`
+ `TRACE`
+ `FATAL`

Se `SW_AWS_LOG_LEVEL` não estiver definido, o nível de log do SDK será definido como padrão, que é `WARN`.

## Conectar-se por meio de um proxy
<a name="query-ODBC-connecting-proxy"></a>

O driver ODBC oferece suporte à conexão AWS IoT SiteWise por meio de um proxy. Para usar esse atributo, configure as seguintes variáveis de ambiente com base na sua configuração de proxy:
+ **`SW_PROXY_HOST`**   –   o host proxy.
+ **`SW_PROXY_PORT`**   –   o número da porta do proxy.
+ **`SW_PROXY_SCHEME`**   –   O esquema de proxy, `http` ou `https`.
+ **`SW_PROXY_USER`**   –   O nome de usuário a ser usado para a autenticação de proxy.
+ **`SW_PROXY_PASSWORD`**   –  A senha a ser usada para autenticação de proxy.
+ **`SW_PROXY_SSL_CERT_PATH`**   –  O arquivo de certificado SSL a ser usado para se conectar a um proxy HTTPS.
+ **`SW_PROXY_SSL_CERT_TYPE`**   –   O tipo do certificado SSL do cliente proxy.
+ **`SW_PROXY_SSL_KEY_PATH`**   –   O arquivo de chave privada a ser usado para se conectar a um proxy HTTPS.
+ **`SW_PROXY_SSL_KEY_TYPE`**   –  O tipo do arquivo de chave privada usado para se conectar a um proxy HTTPS.
+ **`SW_PROXY_SSL_KEY_PASSWORD`**   –   A frase secreta do arquivo de chave privada usado para se conectar a um proxy HTTPS.

# Exemplos de cadeias de conexão para o AWS IoT SiteWise driver ODBC
<a name="query-ODBC-connecting-examples"></a>

## Exemplo de conexão com o driver ODBC com credenciais do IAM
<a name="query-ODBC-connecting-examples-iam"></a>

```
Driver={AWS IoT SiteWise ODBC Driver};Auth=IAM;AccessKeyId=(your access key ID);SecretKey=(your secret key);SessionToken=(your session token);Region=us-east-1;
```

## Exemplo de conexão com o driver ODBC com um perfil
<a name="query-ODBC-connecting-examples-profile"></a>

```
Driver={AWS IoT SiteWise ODBC Driver};ProfileName=(the profile name);region=us-east-1;
```

O driver tentará se conectar usando as credenciais fornecidas em ou `~/.aws/credentials`, se um arquivo for especificado na variável de ambiente `AWS_SHARED_CREDENTIALS_FILE`, usando as credenciais desse arquivo.

## Exemplo de conexão com o driver ODBC com o Okta
<a name="query-ODBC-connecting-examples-okta"></a>

```
Driver={AWS IoT SiteWise ODBC Driver};Auth=OKTA;region=us-east-1;idPHost=(your host at Okta);idPUsername=(your user name);idPPassword=(your password);OktaApplicationID=(your Okta AppId);roleARN=(your role ARN);idPARN=(your Idp ARN);
```

## Exemplo de conexão com o driver ODBC com o Azure Active Directory (AAD)
<a name="query-ODBC-connecting-examples-aad"></a>

```
Driver={AWS IoT SiteWise ODBC Driver};Auth=AAD;region=us-east-1;idPUsername=(your user name);idPPassword=(your password);aadApplicationID=(your AAD AppId);aadClientSecret=(your AAD client secret);aadTenant=(your AAD tenant);roleARN=(your role ARN);idPARN=(your idP ARN);
```

## Exemplo de conexão com o driver ODBC com um endpoint especificado e um nível de registro de 2 (AVISO)
<a name="query-ODBC-connecting-examples-okta"></a>

```
Driver={AWS IoT SiteWise ODBC Driver};Auth=IAM;AccessKeyId=(your access key ID);SecretKey=(your secret key);EndpointOverride=iotsitewise.us-east-1.amazonaws.com;Region=us-east-1;LogLevel=2;
```

# Solução de problemas de conexão com o driver ODBC
<a name="query-ODBC-connecting-troubleshooting"></a>

**nota**  
Se o nome de usuário e a senha já estiverem especificados no DSN, não os especifique novamente quando o gerenciador do driver ODBC os solicitar.

Um código de erro `01S02` com uma mensagem `Re-writing (connection string option) (have you specified it several times?)` ocorre quando uma opção de cadeia de conexão é passada mais de uma vez na cadeia de conexão. Especificar uma opção mais de uma vez gera um erro. Ao fazer uma conexão com um DSN e uma cadeia de conexão, se uma opção de conexão já estiver especificada no DSN, não a especifique novamente na cadeia de conexão.