Carregar dados em um pool de SQL dedicado no Azure Synapse Analytics com o SSIS (SQL Server Integration Services)
Aplica-se a: Azure Synapse Analytics
Criar um pacote do SSIS (SQL Server Integration Services) para carregar os dados em um pool de SQL dedicado no Azure Synapse Analytics. Opcionalmente, você pode reestruturar, transformar e limpar os dados conforme eles passam pelo fluxo de dados do SSIS.
Este artigo mostra como fazer o seguinte:
- Criar um projeto do Integration Services no Visual Studio.
- Criar um pacote do SSIS que carrega dados da fonte para o destino.
- Executar o pacote do SSIS para carregar os dados.
Conceitos básicos
O pacote é a unidade básica de trabalho no SSIS. Os pacotes relacionados são agrupados em projetos. Você cria projetos e elabora pacotes no Visual Studio com o SQL Server Data Tools. O processo de design é um processo visual em que você arrasta e solta componentes da Caixa de ferramentas na superfície de design, conecta-os e define as respectivas propriedades. Depois de concluir seu pacote, você poderá executá-lo e, opcionalmente, implantá-lo no SQL Server ou no Banco de Dados SQL para realizar gerenciamento, monitoramento e segurança abrangentes.
Uma introdução detalhada ao SSIS está além do escopo deste artigo. Para saber mais, leia os seguintes artigos:
Opções para carregar dados no Azure Synapse Analytics com o SSIS
O SSIS (SQL Server Integration Services) é um conjunto flexível de ferramentas que oferece uma variedade de opções para se conectar ao Azure Synapse Analytics e carregar dados nele.
O método preferencial, que fornece o melhor desempenho, é criar um pacote que use a tarefa de upload do SQL DW do Azure para carregar os dados. Essa tarefa encapsula informações de origem e destino. Ela pressupõe que seus dados de origem são armazenados localmente em arquivos de texto delimitado.
Como alternativa, você pode criar um pacote que usa uma tarefa de fluxo de dados que contém uma origem e um destino. Essa abordagem permite uma ampla variedade de fontes de dados, incluindo o SQL Server e o Azure Synapse Analytics.
Prerequisites
Para realizar este tutorial, você precisa do seguinte:
- Do SSIS (SQL Server Integration Services) . O SSIS é um componente do SQL Server e requer uma versão licenciada, ou uma versão de avaliação ou do desenvolvedor, do SQL Server. Para obter uma versão de avaliação do SQL Server, consulte Avaliar SQL Server.
- Visual Studio (opcional). Para obter o Visual Studio Community Edition gratuito, confira Visual Studio Community. Se não quiser instalar o Visual Studio, você poderá instalar apenas o SSDT (SQL Server Data Tools). O SSDT instala uma versão do Visual Studio com funcionalidade limitada.
- Do SSDT (SQL Server Data Tools) para Visual Studio. Para obter o SQL Server Data Tools para Visual Studio, confira Baixar o SSDT (SQL Server Data Tools).
- Banco de dados e permissões do Azure Synapse Analytics. Este tutorial se conecta a um pool de SQL dedicado na instância do Azure Synapse Analytics e carrega dados nela. Você precisa das permissões para se conectar, criar uma tabela e carregar dados.
Criar um novo projeto do Integration Services
- Inicie o Visual Studio.
- No menu Arquivo, selecione Novo | Projeto.
- Navegue até os tipos de projeto Instalados | Modelos | Business Intelligence | Integration Services.
- Selecione Projeto do Integration Services. Forneça valores de Nome e Localização e, em seguida, selecione OK.
O Visual Studio é aberto e cria um projeto do SSIS (Integration Services). Em seguida, o Visual Studio abre o designer do único novo pacote do SSIS (Package.dtsx) no projeto. Você verá as seguintes áreas na tela:
À esquerda, a Caixa de ferramentas dos componentes do SSIS.
No meio, a superfície de design, com várias guias. Geralmente, você usa pelo menos as guias Fluxo de Controle e Fluxo de Dados.
À direita, os painéis Gerenciador de Soluções e Propriedades.
Opção 1 – Usar a tarefa de upload do SQL DW
A primeira abordagem é um pacote que usa a tarefa de upload do SQL DW. Essa tarefa encapsula informações de origem e destino. Ela pressupõe que seus dados de origem são armazenados em arquivos de texto delimitado, localmente ou no Armazenamento de Blobs do Azure.
Pré-requisitos para a Opção 1
Para continuar o tutorial com essa opção, você precisa do seguinte:
O Feature Pack do Microsoft SQL Server Integration Services para Azure. A tarefa de upload do SQL DW é um componente do Feature Pack.
Uma conta de Armazenamento de Blobs do Azure. A tarefa de upload do SQL DW carrega dados do Armazenamento de Blobs do Azure para o Azure Synapse Analytics. Você pode carregar arquivos que já estão no Armazenamento de Blobs ou pode carregar arquivos do seu computador. Se selecionar arquivos em seu computador, a tarefa Carregar do SQL DW carregará, primeiramente, os arquivos no Armazenamento de Blobs para preparo, e depois os carregará para seu pool de SQL dedicado.
Adicionar e configurar a tarefa de upload do SQL DW
Arraste uma tarefa de upload do SQL DW da caixa de ferramentas até o centro da superfície de design (na guia Fluxo de controle).
Clique duas vezes na tarefa para abrir o editor da tarefa de upload do SQL DW.
Configure a tarefa com a ajuda das diretrizes no artigo tarefa de upload do SQL DW do Azure. Como essa tarefa encapsula as informações de origem e destino, bem como os mapeamentos entre tabelas de origem e destino, o editor da tarefa tem várias páginas de configurações para definir.
Criar uma solução semelhante manualmente
Para obter mais controle, você pode criar manualmente um pacote que emula o trabalho realizado pela tarefa de upload do SQL DW.
Use a Tarefa de upload de Blobs do Azure para preparar os dados no Armazenamento de Blobs do Azure. Para obter a tarefa de Upload de Blobs do Azure, baixe o Feature Pack do Microsoft SQL Server Integration Services para Azure.
Depois, use a tarefa Executar SQL do SSIS para inicializar um script do PolyBase que carrega os dados em seu pool de SQL dedicado. Para obter um exemplo que carrega os dados do Armazenamento de Blobs do Azure no pool de SQL dedicado (mas não com o SSIS), confira Tutorial: Carregar dados para o Azure Synapse Analytics.
Opção 2 – Usar uma origem e um destino
A segunda abordagem é um pacote típico que usa uma tarefa de fluxo de dados que contém uma origem e um destino. Essa abordagem permite uma ampla variedade de fontes de dados, incluindo o SQL Server e o Azure Synapse Analytics.
Este tutorial usa o SQL Server como fonte de dados. O SQL Server é executado localmente ou em uma máquina virtual do Azure.
Para conectar-se ao SQL Server e a um pool de SQL dedicado, você pode usar uma fonte, um destino e um gerenciador de conexões ADO.NET ou um gerenciador de conexões OLE DB com uma fonte e um destino. Este tutorial usa o ADO.NET porque ele tem menos opções de configuração. O OLE DB pode resultar em um desempenho ligeiramente melhor do que o ADO.NET.
Como atalho, é possível usar o Assistente de Importação e Exportação do SQL Server para criar o pacote básico. Em seguida, salve o pacote e abra-o no Visual Studio ou no SSDT para exibi-lo e personalizá-lo. Para obter mais informações, consulte Importar e exportar dados com o Assistente para Importação e Exportação do SQL Server.
Pré-requisitos para a Opção 2
Para continuar o tutorial com essa opção, você precisa do seguinte:
De dados de exemplo. Este tutorial usa dados de exemplo armazenados no SQL Server, no banco de dados de exemplo AdventureWorks, como os dados de origem a serem carregados em um pool de SQL dedicado. Para obter o banco de dados de exemplo AdventureWorks, confira Bancos de dados de exemplo AdventureWorks.
De uma regra de firewall. Crie uma regra de firewall em seu pool de SQL dedicado com o endereço IP do seu computador local antes de carregar dados no pool de SQL dedicado.
Criar o fluxo de dados básico
Arraste uma Tarefa Fluxo de Dados da Caixa de ferramentas até o centro da superfície de design (na guia Fluxo de Controle).
Clique duas vezes na Tarefa Fluxo de Dados para mudar para a guia Fluxo de Dados.
Na lista Outras Fontes, da Caixa de ferramentas, arraste uma Fonte do ADO.NET até a superfície de design. Mantendo o adaptador de fonte selecionado, altere o nome dele para fonte do SQL Server no painel Propriedades.
Na lista Outros Destinos, na Caixa de ferramentas, arraste um Destino do ADO.NET até a superfície de design, na fonte do ADO.NET. Mantendo o adaptador de destino selecionado, altere o nome dele para destino do SQL DW no painel Propriedades.
Configurar o adaptador de fonte
Clique duas vezes no adaptador de fonte para abrir o Editor de Origem ADO.NET.
Na guia Gerenciador de Conexões do Editor de Origem ADO.NET, clique no botão Novo próximo à lista do Gerenciador de conexões do ADO.NET para abrir a caixa de diálogo Configurar Gerenciador de Conexões ADO.NET e criar configurações de conexão para o banco de dados do SQL Server do qual este tutorial carrega os dados.
Na caixa de diálogo Configurar Gerenciador de Conexões ADO.NET, clique no botão Novo para abrir a caixa de diálogo Gerenciador de Conexões e criar uma conexão de dados.
Na caixa de diálogo Gerenciador de Conexões, faça o seguinte.
Para Provedor, selecione o Provedor de Dados SqlClient.
Para Nome do servidor, digite o nome do SQL Server.
Na seção Fazer logon no servidor, selecione ou insira as informações de autenticação.
Na seção Conectar a um banco de dados, selecione o banco de dados de exemplo AdventureWorks.
Clique em Testar Conexão.
Na caixa de diálogo que relata os resultados do teste de conexão, clique em OK para retornar para a caixa de diálogo Gerenciador de Conexões.
Na caixa de diálogo Gerenciador de Conexões, clique em OK para retornar para a caixa de diálogo Configurar Gerenciador de Conexões ADO.NET.
Na caixa de diálogo Configurar Gerenciador de Conexões ADO.NET, clique em OK para retornar para o Editor de Origem ADO.NET.
No Editor de Origem ADO.NET, na lista Nome da tabela ou da exibição, selecione a tabela Sales.SalesOrderDetail.
Clique em Visualização para ver as primeiras 200 linhas de dados da tabela de origem na caixa de diálogo Visualizar Resultados da Consulta.
Na caixa de diálogo Visualizar Resultados da Consulta, clique em Fechar para retornar para o Editor de Origem ADO.NET.
No Editor de Origem ADO.NET, clique em OK terminar a configuração da fonte de dados.
Conectar o adaptador de fonte ao adaptador de destino
Selecione o adaptador de fonte na superfície de design.
Selecione a seta azul que se estende do adaptador de fonte e arraste-a até o editor de destino até que ela se encaixe.
Em um pacote do SSIS típico, você pode usar uma variedade de componentes adicionais da Caixa de ferramentas do SSIS entre a fonte e o destino para reestruturar, transformar e limpar seus dados, conforme eles passam pelo fluxo de dados do SSIS. Para deixar este exemplo o mais simples possível, estamos conectando a fonte diretamente com o destino.
Configurar o adaptador de destino
Clique duas vezes no adaptador de destino para abrir o Editor de Destino ADO.NET.
Na guia Gerenciador de Conexões do Editor de Destino ADO.NET, clique no botão Novo próximo à lista do Gerenciador de Conexões para abrir a caixa de diálogo Configurar Gerenciador de Conexões ADO.NET e criar configurações de conexão para o banco de dados do Azure Synapse Analytics, no qual este tutorial carrega dados.
Na caixa de diálogo Configurar Gerenciador de Conexões ADO.NET, clique no botão Novo para abrir a caixa de diálogo Gerenciador de Conexões e criar uma conexão de dados.
Na caixa de diálogo Gerenciador de Conexões, faça o seguinte.
- Para Provedor, selecione o Provedor de Dados SqlClient.
- Para Nome do servidor, insira o nome do pool de SQL dedicado.
- Na seção Fazer logon no servidor, selecione Usar autenticação do SQL Server e insira as informações de autenticação.
- Na seção Conectar-se a um banco de dados, selecione um banco de dados do pool de SQL dedicado existente.
- Clique em Testar Conexão.
- Na caixa de diálogo que relata os resultados do teste de conexão, clique em OK para retornar para a caixa de diálogo Gerenciador de Conexões.
- Na caixa de diálogo Gerenciador de Conexões, clique em OK para retornar para a caixa de diálogo Configurar Gerenciador de Conexões ADO.NET.
Na caixa de diálogo Configurar Gerenciador de Conexões ADO.NET, clique em OK para retornar para o Editor de Destino ADO.NET.
No Editor de Destino ADO.NET, clique em Novo, ao lado da lista Usar uma tabela ou exibição, para abrir a caixa de diálogo Criar Tabela e criar uma tabela de destino com uma lista de colunas que corresponda à tabela de origem.
Na caixa de diálogo Criar Tabela, faça o seguinte.
Altere o nome da tabela de destino para SalesOrderDetail.
Remova a coluna rowguid. O tipo de dados uniqueidentifier não é compatível com o pool de SQL dedicado.
Altere o tipo de dados da coluna LineTotal para money. O tipo de dados decimal não é compatível com o pool de SQL dedicado. Para saber mais sobre tipos de dados com suporte, confira CREATE TABLE (Azure Synapse Analytics, Parallel Data Warehouse).
Clique em OK para criar a tabela e retornar ao Editor de Destino ADO.NET.
No Editor de Destino ADO.NET, selecione a guia Mapeamentos para ver como as colunas da fonte são mapeadas para as colunas do destino.
Clique em OK para concluir a configuração do destino.
Executar o pacote para carregar os dados
Execute o pacote clicando no botão Iniciar na barra de ferramentas ou selecionando uma das opções Executar do menu Depurar.
Os parágrafos a seguir descrevem o que você vê ao criar o pacote com a segunda opção descrita neste artigo, ou seja, com um fluxo de dados que contém uma origem e um destino.
Conforme o pacote começar a executar, você verá rodas amarelas giratórias indicando a atividade, bem como o número de linhas processadas até aquele momento.
Quando a execução do pacote for concluída, você verá marcas de seleção verdes para indicar êxito, bem como o número total de linhas de dados carregados da fonte para o destino.
Parabéns! Você conseguiu usar o SQL Server Integration Services para carregar dados no Azure Synapse Analytics.
Próximas etapas
Saiba como depurar e solucionar problemas de pacotes diretamente no ambiente de design. Comece aqui: Ferramentas de solução de problemas para desenvolvimento de pacotes.
Saiba como implantar seus pacotes e projetos do SSIS no servidor do Integration Services ou em outro local de armazenamento. Comece aqui: Implantação de Projetos e Pacotes.