sintaxe de expressão de série temporal Azure Time Series Insights Gen2

Visão geral

A expressão de série temporal (TSX) é uma linguagem de expressão baseada em cadeia de caracteres com digitação forte. O TSX é usado para representar as entidades a seguir em uma Consulta de Série Temporal.

  • Filtrar
  • Valor
  • Agregação

Expressões de filtro

Expressões de filtro são usadas para representar cláusulas boolianas. A tabela a seguir lista exemplos de filtros:

TSX Descrição
$event.PointValue.Double = 3.14 true para eventos com PointValue duplo igual a 3.14
$event.PointValue > 3.14 AND $event.Status.String = 'Good' truepara eventos com PointValue maior que 3.14 e cadeia de caracteres status Good
$event.$ts > dt'2018-11-01T02:03:45Z' true para eventos com um carimbo de data/hora maior que 2018-11-01T02:03:45Z
$event.PointEval.Bool = true true para eventos com PointValue igual a true

Expressões de valor

As expressões de valor são usadas para representar o valor para variáveis numéricas e categóricas. Uma expressão de valor pode ser uma expressão de referência de propriedade do tipo Double ou Long.

Por exemplo:

TSX Observações
$event.Temperature.Double O último token em qualquer expressão de valor (nesse caso Double) é lido como o Tipo da propriedade.
$event.Temperature Supõe-se que o tipo seja Double para uma propriedade acessada por um único token.
$event['Temperature-Celsius'] Use [ e ] para tokens de escape que têm caracteres especiais. Além disso, use \ dentro dos colchetes para escapar dos seguintes caracteres: \ e '.
$event.Temperature.Celsius.Double Use . para acessar propriedades aninhadas. Ao acessar propriedades aninhadas, o Tipo é necessário.
$event.Temperature['Celsius-C'].Double Use [ e ] para tokens de escape que têm caracteres especiais ao acessar propriedades aninhadas. Além disso, use \ dentro dos colchetes para escapar dos seguintes caracteres: \ e '. Ao acessar propriedades aninhadas, o Tipo é necessário.
$event['Temperature']['Celsius'].Double O uso de [ e ] para tokens de escape é permitido em qualquer token.

Tipo de variável numérica

O resultado da expressão de valor deve ser do tipo Double ou Long .

Tipo de variável de agregação

O resultado da expressão de valor pode ser de qualquer tipo com suporte.

Tipo de variável categórica

O resultado da expressão de valor só pode ser o tipo String ou Long .

Expressões de agregação

Expressões de agregação são usadas para representar a operação de agregação a ser usada na consulta. Uma expressão de agregação resulta em um único valor para cada intervalo. Expressões de agregação podem ser aplicadas em variáveis numéricas e de agregação.

Expressões de agregação – tipo de variável numérica

Variáveis numéricas devem se referir a $value.

Aqui estão as funções de agregação com suporte.

Função de agregação Exemplo Descrição
min min($value) Calcula o mínimo do $value por intervalo. null Evita valores. Não pode ser usado com interpolação.
max max($value) Calcula o máximo do $value por intervalo. null Evita valores. Não pode ser usado com interpolação.
sum sum($value) Calcula a soma de $value em todos os eventos no intervalo. null Evita valores. Não pode ser usado com interpolação.
avg avg($value) Calcula a média de $value em todos os eventos no intervalo. null Evita valores. Não pode ser usado com interpolação.
first first($value) Retorna $value o primeiro evento que ocorre no intervalo por carimbo de data/hora do evento. Não evitanull valores. Não pode ser usado com interpolação.
last last($value) Retorna $value o último evento que ocorre no intervalo por carimbo de data/hora do evento. Não evitanull valores. Não pode ser usado com interpolação.
median median($value) Retorna $value o evento do meio no intervalo por carimbo de data/hora do evento. Não evitanull valores. Não pode ser usado com interpolação.
stdev stdev($value) Retorna $value o desvio padrão dos eventos no intervalo. null Evita valores. Não pode ser usado com interpolação.
twsum twsum($value) Retorna $value a soma ponderada por tempo dos eventos no intervalo. Requer interpolação.
twavg twavg($value) Retorna $value a média ponderada de tempo dos eventos no intervalo. Requer interpolação.
left left($value) Retorna o $value na borda esquerda do intervalo determinado. Requer interpolação.
right right($value) Retorna o $value na borda direita do intervalo determinado. Requer interpolação.

