Escrito por Jamuarê Strauss,

4 minutos de leitura

Estrutura básica de uma pipeline no Azure Data Factory

Compartilhe este post:

O que é uma pipeline?

Para começar a entender como se constrói uma pipeline no ambiente Azure, se faz necessário dar um passo para trás e entender qual a utilidade de uma pipeline para um engenheiro de dados. Este profissional tem por responsabilidade gerenciar, otimizar, supervisionar o armazenamento e a distribuição de dados de uma organização. Uma pipeline é um “cano” ou “oleoduto”, em sentido metafórico, e representa o caminho que um dado percorre da sua origem até o consumidor final daquela informação.

 

Azure Data Factory

O Azure Data Factory é o service de integração de dados na nuvem usado para alimentar um sistema de armazenamento de dados (ex: data warehouse, data lake), mover e processar dados em uma sequência automatizada, ou seja, em uma pipeline.

 

Pipeline dentro do Azure Data Factory

Imagine que temos que levar um item de valor do banco A para o banco B. Primeiramente precisamos do endereço do banco A e da permissão de entrada. Precisamos ainda da informação sobre qual será o conteúdo do item a ser transportado. Afinal, se saiu R$100.000,00 do banco A deve chegar R$100.000,00 ao banco B. Ainda será necessária a rota, por onde passaremos com o nosso carro-forte. A rota é segura? Quais os pontos críticos da mesma? Informações adicionais também são necessárias sobre o banco de destino. Chegando lá, em qual cofre depositaremos a carga? Temos permissão de acesso a este cofre e o endereço do banco B?

Todo este processo precisa ser supervisionado. Haverá um responsável pelo transporte. Como uma empresa de transporte de valores não terá apenas um único transporte, também existe a figura gerente de transportes que organizará os deslocamentos realizados. Nesta comparação, o banco A será a fonte dos dados que no Azure poderá ser um Blob storage e o nosso item de valor, o dado, poderá ser um arquivo .csv. A permissão de entrada no banco A e o seu respectivo endereço é o Linked Service. A descrição da nossa carga é o Dataset, a rota para o banco B será a atividade a ser designada, uma cópia, uma leitura de arquivo (lookup) ou metadados do armazenamento, etc.

A informação sobre qual o cofre será o nosso segundo Dataset, e o endereço e permissões de acesso ao banco B o nosso segundo Linked Service. O cofre no qual será depositado nosso item de valor será o destino de nosso dado que poderá ser um outro blob storage, uma tabela em um banco de dados (relacional ou não), ou algum outro sistema de armazenamento.

O responsável por supervisionar esse transporte é a nossa pipeline e o gerente de transporte que supervisiona todos os eles é o Azure Data Factory.

Então, de modo resumido, temos:

+++ Banco A → origem dos dados, armazenamento

+++ Informação sobre a carga (item de valor) → Dataset

+++ Permissões para ter acesso à carga → Linked service

+++ Ação a ser executada (o transporte) → Activity (uma cópia, um LookUp)

+++ Permissões necessárias para guardar o item no banco B → Linked service

+++ Informação sobre como o item será armazenado → Dataset

+++ Banco B → destino dos dados, armazenamento

 

Note que cada passo está contido dentro da pipeline. Ela é a responsável por orquestrar todos os eventos, todo o fluxo tal qual um encanamento que garante que toda a água que passe por ele chegue ao seu destino.

Por fim, o Azure Data Factory organiza todas as pipelines existentes dentro do ambiente Azure. Para garantir que todas sejam executadas com sucesso no que depender do processamento dentro da nuvem da Microsoft.

 

Considerações finais

Alguns esclarecimentos: os arquivos podem sair do mesmo armazenamento que é o destino. Neste caso, seria como se o Banco A e o B fossem os mesmos, e os linkeds services também o serão. Foi usado a atividade de cópia como exemplo com a analogia do transporte de carga. Entretanto, é bom visar que o Data Factory possui várias atividades que podem ser executadas, inclusive podemos usar mais de uma ao longo de uma pipeline.

O Data Factory não é só para armazenamento, nós podemos o utilizar para exportar arquivos. O foco de um pipeline é mover e processar dados, não necessariamente inserir dados dentro de um storage padrão. Podemos fazer apenas um delivery de um arquivo .csv para consumo, por exemplo.

Existe uma longa lista de atividades que podem ser executadas dentro de uma pipeline. Embora tenhamos usada a atividade de cópia no exemplo a gama de atividades possíveis dentro da Factory é extensa. É possível tratar e validar dados dentro dele. Aliás, ele foi construído para ser uma ferramenta gráfica de ETL. Você consultar a documentação da Microsoft para ver toda a lista de possibilidades.

Compartilhe este post: