Escrever na tabela base de dados do SQL do Azure a partir das suas tarefas do Azure Stream Analytics
O Azure Stream Analytics suporta SQL do Azure Base de Dados como uma saída para a consulta de transmissão em fluxo. Este artigo explica como utilizar Base de Dados SQL como uma saída para a sua tarefa do Stream Analytics no portal do Azure.
Pré-requisitos
Criar uma tarefa do Stream Analytics.
Crie uma Base de Dados SQL do Azure para a qual a tarefa do Stream Analytics irá escrever o resultado.
Escrever numa nova tabela no Base de Dados SQL
Esta secção descreve como pode configurar a sua tarefa para escrever numa tabela na base de dados SQL do Azure que ainda não foi criada.
Na sua tarefa do Stream Analytics, selecione Saídas em Topologia de tarefas. Clique em Adicionar e selecione Base de Dados SQL.
Selecione um alias de saída que será utilizado na consulta da sua tarefa. Indique o nome da base de dados e o modo de autenticação. Pode saber mais sobre as opções de configuração de saída do SQL.
Introduza um nome de tabela que pretenda criar na base de dados do SQL do Azure. Clique em Guardar. Nota: guardar este resultado não cria a tabela no seu Base de Dados SQL. Os passos seguintes fornecem mais detalhes sobre quando a tabela é criada.
Selecione Consulta em Topologia da Tarefa e utilize o alias na consulta para escrever o resultado no nome da tabela que forneceu no passo anterior. Clique em Testar consulta para testar a lógica de consulta e ver Resultados de teste que mostram o esquema do resultado que será produzido pela tarefa. Nota: para testar a consulta, tem de ter dados de transmissão em fluxo recebidos na sua origem de entrada ou pode carregar dados de exemplo para testar a consulta. Pode saber mais sobre a consulta do Test Stream Analytics.
Clique em Esquema de tabela SQL para ver o nome e o tipo da coluna. Clique em Criar tabela e a sua tabela será criada na base de dados SQL.
Se a consulta do Stream Analytics for modificada para produzir um esquema diferente, terá de alterar a definição da tabela no seu Base de Dados SQL. Isto garante que a tarefa do Stream Analytics não encontra erros de conversão de dados ao tentar escrever no sink.
Assim que a consulta for final, selecione Descrição geral e Iniciar a tarefa. Em seguida, pode navegar para a tabela Base de Dados SQL para ver a saída da consulta de transmissão em fluxo.
Selecionar uma tabela existente a partir de Base de Dados SQL
Esta secção descreve como pode configurar a sua tarefa para escrever numa tabela que já existe na base de dados SQL do Azure.
Na sua tarefa do Stream Analytics, selecione Saídas em Topologia de tarefas. Clique em Adicionar e selecione Base de Dados SQL.
Selecione um alias de saída que será utilizado na consulta da sua tarefa. Indique o nome da base de dados e o modo de autenticação. Pode saber mais sobre as opções de configuração de saída do SQL.
Pode escolher uma tabela existente na Base de Dados SQL selecionada ao introduzir os detalhes da Autenticação SQL. Esta ação irá carregar uma lista de nomes de tabelas da sua Base de Dados. Selecione o nome da tabela na lista ou introduza manualmente o nome da tabela e Guardar.
Selecione Consulta em Topologia da Tarefa e utilize o nome do alias na consulta para escrever o resultado na tabela selecionada. Clique em Testar consulta para testar a lógica de consulta e ver Os resultados dos testes. Nota: para testar a consulta, tem de ter dados de transmissão em fluxo recebidos no Hub de Eventos/Hub IoT ou pode carregar dados de exemplo para testar a consulta. Pode saber mais sobre a consulta do Test Stream Analytics.
No separador esquema da tabela SQL , pode ver um nome de coluna e o respetivo tipo a partir dos dados recebidos e na tabela selecionada. Pode ver o estado se o tipo de dados recebido e a tabela SQL selecionada correspondem ou não. Se não for uma correspondência, ser-lhe-á pedido que atualize a consulta para corresponder ao esquema da tabela.
Assim que a consulta for final, selecione Descrição geral e Iniciar a tarefa. Em seguida, pode navegar para a tabela Base de Dados SQL para ver a saída da consulta de transmissão em fluxo.
Motivos comuns de incompatibilidade do tipo de dados
É importante garantir que a saída da sua tarefa do Stream Analytics corresponde aos nomes das colunas e tipos de dados esperados pela sua tabela de Base de Dados SQL. Se existir um erro de correspondência, a sua tarefa irá deparar-se com erros de conversão de dados e repetir continuamente até que a definição da tabela SQL seja alterada. Pode alterar o comportamento da tarefa para remover esse resultado que causa erros de conversão de dados e avançar para o seguinte. As razões de incompatibilidade de esquema mais comuns são descritas abaixo.
- Erro de correspondência do tipo: os tipos de consulta e de destino não são compatíveis. As linhas não serão inseridas no destino. Utilize uma função de conversão , como TRY_CAST() para alinhar tipos na consulta. A opção alternativa é alterar a tabela de destino na base de dados SQL.
- Intervalo: o intervalo de tipo de destino é consideravelmente menor do que o utilizado na consulta. As linhas com valores fora do intervalo podem não ser inseridas na tabela de destino ou truncadas. Considere alterar a coluna de destino para um intervalo de tipos maior.
- Implícito: a consulta e os tipos de destino são diferentes, mas compatíveis. Os dados serão convertidos implicitamente, mas tal pode resultar em perdas ou falhas de dados. Utilize uma função de conversão , como TRY_CAST() para alinhar tipos na consulta ou alterar a tabela de destino.
- Registo: este tipo ainda não é suportado para este resultado. O valor será substituído pela cadeia "record". Considere analisar os dados ou utilizar um UDF para converter em cadeia.
- Matriz: este tipo ainda não é suportado nativamente na Base de Dados SQL do Azure. O valor será substituído pela cadeia "record". Considere analisar os dados ou utilizar um UDF para converter em cadeia.
- Coluna em falta na tabela de destino: esta coluna está em falta na tabela de destino. Os dados não serão inseridos. Adicione esta coluna à sua tabela de destino, se necessário.