Adicionando suporte para tipo de dados long no Azure Time Series Insights Gen2
Observação
O serviço Time Series Insights será desativado em 7 de julho de 2024. Considere migrar ambientes existentes para soluções alternativas o mais rápido possível. Para obter mais informações sobre a substituição e a migração, visite nossa documentação.
A adição de suporte para tipo de dados long afeta como armazenamos e indexaremos os dados numéricos somente em ambientes do Azure Time Series Insights Gen2. Se você tiver um ambiente Gen1, poderá desconsiderar essas alterações.
A partir de 29 de junho ou 30 de junho de 2020, dependendo da sua região, seus dados serão indexados como Long e Double. Se você tiver dúvidas ou preocupações sobre essa alteração, envie um tíquete de suporte por meio do portal do Azure e mencione este comunicado.
Se você for afetado por qualquer um dos seguintes casos, faça as alterações recomendadas:
- Caso 1: no momento, você usa variáveis de Modelo de Séries Temporais e envia apenas tipos de dados integrais em seus dados de telemetria.
- Caso 2: no momento, você usa variáveis de Modelo de Séries Temporárias e envia tipos de dados integrais e não integrais em seus dados de telemetria.
- Caso 3: você usa variáveis categóricas para mapear valores inteiros para categorias.
- Caso 4: você usa o SDK do JavaScript para criar um aplicativo de front-end personalizado.
- Caso 5: você está se aproximando do limite de nome de 1.000 propriedades no armazenamento a quente e envia dados integrais e não integrais. A contagem de propriedades pode ser exibida como uma métrica no portal do Azure.
Se qualquer um dos casos se aplicar a você, faça alterações em seu modelo. Atualize a TSX (Expressão de Série Temporal) em sua definição de variável com as alterações recomendadas. Atualize ambos:
- Gerenciador do Azure Time Series Insights
- Qualquer cliente personalizado que usa nossas APIs
Dependendo da solução de IoT e das restrições, talvez você não tenha visibilidade dos dados enviados ao seu ambiente Azure Time Series Insights Gen2. Se você não tiver certeza se seus dados são integrais somente ou integrais e não integrais, você tem algumas opções:
- Você pode aguardar a liberação do recurso. Em seguida, explore seus eventos brutos na interface do usuário do gerenciador para entender quais propriedades são salvas em duas colunas separadas.
- Você pode, de modo preventivo, fazer as alterações recomendadas para todas as marcas numéricas.
- Você pode rotear temporariamente um subconjunto de eventos para o armazenamento a fim de entender melhor e explorar seu esquema.
Para armazenar eventos, ative a captura de eventos para os Hubs de Eventos do Azure ou a rota do Hub IoT para o Armazenamento de Blobs do Azure.
Os dados também podem ser observados por meio do Gerenciador de Hub de Eventos ou usando o Host do Processador de Eventos.
Se você usar o Hub IoT, vá para Ler mensagens do dispositivo para a nuvem por meio do ponto de extremidade interno para saber como acessar o ponto de extremidade interno.
Observação
Você poderá enfrentar uma interrupção se não fizer as alterações recomendadas. Por exemplo, as variáveis do Time Series Insights afetadas que são acessadas por meio das APIs de consulta ou do Gerenciador do Time Series Insights retornarão null (ou seja, não mostrarão nenhum dado no gerenciador).
Alterações recomendadas
Caso 1: usar variáveis do Modelo de Série Temporal e enviar apenas tipos de dados integrais nos dados de telemetria
As alterações recomendadas para o Caso 1 são as mesmas que para o Caso 2. Siga as instruções da seção para o Caso 2.
Caso 2: usar variáveis do Modelo de Série Temporal e enviar tipos integrais e não integrais nos dados de telemetria
Se você envia dados de telemetria inteiros no momento, seus dados serão divididos em duas colunas:
- propertyValue_double
- propertyValue_long
Seus dados inteiros serão gravados em propertyValue_long. Dados numéricos ingeridos anteriormente (e ingeridos futuramente) no propertyValue_double não são copiados.
Se quiser consultar dados entre essas duas colunas para a propriedade propertyValue, você precisará usar a função escalar coalesce() na sua TSX. A função aceita argumentos do mesmo DataType e retorna o primeiro valor não nulo na lista de argumentos. Para obter mais informações, confira Conceitos de acesso a dados do Azure Time Series Insights Gen2.
Definição de variável na TSX – numérico
Definição de variável anterior:
Definição da nova variável:
Você também pode usar coalesce($event.propertyValue.Double, toDouble($event.propertyValue.Long)) como a Expressão de Série Temporal personalizada.
Definição de variável embutida usando APIs de consulta da TSX – numéricas
Definição de variável anterior:
"PropertyValueVariable": {
"kind": "numeric",
"value": {
"tsx": "$event.propertyValue.Double"
},
"filter": null,
"aggregation": {
"tsx": "avg($value)"
}
}
Definição da nova variável:
"PropertyValueVariable ": {
"kind": "numeric",
"value": {
"tsx": "coalesce($event.propertyValue.Long, toLong($event.propertyValue.Double))"
},
"filter": null,
"aggregation": {
"tsx": "avg($value)"
}
}
Você também pode usar coalesce($event.propertyValue.Double, toDouble($event.propertyValue.Long)) como a Expressão de Série Temporal personalizada.
Observação
Recomendamos que você atualize essas variáveis em todos os locais em que elas possam ser usadas. Esses locais incluem o Modelo de Série Temporal, as consultas salvas e as consultas do conector do Power BI.
Caso 3: usar variáveis categóricas para mapear valores inteiros nas categorias
Se você usa atualmente variáveis categóricas que mapeiam valores inteiros nas categorias, provavelmente você está usando a função toLong para converter dados de tipo Double para o tipo Long. Assim como os Casos 1 e 2, você precisa unir as colunas com os DataType Double e Long.
Definição de variável no Gerenciador do Time Series Insights – categóricas
Definição de variável anterior:
Definição da nova variável:
Você também pode usar coalesce($event.propertyValue.Double, toDouble($event.propertyValue.Long)) como a Expressão de Série Temporal personalizada.
Variáveis categóricas ainda exigem que o valor seja do tipo inteiro. O DataType de todos os argumentos da função coalesce() deve ser Long na Expressão de Série Temporal personalizada.
Definição de variável embutida usando as APIs de consulta da TSX – categórica
Definição de variável anterior:
"PropertyValueVariable_Long": {
"kind": "categorical",
"value": {
"tsx": "tolong($event.propertyValue.Double)"
},
"categories": [
{
"label": "Good",
"values": [0, 1, 2 ]
},
{
"label": "Bad",
"values": [ 3, 4 ]
} ],
"defaultCategory": {
"label": "Unknown"
}
}
Definição da nova variável:
"PropertyValueVariable_Long": {
"kind": "categorical",
"value": {
"tsx": "coalesce($event.propertyValue.Long, tolong($event.propertyValue.Double))"
},
"categories": [
{
"label": "Good",
"values": [0, 1, 2 ]
},
{
"label": "Bad",
"values": [ 3, 4 ]
} ],
"defaultCategory": {
"label": "Unknown"
}
}
Variáveis categóricas ainda exigem que o valor seja do tipo inteiro. O DataType de todos os argumentos da função coalesce() deve ser Long na Expressão de Série Temporal personalizada.
Observação
Recomendamos que você atualize essas variáveis em todos os locais em que elas possam ser usadas. Esses locais incluem o Modelo de Série Temporal, as consultas salvas e as consultas do conector do Power BI.
Caso 4: usar o SDK do JavaScript para criar um aplicativo de front-end personalizado
Se você for afetado pelos casos 1 a 3 e criar aplicativos personalizados, será necessário atualizar suas consultas para usar a função de coalesce(), conforme demonstrado nos exemplos anteriores.
Caso 5: aproximando-se do limite de 1.000 propriedades no armazenamento a quente
Se você for um usuário do armazenamento quente com um grande número de propriedades e acreditar que essa alteração possa levar seu ambiente a extrapolar o limite de nomes de 1.000 propriedades no armazenamento quente, envie um tíquete de suporte por meio do portal do Azure e mencione este comunicado.
Próximas etapas
- Confira a lista completa de tipos de dados com suporte.