Partilhar via


Nível de compatibilidade para trabalhos do Azure Stream Analytics

Este artigo descreve a opção de nível de compatibilidade no Azure Stream Analytics.

O Stream Analytics é um serviço gerenciado, com atualizações regulares de recursos e melhorias constantes de desempenho. A maioria das atualizações de tempo de execução do serviço são automaticamente disponibilizadas aos usuários finais, independentemente do nível de compatibilidade. No entanto, quando uma nova funcionalidade introduz uma alteração no comportamento de trabalhos existentes ou uma alteração na forma como os dados são consumidos em trabalhos em execução, introduzimos essa alteração sob um novo nível de compatibilidade. Você pode manter seus trabalhos existentes do Stream Analytics em execução sem grandes alterações, deixando a configuração de nível de compatibilidade reduzida. Quando estiver pronto para os comportamentos de tempo de execução mais recentes, você poderá optar por participar aumentando o nível de compatibilidade.

Escolha um nível de compatibilidade

O nível de compatibilidade controla o comportamento de tempo de execução de um trabalho de análise de fluxo.

Atualmente, o Azure Stream Analytics suporta três níveis de compatibilidade:

  • 1.2 - Comportamento mais recente com as melhorias mais recentes
  • 1.1 - Comportamento anterior
  • 1.0 - Nível de compatibilidade original, introduzido durante a disponibilidade geral do Azure Stream Analytics há vários anos.

Quando você cria um novo trabalho do Stream Analytics, é uma prática recomendada criá-lo usando o nível de compatibilidade mais recente. Comece seu projeto de trabalho com base nos comportamentos mais recentes, para evitar mudanças adicionais e complexidade mais tarde.

Definir o nível de compatibilidade

Você pode definir o nível de compatibilidade para um trabalho do Stream Analytics no portal do Azure ou usando a chamada da API REST de criação de trabalho.

Para atualizar o nível de compatibilidade do trabalho no portal do Azure:

  1. Use o portal do Azure para localizar seu trabalho do Stream Analytics.
  2. Pare o trabalho antes de atualizar o nível de compatibilidade. Não é possível atualizar o nível de compatibilidade se o trabalho estiver em estado de execução.
  3. No cabeçalho Configurar, selecione Nível de compatibilidade.
  4. Escolha o valor de nível de compatibilidade desejado.
  5. Selecione Salvar na parte inferior da página.

Nível de compatibilidade do Stream Analytics no portal do Azure

Quando você atualiza o nível de compatibilidade, o compilador T valida o trabalho com a sintaxe que corresponde ao nível de compatibilidade selecionado.

Nível de compatibilidade 1.2

As seguintes alterações principais são introduzidas no nível de compatibilidade 1.2:

Protocolo de mensagens AMQP

Nível 1.2: o Azure Stream Analytics usa o protocolo de mensagens AMQP (Advanced Message Queueing Protocol) para gravar em Filas e Tópicos do Service Bus. O AMQP permite que você crie aplicativos híbridos de plataforma cruzada usando um protocolo padrão aberto.

Funções geoespaciais

Níveis anteriores: o Azure Stream Analytics usou cálculos de Geografia.

Nível 1.2: o Azure Stream Analytics permite calcular coordenadas geográficas projetadas geométricas. Não há alteração na assinatura das funções geoespaciais. No entanto, a sua semântica é ligeiramente diferente, permitindo uma computação mais precisa do que antes.

O Azure Stream Analytics dá suporte à indexação de dados de referência geoespacial. Dados de referência contendo elementos geoespaciais podem ser indexados para um cálculo de junção mais rápido.

As funções geoespaciais atualizadas trazem toda a expressividade do formato geoespacial Well Known Text (WKT). Você pode especificar outros componentes geoespaciais que não eram suportados anteriormente com GeoJson.

Para obter mais informações, consulte Atualizações para recursos geoespaciais no Azure Stream Analytics – Cloud e IoT Edge.

Execução de consulta paralela para fontes de entrada com várias partições

Níveis anteriores: as consultas do Azure Stream Analytics exigiam o uso da cláusula PARTITION BY para paralelizar o processamento de consultas entre partições de origem de entrada.

Nível 1.2: Se a lógica de consulta puder ser paralelizada entre partições de origem de entrada, o Azure Stream Analytics criará instâncias de consulta separadas e executará cálculos em paralelo.

Integração nativa da API em massa com a saída do Azure Cosmos DB

Níveis anteriores: O comportamento de upsert foi inserir ou mesclar.

Nível 1.2: A integração da API nativa em massa com a saída do Azure Cosmos DB maximiza a taxa de transferência e lida com eficiência com solicitações de limitação. Para obter mais informações, consulte a página de saída do Azure Stream Analytics para o Azure Cosmos DB.

O comportamento do upsert é inserir ou substituir.

DateTimeOffset ao gravar na saída SQL

Níveis anteriores: Os tipos DateTimeOffset foram ajustados para UTC.

