Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Dados de referência são um conjunto de dados estático ou que muda lentamente e que você junta aos seus dados de streaming para enriquecê-los, como adicionar detalhes de produtos a uma sequência de eventos de vendas. O Azure Stream Analytics suporta o Banco de Dados SQL do Azure como fonte de dados de referência, então você pode consultar e combinar esses dados com sua entrada em tempo real.
Este artigo mostra como configurar um Banco de Dados SQL do Azure como entrada de dados de referência para um trabalho de Stream Analytics, usando tanto o portal do Azure quanto o Visual Studio com ferramentas de Stream Analytics.
Adicione dados de referência do Banco de Dados SQL usando o portal do Azure
Use os seguintes passos para adicionar o Banco de Dados SQL do Azure como fonte de entrada de referência usando o portal Azure:
Pré-requisitos do portal
Crie um trabalho de Stream Analytics.
Crie uma conta de armazenamento para uso do trabalho do Stream Analytics.
Importante
Azure Stream Analytics mantém snapshots dentro desta conta de armazenamento. Ao configurar a política de retenção, certifique-se de que o intervalo de tempo escolhido inclua o tempo de recuperação que você deseja para seu trabalho de Stream Analytics.
Crie seu Banco de Dados SQL do Azure com um conjunto de dados que o trabalho de Stream Analytics usa como dados de referência.
Definir a entrada de dados de referência do Banco de Dados SQL
No trabalho do Stream Analytics, selecione Entradas em Topologia do trabalho. Selecione Adicionar entrada de referência e então selecione Banco de Dados SQL.
Preencha a configuração de entrada do Stream Analytics. Escolha o nome do banco de dados, o nome do servidor e as credenciais de login do banco de dados. Para atualizar periodicamente seus dados de referência, selecione Ativado e especifique o intervalo de atualização em DD:HH:MM. Para grandes conjuntos de dados com taxa de atualização curta, a consulta delta acompanha as mudanças dentro dos seus dados de referência ao recuperar todas as linhas no Banco de Dados SQL que foram inseridas ou excluídas entre um horário de início,
@deltaStartTime, e um horário de término,@deltaEndTime.Para obter mais informações, consulte consulta delta.
Teste a consulta de snapshot no editor de consultas SQL. Para mais informações, veja Usar o editor de consultas SQL do portal do Azure para conectar e consultar dados.
Especifique a conta de armazenamento na configuração do trabalho
Vá em Configurações da conta de armazenamento em Configurar e então selecione Adicionar conta de armazenamento.
Iniciar o trabalho
- Depois de configurar as outras entradas, saídas e consultas, inicie o trabalho de Análise de Fluxos.
Adicione dados de referência do Banco de Dados SQL usando o Visual Studio
Use os seguintes passos para adicionar o Banco 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 o Visual Studio. As ferramentas de Análise de Fluxos suportam as seguintes versões do Visual Studio:
- Visual Studio 2015
- Visual Studio 2019
Conheça o guia de início rápido das ferramentas do Stream Analytics para Visual Studio.
Criar uma conta de armazenamento.
Importante
O Azure Stream Analytics armazena snapshots nesta conta de armazenamento. Ao configurar a política de retenção, certifique-se de que o intervalo de tempo escolhido inclua o tempo de recuperação que você deseja para 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 os dados de referência. Saiba mais em Projetar seu primeiro Banco de Dados SQL do Azure usando o SSMS.
A seguinte afirmação cria a tabela de exemplo:
create table chemicals(Id Bigint,Name Nvarchar(max),FullName Nvarchar(max));
Escolha sua assinatura
No Visual Studio, no menu Exibir, selecione Gerenciador de Servidores.
Selecione e segure (ou clique com o botão direito) no Azure, selecione Conectar à Assinatura do Microsoft Azure e faça login com sua conta Azure.
Criar um projeto do Stream Analytics
Clique em Arquivo>Novo Projeto.
Na lista de modelos, selecione Stream Analytics e depois Azure Stream Analytics Application.
Digite o Nome do projeto, Local e Nome da Solução, e então selecione OK.
Definir a entrada de dados de referência do Banco de Dados SQL
Crie uma nova entrada.
Abra Input.json em Gerenciador de Soluções.
Preencha as Configurações de entrada do Stream Analytics. Insira o nome do banco 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 você escolher Executar apenas uma vez ou Executar periodicamente, Visual Studio gera um arquivo SQL CodeBehind chamado [Input Alias].snapshot.sql no projeto sob o nó do arquivo Input.json.
Se você escolher Atualizar Periodicamente com Delta, Visual Studio gera dois arquivos SQL CodeBehind: [Input Alias].snapshot.sql e [Input Alias].delta.sql.
Abra o arquivo SQL no editor e grave a consulta SQL.
Se você estiver usando o Visual Studio 2019 e instalou o SQL Server Data Tools, pode testar a consulta selecionando Executar. Um assistente se abre para ajudar você a se conectar ao Banco de Dados SQL, e o resultado da consulta aparece na janela no final.
Especificar a conta de armazenamento
Abra JobConfig.json para especificar a conta de armazenamento para armazenar snapshots de referência SQL.
Testar localmente e implantar no Azure
Antes de implantar o trabalho no Azure, você pode testar a lógica de consulta localmente contra dados de entrada ao vivo. Para mais informações sobre esse recurso, veja Testar dados ao vivo localmente usando as ferramentas Azure Stream Analytics para Visual Studio (Prévia). Quando terminar de testar, selecione Enviar para o Azure. Para aprender a iniciar o trabalho, consulte o guia de início rápido Criar um trabalho do Stream Analytics usando as ferramentas do Azure Stream Analytics para Visual Studio.
Consulta delta
Quando você usa a consulta delta, utilize tabelas temporais no Banco 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 queryCrie a consulta de instantâneo.
Use o parâmetro @snapshotTime para instruir o runtime do Stream Analytics a obter o conjunto de dados de referência da tabela temporal do Banco de Dados SQL válido no tempo do sistema. Se você não fornecer esse parâmetro, você corre o risco de obter um conjunto de dados de referência de base impreciso devido a desvios de relógio. O exemplo a seguir mostra uma consulta completa de snapshot:
SELECT DeviceId, GroupDeviceId, [Description] FROM dbo.DeviceTemporal FOR SYSTEM_TIME AS OF @snapshotTimeCrie a consulta delta.
Essa consulta recupera todas as linhas no Banco de Dados SQL que foram inseridas ou excluídas dentro de um horário de início, @deltaStartTime e um horário de término, @deltaEndTime. A consulta delta deve retornar as mesmas colunas que a consulta de snapshot, bem como a coluna operação. Esta coluna define se a linha é inserida ou excluída 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 um watermark no lado do SQL Server para garantir que todas as atualizações no período delta sejam capturadas corretamente. Usar uma consulta delta sem marca d'água pode resultar em um conjunto de dados de referência incorreto.
Quanto aos registros que foram atualizados, a tabela temporal faz a contabilidade, capturando uma operação de inserção e exclusão. O runtime do Stream Analytics então aplica os resultados da consulta delta ao snapshot anterior para manter os dados de referência atualizados. O exemplo a seguir 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 snapshot, além da consulta delta, para armazenar pontos de verificação.
Importante
Quando você usa consultas delta de dados de referência, não faça atualizações idênticas na tabela de dados de referência temporal várias vezes. Isso pode produzir resultados incorretos. Aqui está um exemplo que pode fazer com que 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);Essa condição garante que não ocorram atualizações duplicadas.
Teste sua consulta
Verifique se sua consulta retorna o conjunto de dados esperado que o trabalho de Stream Analytics usa como dados de referência. Para testar sua consulta, vá em Entradas na seção de topologia de trabalhos no portal. Depois, selecione Dados de Exemplo na entrada de referência do seu Banco de Dados SQL. Depois que o exemplo estiver disponível, você pode baixar o arquivo e verificar se os dados retornados estão conforme o esperado. Para otimizar suas iterações de desenvolvimento e teste, use as ferramentas de Análise de Fluxo para o Visual Studio. Você também pode usar qualquer outra ferramenta que preferir para primeiro garantir que a consulta retorne os resultados corretos do seu Banco de Dados SQL do Azure e, em seguida, usar essa consulta no seu trabalho de Análise de Fluxos.
Testar sua consulta com o Visual Studio Code
Instale as Ferramentas do Azure Stream Analytics e SQL Server (mssql) no Visual Studio Code e configure seu projeto ASA. Para obter mais informações, consulte Início Rápido: criar um trabalho de 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 do SQL.
Selecione o ícone do SQL Server e selecione Adicionar Conexão.
Preencha as informações de conexão.
Selecione e segure (ou clique com o botão direito) em SQL de referência e selecione Executar Consulta.
Escolha sua conexão.
Examine e verifique o resultado da consulta.
Perguntas frequentes
Tenho custos extras ao usar dados de referência SQL no Azure Stream Analytics?
Não há custo extra por unidade de streaming no trabalho de Análise de Streams. No entanto, é preciso que o trabalho do Stream Analytics tenha uma conta de armazenamento do Azure associada. O trabalho de Stream Analytics consulta o Banco 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 snapshot na conta de armazenamento. Armazenar esses snapshots gera custos extras detalhados na página de preços da conta de armazenamento do Azure.
Como saber se um snapshot de dados de referência está sendo consultado 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 que você monitore a saúde dos dados de referência do Banco de Dados SQL.
- InputEvents: Esta métrica mede o número de registros carregados do conjunto de dados de referência do Banco de Dados SQL.
- InputEventBytes: esta métrica mede o tamanho do instantâneo de dados de referência carregado na memória do trabalho do Stream Analytics.
Juntas, ambas as métricas indicam se o trabalho consulta o SQL Database para buscar o conjunto de dados de referência e depois o carrega na memória.
Preciso de um tipo especial de Banco de Dados SQL do Azure?
Azure Stream Analytics trabalha com qualquer tipo de Banco de Dados SQL do Azure. No entanto, a taxa de atualização que você configura para a entrada de dados de referência pode afetar a carga de consultas. Para usar a opção de consulta delta, use tabelas temporais no Banco de Dados SQL do Azure.
Por que o Azure Stream Analytics armazena snapshots em uma conta do Armazenamento do Azure?
Stream Analytics garante o processamento de eventos exatamente uma vez e a entrega de eventos pelo menos uma vez. Se problemas transitórios afetarem seu trabalho, é necessário um pouco de repetição para restaurar o estado. Para permitir a reprodução, esses snapshots devem ser armazenados em uma conta do Armazenamento do Azure. Para obter mais informações sobre a reexecução de ponto de verificação, consulte Conceitos de ponto de verificação e reexecução em trabalhos do Azure Stream Analytics.
Conteúdo relacionado
- Entender as saídas do Azure Stream Analytics
- Saída do Azure Stream Analytics para o Banco de Dados SQL do Azure
- Aumentar o desempenho da taxa de transferência para o Banco de Dados SQL do Azure com o Azure Stream Analytics
- Usar identidades gerenciadas para acessar o Banco de Dados SQL do Azure ou o Azure Synapse Analytics por meio de um trabalho do Azure Stream Analytics
- Atualizar ou mesclar registros em Banco de Dados SQL do Azure com Azure Functions
- Início Rápido: Criar um trabalho do Stream Analytics usando o portal do Azure