Como criar um pipeline de cópia no Azure Data Factory
Mover um ficheiro CSV para uma base de dados é uma das tarefas mais comuns num projeto de dados, e um pipeline de cópia no Azure Data Factory resolve isso sem escrever código de integração. O Azure Data Factory é o serviço de orquestração de dados da Microsoft na cloud, e a sua atividade Copy data é a forma mais direta de mover dados entre dois sítios. Vais criar, passo a passo, um pipeline que lê um CSV do Azure Blob Storage e o carrega numa tabela do Azure SQL Database.
Pré-requisitos
- Uma subscrição Azure ativa com uma instância de Azure Data Factory já criada.
- Uma conta de Azure Blob Storage com um contentor e um ficheiro CSV (por exemplo,
clientes.csv). - Uma base de dados Azure SQL Database onde tenhas permissão para criar tabelas.
- Acesso ao Azure Data Factory Studio para criar linked services, datasets e pipelines.
Passo 1: Preparar a origem e o destino
Antes de tocar no Data Factory, garante que tens os dois lados prontos: o ficheiro na origem e a tabela no destino. Um exemplo simples de clientes.csv no Blob Storage:
id,nome,cidade
1,Ana,Lisboa
2,Bruno,Porto
3,Carla,Braga
No Azure SQL Database, cria a tabela que vai receber os dados. Repara que os nomes das colunas coincidem com os do CSV, o que torna o mapeamento automático mais simples:
CREATE TABLE dbo.Clientes (
id INT,
nome NVARCHAR(100),
cidade NVARCHAR(100)
);
Passo 2: Criar os linked services
Um linked service é a ligação (endereço e credenciais) a um sistema externo. Abre o Data Factory Studio, vai ao separador Manage e escolhe Linked services > New. Cria dois: um para o Azure Blob Storage (a origem) e outro para o Azure SQL Database (o destino). Em cada um, testa a ligação com Test connection antes de guardar, para apanhares erros de credenciais logo aqui.
Passo 3: Criar os datasets
Um dataset descreve a forma e a localização dos dados dentro de um linked service. No separador Author, escolhe Datasets > New dataset. Cria um dataset DelimitedText a apontar para o clientes.csv (marca a opção que trata a primeira linha como cabeçalho) e um dataset de tabela do Azure SQL a apontar para dbo.Clientes. Estes dois datasets vão ser a origem e o destino da cópia.
Passo 4: Criar o pipeline e adicionar a atividade Copy data
Ainda no separador Author, escolhe Pipelines > New pipeline. Arrasta a atividade Copy data para a tela. Agora configura-a:
- No separador Source, seleciona o dataset do CSV.
- No separador Sink, seleciona o dataset da tabela SQL.
- No separador Mapping, clica em Import schemas para ligar cada coluna do CSV à coluna correspondente da tabela.
Passo 5: Executar o pipeline com Debug
Clica em Debug para correr o pipeline sem publicar. O Data Factory executa a cópia e mostra o progresso no separador Output. Se quiseres poder re-executar sem acumular linhas repetidas, define no Sink um pre-copy script que limpa a tabela antes de carregar:
TRUNCATE TABLE dbo.Clientes;
Verificar o resultado
Quando o Debug terminar, o separador Output deve mostrar o estado Succeeded. Passa o rato sobre a linha para ver os detalhes: o número de linhas lidas e escritas deve ser igual ao do CSV. Para confirmar no destino, corre uma consulta simples na base de dados:
SELECT COUNT(*) AS total FROM dbo.Clientes;
Se o total corresponder ao número de linhas do ficheiro, a cópia funcionou.
Conclusão
Tens agora um pipeline de cópia funcional a mover dados do Blob Storage para o Azure SQL Database. O passo seguinte natural é publicar as alterações e adicionar um Schedule trigger para o pipeline correr sozinho todas as manhãs, ou parametrizar o nome do ficheiro para reutilizar o mesmo pipeline com vários CSV. Que dados do teu dia-a-dia seriam mais úteis se chegassem à base de dados automaticamente?