Expressões de agregação – tipo de variável de agregação

As variáveis de agregação devem se referir a uma Propriedade no conteúdo do evento.

Aqui estão as funções de agregação com suporte.

Função de agregação Exemplo Descrição
count count() Retorna o número de eventos por intervalo.
min min($event.Temperature.Double) Calcula o mínimo da propriedade Temperatura por intervalo. null Evita valores.
max max($event.Temperature.Long) Calcula o máximo da propriedade Temperatura por intervalo. null Evita valores.
sum sum($event.Temperature.Double) Calcula a soma da propriedade Temperatura em todos os eventos no intervalo. null Evita valores.
avg avg($event.Temperature.Long) Calcula a média da propriedade Temperatura em todos os eventos no intervalo. null Evita valores.
first first($event.Temperature.String) Retorna o primeiro valor (por carimbo de data/hora do evento) da propriedade Temperatura de todos os eventos no intervalo. Não evitanull valores.
last last($event.Temperature.String) Retorna o último valor (por carimbo de data/hora do evento) da propriedade Temperatura de todos os eventos no intervalo. Não evitanull valores.
median median($event.Temperature.String) Retorna o valor de ocorrência intermediária (por carimbo de data/hora do evento) da propriedade Temperatura de todos os eventos no intervalo. Não evitanull valores.
stdev stdev($event.Temperature.String) Calcula o desvio padrão da propriedade Temperatura por intervalo. null Evita valores.

Para um tipo de variável de agregação , essas funções podem ser combinadas na expressão de agregação. Por exemplo: max($event.Temperature.Long) - min($event.Temperature.Long).

Sintaxe

Esta seção descreve os principais conceitos de sintaxe e operadores de consulta concatenados para expressões de formulário.

Literais com suporte

Observação

Os literais abaixo são usados para formar expressões, consulte o artigo Tipos de dados com suporte para obter a lista completa de tipos de dados.

Tipo primitivo Literais
Bool TRUE, FALSE
DateTime dt'2016-10-08T03:22:55.3031599Z'
Double 1.23, 1.0
Long 1, 6
Cadeia de caracteres 'abc'
TimeSpan ts'P1Y2M3DT4M5.67S'
Nulo NULL

Tipos de operando com suporte

Operação Tipos com suporte Observações
<, >, <, > Double, Long, DateTime, TimeSpan
=, =, <> Double, Long, String, Bool, DateTime, TimeSpan, NULL <> é equivalente a !=
+, -, *, / Double, Long, DateTime, TimeSpan

Para expressões de comparação (<, >, <=, >=, =, !=), os operandos podem ser NULL ou ser do mesmo tipo. Em cada expressão de predicado, os tipos de operandos LHS (lado esquerdo) e RHS (lado direito) são validados para corresponder. Erros ocorrem quando tipos de LHS e RHS não concordam ou uma operação não é permitida em tipos específicos.

Observação

O tipo de cadeia de caracteres não permite valor nulo no Warm Store:

  • A comparação de Cadeia de Caracteres com NULL e cadeia de caracteres vazia ('') se comporta da mesma maneira: $event.p1.String = NULL é equivalente a $event.p1.String = ''.
  • A API pode retornar valores NULL mesmo se os eventos originais contiverem cadeias de caracteres vazias.

No futuro, o mesmo comportamento será no Cold Store.

