Partilhar via


Funções definidas pelo usuário no Azure Stream Analytics

A linguagem de consulta semelhante ao SQL no Azure Stream Analytics facilita a implementação da lógica de análise em tempo real no streaming de dados. O Stream Analytics fornece flexibilidade adicional por meio de funções personalizadas que são invocadas em sua consulta. O exemplo de código a seguir é um UDF chamado sampleFunction que aceita um parâmetro, cada registro de entrada que o trabalho recebe e o resultado é gravado na saída como sampleResult.

SELECT 
    UDF.sampleFunction(InputStream) AS sampleResult 
INTO 
    output 
FROM 
    InputStream 

Tipos de funções

O Azure Stream Analytics suporta os seguintes quatro tipos de função:

  • Funções definidas pelo utilizador do JavaScript
  • Agregações definidas pelo usuário JavaScript
  • Funções definidas pelo usuário em C# (usando o Visual Studio)
  • Azure Machine Learning

Você pode usar essas funções para cenários como pontuação em tempo real usando modelos de aprendizado de máquina, manipulações de cadeia de caracteres, cálculos matemáticos complexos, codificação e decodificação de dados.

Importante

As funções definidas pelo usuário em C# para o Azure Stream Analytics serão desativadas em 30 de setembro de 2024. Após essa data, não será possível usar o recurso.

Limitações

As funções definidas pelo usuário são sem monitoração de estado e o valor de retorno só pode ser um valor escalar. Você não pode chamar pontos de extremidade REST externos dessas funções definidas pelo usuário, pois isso provavelmente afetará o desempenho do seu trabalho.

O Azure Stream Analytics não mantém um registro de todas as funções, invocações e resultados retornados. Para garantir a repetibilidade - por exemplo, executar novamente seu trabalho a partir de um carimbo de data/hora mais antigo produz os mesmos resultados novamente - não use funções como Date.GetData() ou Math.random(), pois essas funções não retornam o mesmo resultado para cada invocação.

Registos do recurso

Quaisquer erros de tempo de execução são considerados fatais e são revelados através de logs de atividades e recursos. É recomendável que sua função lide com todas as exceções e erros e retorne um resultado válido para sua consulta. Isso impedirá que seu trabalho vá para um estado de falha.

Processamento de exceções

Qualquer exceção durante o processamento de dados é considerada uma falha catastrófica ao consumir dados no Azure Stream Analytics. As funções definidas pelo usuário têm um potencial maior para lançar exceções e fazer com que o processamento pare. Para evitar esse problema, use um bloco try-catch em JavaScript ou C# para capturar exceções durante a execução do código. As exceções detetadas podem ser registradas e tratadas sem causar uma falha no sistema. Você é encorajado a sempre envolver seu código personalizado em um bloco try-catch para evitar lançar exceções inesperadas para o mecanismo de processamento.

Próximos passos