Usar dados de referência de um Banco de Dados SQL para um trabalho do Azure Stream Analytics
O Azure Stream Analytics dá suporte ao Banco de Dados SQL do Azure como uma fonte de entrada para dados de referência. Você pode usar o Banco de Dados SQL como dados de referência para seu trabalho do Stream Analytics no portal do Azure e no Visual Studio com ferramentas do Stream Analytics. Este artigo demonstra como fazer ambos os métodos.
Portal do Azure
Use as seguintes etapas para adicionar o Banco de Dados SQL do Azure como uma fonte de entrada de referência usando o portal do Azure:
Pré-requisitos do portal
Criar uma tarefa do Stream Analytics.
Crie uma conta de armazenamento para ser usada pelo trabalho do Stream Analytics.
Importante
O Azure Stream Analytics retém instantâneos nesta conta de armazenamento. Ao configurar a política de retenção, é imperativo garantir que o período de tempo escolhido abranja efetivamente a duração de recuperação desejada para seu trabalho do Stream Analytics.
Crie seu Banco de Dados SQL do Azure com um conjunto de dados a ser usado como dados de referência pelo trabalho do Stream Analytics.
Definir entrada de dados de referência do Banco de Dados SQL
No trabalho do Stream Analytics, selecione Entradas em Topologia do trabalho. Clique em Adicionar entrada de referência e escolha Banco de dados SQL.
Preencha as Configurações de entrada do Stream Analytics. Escolha o nome do banco de dados, nome do servidor, nome de usuário e senha. Se desejar que a entrada de dados de referência seja atualizada periodicamente, escolha "Ativado" para especificar a taxa de atualização em DD:HH:MM. Se você tiver grandes conjuntos de dados com uma taxa de atualização curta. A consulta delta permite que você controle alterações em seus dados de referência recuperando todas as linhas no Banco de dados SQL que foram inseridas ou excluídas em uma hora @deltaStartTimede início e uma hora @deltaEndTimede término.
Consulte a consulta delta.
- Teste a consulta de instantâneo no editor de consultas SQL. Para obter mais informações, consulte Usar o editor de consultas SQL do portal do Azure para conectar e consultar dados
Especificar conta de armazenamento na configuração do trabalho
Navegue até Configurações da conta de armazenamento em Configurar e selecione Adicionar conta de armazenamento.
Iniciar a tarefa
Depois de configurar outras entradas, saídas e consultas, você pode iniciar o trabalho do Stream Analytics.
Ferramentas para o Visual Studio
Use as seguintes etapas para adicionar o Banco de Dados SQL do Azure como uma 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 seguintes versões do Visual Studio são suportadas:
- 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 retém instantâneos nesta conta de armazenamento. Ao configurar a política de retenção, é imperativo garantir que o período de tempo escolhido abranja efetivamente a duração de recuperação desejada para seu trabalho do 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 tabela de exemplo usada no exemplo a seguir foi criada a partir da seguinte instrução:
create table chemicals(Id Bigint,Name Nvarchar(max),FullName Nvarchar(max));
Selecione a sua subscrição
No Visual Studio, no menu Ver, selecione Explorador de Servidores.
Clique com o botão direito do rato no Azure, selecione Ligar à Subscrição do Microsoft Azure e inicie sessão com a sua conta do Azure.
Criar um projeto do Stream Analytics
Selecione Arquivo > Novo Projeto.
Na lista de modelos, no lado esquerdo, selecione Stream Analytics e, em seguida, selecione Aplicação do Azure Stream Analytics.
Insira o nome do projeto, o local e o nome da solução e selecione OK.
Definir entrada de dados de referência do Banco de Dados SQL
Crie uma nova entrada.
Clique duas vezes em Input.json no Gerenciador de Soluções.
Preencha a Configuração de entrada do Stream Analytics. Escolha o nome do banco de dados, o nome do servidor, o tipo de atualização e a 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", um arquivo SQL CodeBehind chamado [Alias de entrada].snapshot.sql é gerado no projeto sob o nó do arquivo Input.json .
Se você escolher "Atualizar periodicamente com Delta", dois arquivos SQL CodeBehind serão gerados: [Alias de entrada].snapshot.sql e [Alias de entrada].delta.sql.
Abra o arquivo SQL no editor e escreva a consulta SQL.
Se você estiver usando o Visual Studio 2019 e tiver instalado as ferramentas de dados do SQL Server, poderá testar a consulta clicando em Executar. Uma janela do assistente será exibida para ajudá-lo a se conectar ao Banco de dados SQL e o resultado da consulta aparecerá na janela na parte inferior.
Especificar conta de armazenamento
Abra JobConfig.json para especificar a conta de armazenamento para armazenar instantâneos de referência SQL.
Teste localmente e implante no Azure
Antes de implantar o trabalho no Azure, você pode testar a lógica de consulta localmente em relação aos dados de entrada em tempo real. Para obter mais informações sobre esse recurso, consulte Testar dados ao vivo localmente usando as ferramentas do Azure Stream Analytics para Visual Studio (Visualização). Quando terminar o teste, clique em Enviar para o Azure. Consulte o Guia de início rápido Criar um Stream Analytics usando as ferramentas do Azure Stream Analytics para Visual Studio para saber como iniciar o trabalho.
Consulta delta
Ao usar a consulta delta, as tabelas temporais no Banco de Dados SQL do Azure são recomendadas.
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 query
Crie a consulta de instantâneo.
Use o parâmetro @snapshotTime para instruir o tempo de execução do Stream Analytics a obter o conjunto de dados de referência da tabela temporal do Banco de dados SQL válida no momento do sistema. Se você não fornecer esse parâmetro, corre o risco de obter um conjunto de dados de referência de base impreciso devido a distorções de relógio. Um exemplo de consulta de instantâneo completo é mostrado abaixo:
SELECT DeviceId, GroupDeviceId, [Description] FROM dbo.DeviceTemporal FOR SYSTEM_TIME AS OF @snapshotTime
Crie a consulta delta.
Essa consulta recupera todas as linhas do Banco de dados SQL que foram inseridas ou excluídas em uma @deltaEndTime de hora de início, @deltaStartTime e hora de término. A consulta delta deve retornar as mesmas colunas que a consulta de instantâneo, bem como a operação de coluna. 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 marca d'água do lado do SQL Server para garantir que todas as atualizações no período delta sejam capturadas adequadamente. Usar consulta delta sem marca d'água pode resultar em 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 tempo de execução do Stream Analytics aplicará os resultados da consulta delta ao instantâneo anterior para manter os dados de referência atualizados. Um exemplo de consulta delta é mostrado abaixo:
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 deleted
Observe que o tempo 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
Ao usar 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 causar 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);
Isso garante que nenhuma atualização duplicada seja executada.
Testar a consulta
É importante verificar se sua consulta está retornando o conjunto de dados esperado que o trabalho do Stream Analytics usará como dados de referência. Para testar sua consulta, vá para Entrada na seção Topologia de trabalho no portal. Em seguida, você pode selecionar Dados de Exemplo na entrada de Referência do Banco de Dados SQL. Depois que o exemplo estiver disponível, você poderá baixar o arquivo e verificar se os dados retornados estão conforme o esperado. Se você quiser otimizar suas iterações de desenvolvimento e teste, é recomendável usar as ferramentas do Stream Analytics para Visual Studio. Você também pode qualquer outra ferramenta de sua preferência para primeiro garantir que a consulta esteja retornando os resultados corretos do Banco de Dados SQL do Azure e, em seguida, usar isso em seu trabalho do 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 clique em Adicionar conexão.
Preencha as informações de conexão.
Clique com o botão direito do mouse em SQL de referência e selecione Executar consulta.
Escolha a sua ligação.
Reveja e verifique o resultado da consulta.
FAQs
Incorrerei em custos adicionais usando a entrada de dados de referência SQL no Azure Stream Analytics?
Não há custo adicional por unidade de streaming no trabalho do Stream Analytics. No entanto, o trabalho do Stream Analytics deve ter uma conta de armazenamento do Azure associada. O trabalho do Stream Analytics consulta o banco de dados SQL (durante o intervalo de início e atualização do trabalho) para recuperar o conjunto de dados de referência e armazena esse instantâneo na conta de armazenamento. O armazenamento desses instantâneos incorrerá em cobranças adicionais detalhadas na página de preços da conta de armazenamento do Azure.
Como sei que o instantâneo de dados de referência está sendo consultado do Banco de Dados SQL e usado no trabalho do Azure Stream Analytics?
Há duas métricas filtradas por Nome Lógico (em Portal do Azure de Métricas) que você pode usar para monitorar a integridade da entrada de dados de referência do Banco de Dados SQL.
- InputEvents: essa métrica mede o número de registros carregados do conjunto de dados de referência do Banco 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.
A combinação de ambas as métricas pode ser usada para inferir se o trabalho está consultando o Banco de dados SQL para buscar o conjunto de dados de referência e, em seguida, carregando-o na memória.
Vou precisar de um tipo especial de Banco de Dados SQL do Azure?
O Azure Stream Analytics funcionará com qualquer tipo de Banco de Dados SQL do Azure. No entanto, é importante entender que a taxa de atualização definida para a entrada de dados de referência pode afetar a carga da consulta. Para usar a opção de consulta delta, é recomendável usar tabelas temporais no Banco de Dados SQL do Azure.
Por que o Azure Stream Analytics armazena instantâneos na conta de Armazenamento do Azure?
O Stream Analytics garante exatamente um processamento de eventos e pelo menos uma entrega de eventos. Nos casos em que problemas transitórios afetam seu trabalho, uma pequena quantidade de repetição é necessária para restaurar o estado. Para habilitar a repetição, é necessário ter esses instantâneos armazenados em uma conta de Armazenamento do Azure. Para obter mais informações sobre a repetição de pontos de verificação, consulte Conceitos de ponto de verificação e repetição em trabalhos do Azure Stream Analytics.
Próximos passos
- 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 do débito da 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 Azure Functions
- Guia de início rápido: criar um trabalho do Stream Analytics usando o portal do Azure