Não use a dependência de valores NULL em colunas String e trate-os da mesma maneira que cadeias de caracteres vazias.

  • Um tipo marcar é aplicado:
    • Qualquer tipo de propriedade é aceito em relação a um NULL literal.
    • Os tipos de LHS e RHS devem corresponder.

Aqui estão exemplos das propriedades p1 e p2 do tipo String, propriedade p3 do tipo Double e uma propriedade aninhada armazenada como p4.p5 do tipo Double:

Filtrar É válido? Observações
$event.p1.String = 'abc' Sim
$event.p1.String = $event.p2.String Sim
$event.p1.String = NULL Sim NULL corresponde a qualquer tipo do lado esquerdo.
$event.p3.Double = 'abc' Não Tipos incompatíveis.
$event.p3.Double = $event.p1.String Não Tipos incompatíveis.
$event.p1 = 'abc' Não Tipos incompatíveis.
$event.p1 = 1 Não Tipos incompatíveis.
$event.p1 = true Não Tipos incompatíveis.
$event.p1 = NULL Sim p1 é o único token usado. Interpretado como $event.p1.Double = NULL
$event['p1'] != NULL Sim ['p1'] é o único token usado. Interpretado como $event['p1'].Double != NULL
$event.p4.p5 = 0.0 Não Sintaxe de referência de propriedade inválida. Um tipo deve ser especificado no LHS de comparação.
$event.p4.p5.Double = 0.0 Sim

Funções escalares com suporte

Veja abaixo a lista de funções escalares por categorias:

Funções de conversão

Nome da função Assinatura Exemplo Observações
toDouble Double toDouble (value: String, Double, Long) toDouble($event.value.Long) Converte os argumentos em Double.
toLong Long toLong (value: String, Double, Long) toLong($event.value.Double + 1.0) Converte os argumentos em Long.
toString String toString (value: String, Double, Long) toString($event.value.Double) Converte argumentos em Cadeia de caracteres.

Funções matemáticas

Nome da função Assinatura Exemplo Observações
round Double round(value:Double) round($event.value.Double) Arredonda um número flutuante de precisão dupla para o integral mais próximo.
ceiling Double ceiling(value:Double) ceiling($event.value.Double) Retorna o menor valor integral que é maior ou igual ao número de ponto flutuante de precisão dupla.
floor Double floor(value:Double) floor($event.value.Double) Retorna o maior valor integral que é menor ou igual ao número de ponto flutuante de precisão dupla.

Funções trigonométricas

Nome da função Assinatura Exemplo Observações
cos Double cos(value:Double) cos($event.value.Double) Retorna o Cosseno do ângulo especificado em radianos.
sin Double sin(value:Double) sin($event.value.Double) Retorna o seno do ângulo especificado em radianos.
tan Double tan(value:Double) tan($event.value.Double) Retorna a Tangente do ângulo especificado em radianos.
acos Double acos(value:Double) acos($event.value.Double) Retorna o ângulo em radianos cujo Cosseno é o número especificado.
asin Double asin(value:Double) asin($event.value.Double) Retorna o ângulo em radianos cujo seno é o número especificado.
atan Double atan(value:Double) atan($event.value.Double) Retorna o ângulo em radianos cuja Tangente é o número especificado.
atan2 Double atan2(value1:Double, value2:Double) atan2($event.value1.Double, $event.value2.Double) Retorna o ângulo em radianos cuja Tangente é o quociente de dois números especificados.

Funções logarítmicas

Nome da função Assinatura Exemplo Observações
log Double log(value:Double) log($event.value.Double) Retorna o logaritmo natural de um número especificado.
log2 Double log2(value:Double) log2($event.value.Double) Retorna o logaritmo de base 2 de um número especificado.
log10 Double log10(value:Double) log10($event.value.Double) Retorna o logaritmo de base 10 de um número especificado.

Funções de data e hora

