Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Os dados de referência são um conjunto de dados estático ou de alteração lenta, que combina com os seus dados em fluxo para os enriquecer, por exemplo, adicionando informações do produto a um fluxo de eventos de vendas. O Azure Stream Analytics suporta o Base de Dados SQL do Azure como fonte de dados de referência, para que possa consultar e combinar esses dados com a sua entrada em tempo real.
Este artigo mostra-lhe como configurar uma Base de Dados SQL do Azure como entrada de dados de referência para um trabalho de Stream Analytics, utilizando tanto o portal Azure como o Visual Studio com ferramentas de Stream Analytics.
Adicione dados de referência da base de dados SQL usando o portal Azure
Use os seguintes passos para adicionar o Base de Dados SQL do Azure como fonte de entrada de referência utilizando o portal Azure:
Pré-requisitos do portal
Criar uma tarefa do Stream Analytics.
Crie uma conta de armazenamento para o trabalho do Stream Analytics utilizar.
Importante
O Azure Stream Analytics mantém snapshots dentro desta conta de armazenamento. Ao configurar a política de retenção, certifique-se de que o período de tempo escolhido inclui a duração de recuperação que pretende para o seu trabalho de Stream Analytics.
Crie a sua Base de Dados SQL do Azure com um conjunto de dados que o trabalho de Stream Analytics use como dados de referência.
Definir entrada de dados de referência do Banco de Dados SQL
Na tarefa do Stream Analytics, selecione Entradas na secção Topologia da tarefa. Selecione Adicionar entrada de referência e depois selecione Base de Dados SQL.
Preencha a configuração de entrada do Stream Analytics. Escolha o nome da base de dados, o nome do servidor e as credenciais de início de sessão para a base de dados. Para atualizar periodicamente os dados de referência de entrada, selecione Ligado e especifique o intervalo de atualização em DD:HH:MM. Para conjuntos de dados grandes com uma taxa de atualização curta, a consulta delta acompanha alterações nos seus dados de referência ao recuperar todas as linhas na base de dados SQL que foram inseridas ou eliminadas entre uma hora de início ,
@deltaStartTime, e uma hora de término,@deltaEndTime.Para mais informações, consulte a consulta delta.
Teste a consulta snapshot no editor de consultas SQL. Para mais informações, consulte Usar o editor de consultas SQL do portal Azure para ligar e consultar dados.
Especifique a conta de armazenamento na configuração do trabalho
Vai às definições da conta de armazenamento em Configurar e depois seleciona Adicionar conta de armazenamento.
Iniciar a tarefa
- Depois de configurares as outras entradas, saídas e consultas, inicia o trabalho de Stream Analytics.
Adicione dados de referência da base de dados SQL usando o Visual Studio
Use os seguintes passos para adicionar o Base de Dados SQL do Azure como fonte de entrada de referência usando o Visual Studio:
Pré-requisitos do Visual Studio
Instale as ferramentas do Stream Analytics para Visual Studio. As ferramentas Stream Analytics suportam as seguintes versões do Visual Studio:
- 2015 Visual Studio
- Visual Studio 2019
Familiarize-se com as ferramentas do Stream Analytics para início rápido do Visual Studio .
Criar uma conta de armazenamento.
Importante
O Azure Stream Analytics mantém snapshots dentro desta conta de armazenamento. Ao configurar a política de retenção, certifique-se de que o período de tempo escolhido inclui a duração de recuperação que pretende para o seu trabalho de Stream Analytics.
Criar uma tabela do Banco de dados SQL
Use o SQL Server Management Studio para criar uma tabela para armazenar seus dados de referência. Consulte Criar seu primeiro Banco de Dados SQL do Azure usando o SSMS para obter detalhes.
A seguinte instrução cria a tabela de exemplo:
create table chemicals(Id Bigint,Name Nvarchar(max),FullName Nvarchar(max));
Selecione a sua subscrição
No menu Ver do Visual Studio, selecione Explorador de Servidores.
Selecione e segure (ou clique com o botão direito) no Azure, selecione Ligar à Subscrição do Microsoft Azure e inicie sessão com a sua conta Azure.
Criar um projeto do Stream Analytics
Selecione Arquivo>Novo Projeto.
Na lista de modelos, selecione Stream Analytics e depois Azure Stream Analytics Application.
Introduza o Nome do projeto, Localização e Nome da Solução, e depois selecione OK.
Definir entrada de dados de referência do Banco de Dados SQL
Crie uma nova entrada.
Abre Input.json em Explorador de Soluções.
Preencha a Configuração de entrada do Stream Analytics. Introduza o nome da base de dados, nome do servidor, tipo de atualização e taxa de atualização. Especifique a taxa de atualização no formato
DD:HH:MM.
Se escolher Executar apenas uma vez ou Executar periodicamente, Visual Studio gera um ficheiro SQL CodeBehind chamado [Input Alias].snapshot.sql no projeto sob o nó do ficheiroInput.json.
Se escolher Atualizar Periodicamente com Delta, Visual Studio gera dois ficheiros SQL CodeBehind: [Input Alias].snapshot.sql e [Input Alias].delta.sql.
Abra o arquivo SQL no editor e escreva a consulta SQL.
Se estiver a usar o Visual Studio 2019 e tiver instalado o SQL Server Data Tools, pode testar a consulta selecionando Executar. Abre um assistente para te ajudar a ligar-te à base de dados SQL, e o resultado da consulta aparece na janela no fundo.
Especificar conta de armazenamento
Abra JobConfig.json para especificar a conta de armazenamento para armazenar snapshots de referência SQL.
Teste localmente e implante no Azure
Antes de implantares o trabalho no Azure, podes testar a lógica de consulta localmente contra dados de entrada em tempo real. Para mais informações sobre esta funcionalidade, consulte Testar dados em tempo real localmente usando as ferramentas Azure Stream Analytics para Visual Studio (Pré-visualização). Quando terminares os testes, seleciona Enviar para o Azure. Para saber como criar o trabalho, consulte o guia de início rápido Criar um trabalho do Stream Analytics com as ferramentas do Azure Stream Analytics para o Visual Studio.
Consulta delta
Ao usar a consulta delta, use tabelas temporais no Base de Dados SQL do Azure.
Crie uma tabela temporal no Banco de Dados SQL do Azure.
CREATE TABLE DeviceTemporal ( [DeviceId] int NOT NULL PRIMARY KEY CLUSTERED , [GroupDeviceId] nvarchar(100) NOT NULL , [Description] nvarchar(100) NOT NULL , [ValidFrom] datetime2 (0) GENERATED ALWAYS AS ROW START , [ValidTo] datetime2 (0) GENERATED ALWAYS AS ROW END , PERIOD FOR SYSTEM_TIME (ValidFrom, ValidTo) ) WITH (SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.DeviceHistory)); -- DeviceHistory table will be used in Delta queryComponha a consulta de instantâneo.
Utilize o parâmetro @snapshotTime para instruir o ambiente de execução do Stream Analytics a obter o conjunto de dados de referência da tabela temporal da Base de Dados SQL válida na hora do sistema. Se não fornecer este parâmetro, corre o risco de obter um conjunto de dados de referência base impreciso devido a desvios de clock. O exemplo seguinte mostra uma consulta completa de snapshot:
SELECT DeviceId, GroupDeviceId, [Description] FROM dbo.DeviceTemporal FOR SYSTEM_TIME AS OF @snapshotTimeCrie a consulta delta.
Esta consulta recupera todas as linhas na base de dados SQL que foram inseridas ou eliminadas dentro de uma hora de início, @deltaStartTime e uma hora de término, @deltaEndTime. A consulta delta deve devolver as mesmas colunas que a consulta de instantâneo, bem como a coluna operação. Esta coluna define se a linha é inserida ou eliminada entre @deltaStartTime e @deltaEndTime. As linhas resultantes são sinalizadas como 1 se os registros foram inseridos ou 2 se excluídos. A consulta também deve adicionar a marca de água no lado do SQL Server para garantir que todas as atualizações no período delta sejam corretamente captadas. Usar uma consulta delta sem watermark pode resultar em um conjunto de dados de referência incorreto.
Para registros que foram atualizados, a tabela temporal faz a escrituração capturando uma operação de inserção e exclusão. O runtime do Stream Analytics aplica então os resultados da consulta delta ao snapshot anterior para manter os dados de referência atualizados. O exemplo seguinte mostra uma consulta delta:
SELECT DeviceId, GroupDeviceId, Description, ValidFrom as _watermark_, 1 as _operation_ FROM dbo.DeviceTemporal WHERE ValidFrom BETWEEN @deltaStartTime AND @deltaEndTime -- records inserted UNION SELECT DeviceId, GroupDeviceId, Description, ValidTo as _watermark_, 2 as _operation_ FROM dbo.DeviceHistory -- table we created in step 1 WHERE ValidTo BETWEEN @deltaStartTime AND @deltaEndTime -- record deletedO ambiente de execução do Stream Analytics pode executar periodicamente a consulta de instantâneo, além da consulta delta, para armazenar pontos de verificação.
Importante
Quando usar consultas delta de dados de referência, não faça atualizações idênticas à tabela de dados de referência temporal várias vezes. Isto pode produzir resultados incorretos. Aqui está um exemplo que pode fazer com que os dados de referência produzam resultados incorretos:
UPDATE myTable SET VALUE=2 WHERE ID = 1; UPDATE myTable SET VALUE=2 WHERE ID = 1;Exemplo correto:
UPDATE myTable SET VALUE = 2 WHERE ID = 1 and not exists (select * from myTable where ID = 1 and value = 2);Esta condição garante que não ocorrem atualizações duplicadas.
Teste a sua consulta
Verifique se a sua consulta devolve o conjunto de dados esperado que o trabalho de Stream Analytics utiliza como dados de referência. Para testar a sua consulta, vá a Entradas na secção de Topologia de Trabalhos no portal. Depois seleciona Dados de Exemplo na entrada de referência da tua base de dados SQL. Depois de o exemplo estar disponível, pode descarregar o ficheiro e verificar se os dados devolvidos estão conforme o esperado. Para otimizar as suas iterações de desenvolvimento e testes, utilize as ferramentas Stream Analytics para o Visual Studio. Também pode usar qualquer outra ferramenta que prefira para garantir primeiro que a consulta devolve os resultados corretos do seu Base de Dados SQL do Azure, e depois usar essa consulta no seu trabalho de Stream Analytics.
Teste sua consulta com o Visual Studio Code
Instale o Azure Stream Analytics Tools e o SQL Server (mssql) no Visual Studio Code e configure seu projeto ASA. Para obter mais informações, consulte Guia de início rápido: criar um trabalho do Azure Stream Analytics no Visual Studio Code e o tutorial de extensão do SQL Server (mssql).
Configure sua entrada de dados de referência SQL.
Selecione o ícone do SQL Server e selecione Adicionar Ligação.
Preencha as informações de conexão.
Seleciona e mantém pressionado (ou clica com o botão direito) em SQL de referência e seleciona Executar Consulta.
Escolha a sua ligação.
Reveja e verifique o resultado da consulta.
Perguntas frequentes
Tenho custos adicionais ao usar dados de referência SQL introduzidos no Azure Stream Analytics?
Não há custo extra por unidade de streaming no trabalho de Stream Analytics. No entanto, o trabalho do Stream Analytics deve ter uma conta de armazenamento do Azure associada. O trabalho Stream Analytics consulta a base de dados SQL (durante o início e o intervalo de atualização do trabalho) para recuperar o conjunto de dados de referência e armazena esse instantâneo na conta de armazenamento. Armazenar estes instantâneos implica custos adicionais detalhados na página de preços para a conta de armazenamento Azure.
Como posso saber se um snapshot de dados de referência está a ser consultado a partir do SQL Database e usado no trabalho do Azure Stream Analytics?
Duas métricas, filtradas por Nome Lógico (em Métricas no portal Azure), permitem-lhe monitorizar o estado dos dados de referência da base de dados SQL.
- InputEvents: Esta métrica mede o número de registos carregados do conjunto de dados de referência da base de dados SQL.
- InputEventBytes: essa métrica mede o tamanho do instantâneo de dados de referência carregado na memória do trabalho do Stream Analytics.
Em conjunto, ambas as métricas indicam se o trabalho consulta SQL Database para obter o conjunto de dados de referência e depois o carrega na memória.
Preciso de um tipo especial de Base de Dados SQL do Azure?
O Azure Stream Analytics funciona com qualquer tipo de Base de Dados SQL do Azure. No entanto, a taxa de atualização que define para a entrada de dados de referência pode afetar a carga de consultas. Para usar a opção de consulta delta, utilize tabelas temporais no Base de Dados SQL do Azure.
Porque é que o Azure Stream Analytics armazena snapshots numa conta Armazenamento do Azure?
O Stream Analytics garante o processamento de eventos exatamente uma vez e a entrega de eventos pelo menos uma vez. Se problemas transitórios afetarem a sua tarefa, é necessária uma pequena repetição para restaurar o estado. Para permitir a reprodução, estes instantâneos devem ser armazenados numa conta do Armazenamento do Azure. Para obter mais informações sobre a reprodução de pontos de verificação, consulte Ponto de verificação e conceitos de reprodução em tarefas do Azure Stream Analytics.
Conteúdo relacionado
- Compreender as saídas do Azure Stream Analytics
- Saída do Azure Stream Analytics para o Banco de Dados SQL do Azure
- Aumentar o desempenho de débito na Base de Dados SQL do Azure a partir do Azure Stream Analytics
- Usar identidades gerenciadas para acessar o Banco de Dados SQL do Azure ou o Azure Synapse Analytics a partir de um trabalho do Azure Stream Analytics
- Atualizar ou mesclar registros no Banco de Dados SQL do Azure com o Funções do Azure
- Guia de início rápido: criar um trabalho do Stream Analytics usando o portal do Azure