Partilhar via


Saídas de Azure Stream Analytics

Um trabalho do Azure Stream Analytics consiste em uma entrada, consulta e saída. Pode enviar dados transformados para vários tipos de saída. Este artigo lista as saídas suportadas pelo Stream Analytics. Ao desenhar a sua consulta de Stream Analytics, consulte o nome da saída usando a cláusula INTO. Pode usar uma única saída por trabalho, ou múltiplas saídas por trabalho de streaming adicionando múltiplas cláusulas INTO à consulta.

Para criar, editar e testar os resultados de trabalhos do Stream Analytics, pode usar o portal Azure, Azure PowerShell, .NET API, REST API, Visual Studio e Visual Studio Code.

Observação

Para a melhor experiência de desenvolvimento local, utilize ferramentas de Stream Analytics para o Visual Studio Code. As ferramentas Stream Analytics para Visual Studio 2019 (versão 2.6.3000.0) apresentam lacunas de funcionalidades conhecidas e não serão melhoradas daqui para a frente.

Alguns tipos de saída suportam particionamento , conforme mostrado na tabela seguinte.

Todas as saídas suportam loteamento, mas apenas algumas suportam definir explicitamente o tamanho do lote de saída. Para mais informações, consulte a secção de tamanhos dos lotes de saída .

Tipo de saída Partitioning Segurança
Azure Data Explorer Yes Identidade gerenciada
Funções do Azure Yes Chave de acesso
Azure Synapse Analytics Yes Autenticação de utilizador SQL,
Identidade Gerida
Armazenamento Blob e Azure Data Lake Gen 2 Yes chave de acesso,
identidade gerida
Azure Cosmos DB Yes chave de acesso,
identidade gerida
Azure Data Lake Storage Gen2 Yes Identidade gerida do utilizador
Microsoft Entra
Hubs de Eventos do Azure Sim, é preciso definir a coluna da chave de partição na configuração de saída. chave de acesso,
identidade gerida
Kafka (pré-visualização) Sim, é preciso definir a coluna da chave de partição na configuração de saída. chave de acesso,
identidade gerida
Base de Dados do Azure para PostgreSQL Yes Autorização de nome de utilizador e palavra-passe
Power BI Não Utilizador do Microsoft Entra,
Identidade Gerida
Azure Service Bus queues Yes chave de acesso,
identidade gerida
Azure Service Bus topics Yes chave de acesso,
identidade gerida
Banco de Dados SQL do Azure Sim, opcional. Autenticação de utilizador SQL,
Identidade Gerida
Armazenamento de tabelas do Azure Yes Chave da conta

Importante

O Azure Stream Analytics utiliza a API Insert or Replace por padrão. Esta operação substitui uma entidade existente ou insere uma nova entidade se esta não existir na tabela.

Partitioning

O Stream Analytics suporta partições para todas as saídas, exceto para o Power BI. Para mais informações sobre chaves de partição e o número de escritores de saída, consulte o artigo para o tipo de saída específico que lhe interessa. Os artigos para tipos de saída estão interligados na secção anterior.

Para uma afinação mais avançada das partições, pode controlar o número de gravadores de saída usando uma INTO <partition count> cláusula (ver INTO) na sua consulta. Este controlo pode ajudá-lo a alcançar a topologia de trabalho desejada. Se o teu adaptador de saída não estiver particionado, a falta de dados numa partição de entrada pode causar um atraso equivalente ao tempo máximo de chegada tardia. Nesses casos, a saída é fundida para um único escritor, o que pode causar gargalos no seu pipeline. Para saber mais sobre a política de chegada tardia, consulte Azure Stream Analytics: considerações sobre a ordem de eventos.

Tamanho do lote de saída

Todas as saídas suportam batching, mas apenas algumas suportam definir explicitamente o tamanho do lote. O Azure Stream Analytics utiliza lotes de tamanho variável para processar eventos e escrever em saídas. Normalmente, o motor de Stream Analytics não escreve uma mensagem de cada vez e usa lotes para maior eficiência. Quando a taxa de eventos de entrada e saída é elevada, a Análise de Fluxos utiliza lotes maiores. Quando a taxa de saída é baixa, usa lotes mais pequenos para manter a latência baixa.

Comportamento de partição de ficheiros Avro e Parquet

Uma consulta de Análise de Fluxos pode gerar múltiplos esquemas para uma determinada saída. A lista de colunas projetadas, e o seu tipo, podem mudar linha a linha. Por design, os formatos Avro e Parquet não suportam esquemas variáveis num único ficheiro.

Os seguintes comportamentos podem ocorrer ao direcionar um fluxo com esquemas variáveis para uma saída usando estes formatos:

  • Se a alteração do esquema for detetada, o ficheiro de saída atual é encerrado e um novo inicializado no novo esquema. Dividir ficheiros por si só atrasa muito a saída quando as alterações de esquema acontecem frequentemente. Este comportamento pode afetar gravemente o desempenho global do trabalho.
  • Se a alteração do esquema não for detetada, a linha é muito provavelmente rejeitada e a tarefa fica bloqueada porque a linha não pode ser emitida. Colunas aninhadas, ou arrays de tipos múltiplos, são situações que não são identificadas nem rejeitadas.

Considere as saídas que utilizam os formatos Avro ou Parquet como bem tipificadas, ou como esquema no momento da escrita, e escreva consultas direcionadas a esses formatos, utilizando conversões e projeções explícitas para um esquema uniforme.

Se precisar de gerar múltiplos esquemas, considere criar múltiplas saídas e dividir os registos em cada destino usando uma cláusula WHERE.

Propriedades de janelas de saída em parquet

Quando utiliza a implementação de templates com o Azure Resource Manager ou a API REST, define duas propriedades da janela de agrupamento:

  1. Janela temporal

    O tempo máximo de espera por lote. Defina o valor como uma cadeia de Timespan. Por exemplo, usa 00:02:00 durante dois minutos. Depois deste tempo, o lote é escrito na saída, mesmo que o requisito mínimo de linhas não seja cumprido. O valor padrão é um minuto e o máximo permitido é de duas horas. Se a saída do seu blob tiver um padrão de frequência de caminhos, o tempo de espera não pode ser superior ao intervalo de tempo da partição.

  2. WindowTamanho

    O número mínimo de linhas por lote. Para Parquet, cada lote cria um novo arquivo. O valor padrão atual é 2.000 linhas e o máximo permitido é 10.000 linhas.

A versão da API 2017-04-01-preview ou superior suporta estas propriedades de janela de batch. Aqui está um exemplo do payload JSON para uma chamada API REST:

"type": "stream",
      "serialization": {
        "type": "Parquet",
        "properties": {}
      },
      "timeWindow": "00:02:00",
      "sizeWindow": "2000",
      "datasource": {
        "type": "Microsoft.Storage/Blob",
        "properties": {
          "storageAccounts" : [
          {
            "accountName": "{accountName}",
            "accountKey": "{accountKey}",
          }
          ],

Próximos passos