Nome da função Assinatura Exemplo Observações
monthOfYear Long monthOfYear(value:DateTime) monthOfYear($event.$ts) Retorna o mês do ano como um numérico para o DateTime fornecido.
dayOfMonth Long dayOfMonth(value:DateTime) dayOfMonth($event.$ts) Retorna o dia do mês como um numérico para o DateTime fornecido.
hourOfDay Long hourOfDay(value:DateTime) hourOfDay($event.$ts) Retorna a hora do dia como um numérico para o DateTime fornecido.
utcNow DateTime utcNow() utcNow() Retorna a hora atual no formato UTC.

Funções de cadeia de caracteres

Nome da função Assinatura Exemplo Observações
toUpper String toUpper(value:String) toUpper($event.value.String) Retorna a cadeia de caracteres de entrada convertida em maiúsculas.
toLower String toLower(value:String) toLower($event.value.String) Retorna a cadeia de caracteres de entrada convertida em minúsculas.
strLen Long strLen(value:String) strLen($event.value.String) Retorna o número dos caracteres no argumento de cadeia de caracteres.
strCat Long strCat(value1:String, value2:String) strCat($event.value1.String, $event.value2.String) Concatena duas cadeias de caracteres de entrada especificadas.
subString String subString(value:String, startIndex:Double, length:Double) subString($event.value.String, 2.0, 4.0) Recupera uma subcadeia de caracteres desta instância.
trim String trim(value:String) trim($event.value.String) Retorna uma nova cadeia de caracteres removendo todos os caracteres de espaço em branco à esquerda e à direita da cadeia de caracteres de entrada.
indexOf Long indexOf(value:String, subString:String) indexOf($event.value.String, 'abc') Retorna a primeira ocorrência da cadeia de caracteres especificada dentro da cadeia de caracteres original, com base na indexação zero.
replace String replace(value:String, searchString:String, replaceString:String) replace($event.value.String, 'abc', 'xyz') Retorna uma cadeia de caracteres em que todas as ocorrências da cadeia de caracteres de pesquisa são substituídas pela cadeia de caracteres de substituição.

Outras funções

Nome da função Assinatura Exemplo Observações
coalesce String, Long, Double, Bool coalesce (value: String, Long, Double, Bool) coalesce(toLong($event.value.Double), $event.value.Long) Retorna o primeiro valor não nulo na lista de argumentos. Aceita no mínimo 2 e no máximo 64 argumentos, mas todos eles devem ser do mesmo tipo de dados.
iff String, Long, Double, Bool iff (predicate: bool, ifTrue: String, Long, Double, Bool, ifFalse: String, Long, Double, Bool) iff ($event.value.Double > 100, 'Good', 'Bad') Retorna o segundo ou o terceiro argumento dependendo se o predicado foi resolvido como true (retorna o segundo argumento) ou false (retorna o terceiro argumento). O predicado deve ser uma expressão booliana e o segundo e o terceiro argumentos devem ser do mesmo tipo.

Confira também

  • Para obter mais informações sobre o registro de aplicativo e o modelo de programação do Azure Active Directory, consulte Azure Active Directory para desenvolvedores.

  • Para saber mais sobre os parâmetros de solicitação e autenticação, leia Autenticação e autorização.

  • As ferramentas que auxiliam no teste de solicitações e respostas HTTP incluem:

  • Fiddler. Esse proxy de depuração da Web gratuito pode interceptar suas solicitações REST, para que você possa diagnosticar as mensagens de solicitação e resposta HTTP.

  • JWT.io. Você pode usar essa ferramenta para despejar rapidamente as declarações em seu token de portador e, em seguida, validar seu conteúdo.

  • O Postman. Essa é uma ferramenta gratuita de teste de solicitação HTTP e resposta para depuração de APIs REST.

  • Saiba mais sobre Azure Time Series Insights Gen2 examinando a documentação do Gen2.