Nível 1.2: DateTimeOffset não está mais ajustado.

Longo ao gravar na saída SQL

Níveis anteriores: Os valores foram truncados com base no tipo de destino.

Nível 1.2: Os valores que não se encaixam no tipo de destino são tratados de acordo com a política de erro de saída.

Serialização de registro e matriz ao gravar na saída SQL

Níveis anteriores: Os registros foram escritos como "Record" e as matrizes foram escritas como "Array".

Nível 1.2: Registros e matrizes são serializados no formato JSON.

Validação estrita do prefixo de funções

Níveis anteriores: Não houve validação estrita de prefixos de função.

Nível 1.2: o Azure Stream Analytics tem uma validação estrita de prefixos de função. Adicionar um prefixo a uma função interna causa um erro. Por exemplo,myprefix.ABS(…) não é suportado.

Adicionar um prefixo a agregados internos também resulta em erro. Por exemplo, myprefix.SUM(…) não é suportado.

Usar o prefixo "system" para qualquer função definida pelo usuário resulta em erro.

Não permitir matriz e objeto como propriedades principais no adaptador de saída do Azure Cosmos DB

Níveis anteriores: Os tipos Array e Object eram suportados como uma propriedade chave.

Nível 1.2: Os tipos Array e Object não são mais suportados como uma propriedade de chave.

Desserialização do tipo booleano em JSON, AVRO e PARQUET

Níveis anteriores: o Azure Stream Analytics desserializa o valor booleano no tipo BIGINT - mapas falsos para 0 e mapas verdadeiros para 1. A saída só cria valores booleanos em JSON, AVRO e PARQUET se você converter explicitamente eventos em BIT. Por exemplo, uma consulta de passagem, como SELECT value INTO output1 FROM input1 ler um JSON { "value": true } da entrada1, gravará na saída1 um valor { "value": 1 }JSON.

Nível 1.2: o Azure Stream Analytics desserializa o valor booleano para o tipo BIT. Mapas falsos para 0 e mapas verdadeiros para 1. Uma consulta de passagem, como SELECT value INTO output1 FROM input1 ler um JSON { "value": true } da input1, gravará na output1 um valor { "value": true }JSON. Você pode converter valor para digitar BIT na consulta para garantir que eles apareçam como verdadeiro e falso na saída para formatos que suportam tipo booleano.

Nível de compatibilidade 1.1

As seguintes alterações principais são introduzidas no nível de compatibilidade 1.1:

Formato XML do Service Bus

Nível 1.0: o Azure Stream Analytics usou DataContractSerializer, portanto, o conteúdo da mensagem incluiu marcas XML. Por exemplo:

@\u0006string\b3http://schemas.microsoft.com/2003/10/Serialization/\u0001{ "SensorId":"1", "Temperature":64\}\u0001

Nível 1.1: O conteúdo da mensagem contém o fluxo diretamente sem tags adicionais. Por exemplo: { "SensorId":"1", "Temperature":64}

Persistente diferenciação de maiúsculas e minúsculas para nomes de campos

Nível 1.0: os nomes de campo foram alterados para minúsculas quando processados pelo mecanismo do Azure Stream Analytics.

Nível 1.1: a diferenciação de maiúsculas e minúsculas é mantida para nomes de campo quando eles são processados pelo mecanismo do Azure Stream Analytics.

Nota

A diferenciação persistente de maiúsculas e minúsculas ainda não está disponível para trabalhos do Stream Analytic hospedados usando o ambiente de Borda. Como resultado, todos os nomes de campo são convertidos em minúsculas se o seu trabalho estiver hospedado no Edge.

FloatNaNDeserializationDisabled

Nível 1.0: O comando CREATE TABLE não filtrou eventos com NaN (Not-a-Number. Por exemplo, Infinito, -Infinito) em um tipo de coluna FLOAT porque eles estão fora do intervalo documentado para esses números.

1.1 nível: CREATE TABLE permite especificar um esquema forte. O mecanismo do Stream Analytics valida se os dados estão em conformidade com esse esquema. Com esse modelo, o comando pode filtrar eventos com valores NaN.

Desative a conversão automática de cadeias de caracteres datetime para o tipo DateTime na entrada para JSON

Nível 1.0: O analisador JSON converteria automaticamente valores de cadeia de caracteres com informações de data/hora/zona para o tipo DATETIME na entrada, de modo que o valor perdesse imediatamente sua formatação original e informações de fuso horário. Como isso é feito na entrada, mesmo que esse campo não tenha sido usado na consulta, ele é convertido em UTC DateTime.

Nível 1.1: Não há conversão automática de valores de cadeia de caracteres com informações de data/hora/zona para o tipo DATETIME. Como resultado, as informações de fuso horário e a formatação original são mantidas. No entanto, se o campo NVARCHAR(MAX) for usado na consulta como parte de uma expressão DATETIME (função DATEADD, por exemplo), ele será convertido para o tipo DATETIME para executar o cálculo e perderá sua forma original.

Próximos passos