No meu primeiro post do portfólio (leia aqui), mostrei como instalar o DBT, ferramenta de transformação e as primeiras configurações.
Continuando a ideia do projeto e meus estudos, havia dito que utilizaria as seguintes ferramentas: Airbyte, DBT, Airflow e Spark.
Dito isso, hoje venho aqui mostrar como configurar o Airbyte na sua máquina. O processo em si é bem fácil e rápido, bastando apenas ter o Docker.
ÍNDICE:
INSTALANDO AIRBYTE
Para começar, baixe e instale o Docker no seu pc por aqui.
Como estou utilizando o WSL2, ele automaticamente captura e se ajusta ao meu cenário. Caso não esteja, veja como configurar corretamente.
Abrindo o WSL2 e iniciando o UBUNTU, crie um diretório para clonar o software na pasta com o comando:
mkdir airbyte
Quando terminar de criar a pasta, digite o seguinte código abaixo:
git clone https://github.com/airbytehq/airbyte.git
O S.O irá baixar a ferramenta do Git e instalar no seu ambiente. Após a instalação, entre no diretório do Airbyte com o change directory.
No diretório, verá que existem diversos arquivos:
O que nos interessa é o comando:
docker-compose up
Esse comando irá baixar uma imagem Docker na sua máquina e irá subir o serviço do Airbyte localmente.
Para acessar o Airbyte localmente e criar as conexões e transformações, acesse:
Criando usuário para o airbyte
Esse foi o link que a própria ferramenta disponibilizou para o host local e single node.
Para acessar, o login padrão é: airbyte/password.
Ao acessar, irá cair na tela do Airbyte e verá seus recursos.
Para criar uma conexão, basta clicar em “Create your first connection”.
Antes de criar a conexão no Airbyte, eu criei uma conta para o ELT no banco SQL Server.
Assim, a ferramenta terá acesso limitado tanto ao banco quanto ao ambiente no geral.
Agora que temos o Airbyte instalado, o Docker com o container online e a conta no SQL Server para o ELT criado, vamos criar a conexão com o banco e as fontes.
CRIANDO A SOURCE
Sabendo que nos tempos atuais as fontes de dados são diversas, é bem comum que tenhamos uma conexão para cada fonte.
Um dos motivos da escolha para o Airbyte é a quantidade de conectores que ele possui e que são constantemente lançados e ou atualizados. Irei falar disso na próxima sessão.
O processo para criação da conexão com as fontes é bem simples. Na tela principal, basta clicar em “Sources” e no canto superior direito, “New Sources.”
Quando a nova tela se abrir, aparecerá a opção de escolher as conexões.
Como a quantidade é vasta, aconselho a digitar o nome da fonte que deseja. Caso não encontre, é possível criar uma requisição. Opção que ainda não testei.
Existe um pequeno problema que notei quando criamos uma conexão, pelo menos foi assim com o SQL Server.
Quando escolhemos os Schemas do banco, ao mesmo tempo que limitamos, damos acesso à todas as tabelas que ali estão.
Ao finalizar a criação da fonte, ele pedirá para criar um destino, cujo processo é exatamente igual.
Source criada
Com a source criada, na próxima tela, clique em “adicionar destino”. Como já tenho o destino criado, utilizarei ele para este exemplo.
Quando o destino dos dados for conectado com a fonte, na próxima tela que se abrir, criaremos algumas configurações básicas como atualização, replicação e etc.
Na primeira opção temos apenas o nome que damos para a conexão. Porém, são as outras duas que devemos prestar atenção.
Na opção de TRANSFER, ditamos para o Airbyte a frequência com que ele deve verificar a fonte em busca de atualização.
Na segunda, STREAMS, podemos passar duas configurações:
- Schema (Destination Namespace) → o schema de destino que essa conexão terá no banco.
- Destination Stream Prefix → se queremos atribuir um prefixo para identificar a origem desses dados. (bom para controle e governança de dados.).
Para o schema temos as três opções como mostra a imagem abaixo.
- Destination Default → irá para o padrão do banco. Se for SQL Server, será o DBO.
- Mirror Source Structure → espelhará o schema da fonte no banco de destino.
- Custom format → permite que informemos um schema próprio para os dados.
Como no meu projeto, tenho um schema padrão para meu destino, utilizarei o Custom Format.
Na opção de Custom Format passamos o nome do schema da ferramenta como uma variável, que ficará assim:
É possível escolher as tabelas que deseja ativar o sincronismo entre as conexões, selecionando a caixa de diálogo que está em azul, selecionando assim, apenas as desejadas.
Ainda na configuração da sincronia, para cada tabela ao qual ocorrerá a extração, podemos configurar um modo de sincronia entre os ambientes. Isso é muito positivo, uma vez que cada tabela deve atender aos requisitos de negócios adequados.
Como não comecei a extração, ainda não escolhi os modelos, mas é válido testar cada um e mais, são autoexplicativos. O que facilita muito na seleção do formato da sincronia dos dados.
Na última sessão de configuração, temos a normalização e transformação.
Para o momento, não irei explorar essa parte, para o próximo artigo e este trazendo mais do projeto, irei explorar essa parte.
Ao final, minhas conexões entre fonte e destino ficarão assim:
CONECTORES DO AIRBYTE
Como dito no início do artigo, o interessante da ferramenta é a vasta quantidade de conectores com as mais diversas fontes, atendendo a quase todas as necessidades de uma empresa de pequeno e médio porte, quiçá, grande porte também.
Outro ponto que podemos notar, é a facilidade com que se pode atualizar um conector. Basta clicar em “Upgrade all” e aqueles que estão em uso, clicar em “Change”.
A própria ferramenta irá atualizar o conector e ativá-lo para uso.
CONCLUSÃO
Como havia dito no meu post no LinkedIN (aqui), estou iniciando meu projeto com Airbyte e hoje estou trazendo apenas os primeiros passos para instalação e configuração.
O artigo mostrou como instalar e criar as conexões com o banco, bem como os tipos de sincronização entre os ambientes.
A ferramenta aparenta ter bastante potencial, principalmente pela quantidade de conectores.
Para o próximo artigo sobre o Airbyte, quero explorar a parte de ELT, como configurar corretamente, as diferenças e limitações entre os modelos de sincronização e possíveis boas práticas para fazer a carga de dados entre as bases.
Muito obrigado, Deus os abençoe!
OLÁ!
Se chegou até aqui e gostou desse artigo, peço que deixe seu like e compartilhe em sua rede.
Se inscreva para receber as atualizações:
Não esqueça de curtir e seguir nas redes sociais! Serão muito bem vindos.