Extraindo e carregando dados de forma fácil com Airbyte

Airbyte é uma ferramenta de integração de dados, open-source e escalável

Ricardo Junior
Data Hackers
6 min readFeb 13, 2023

--

Airbyte

1. Introdução

As empresas estão produzindo cada vez mais dados. Pesquisas mostram que a produção de dados dobra a cada dois anos. Quanto mais esse volume de dados cresce, mais complicado para uma empresa gerenciar e extrair insights sobre todos esses dados. Além disso, todos essas informações podem está em vários sistemas, como: APIs, Bancos de Dados, Sistemas de CRM, Logs etc.

Dessa forma, é uma tarefa muito difícil acessar e analisar todos esses dados de forma espalhada. Assim, ficou comum as empresas tentarem construírem um data lake. O data lake consiste em concentrar todos as informações em um único repositório de dados, assim criando uma visão unificado dos dados da organização.

Então, nesse artigo vamos falar sobre o Airbyte, uma ferramenta que está crescendo muito no mercado atual, que auxilia na criação do repositório unificado de dados.

O Airbyte é uma ferramenta de integração de dados de código aberto, onde fazemos processos de “EL(T)”. Além termos uma User Interface (UI), podemos se conectar com a ferramenta através da API. Conforme The Modern Data Stack Repository, é uma das ferramentas mais promissores que temos para esse tipo serviço. Como ela conseguimos se conectar em várias origens de dados, a fim de extrair e carregar em um sistema centralizada para armazenar esses dados. Por exemplo, podemos extrair os dados de um banco PostgreSQL e carregar em um bucket do Amazon S3. Então, ela não vai ser uma ferramenta que vamos transformar os nossos dados. Quando centralizamos os dados, usamos outras tecnologias para fazer esse tipo de processo.

Então, nesse artigo vamos explorar essa ferramenta e ver como podemos fazer esse processo de “EL(T)”.

2. Instalação

Como o Airbyte é uma ferramenta open source, todo seu código está no github. Na documentação é mostrado como podemos fazer o deploy em diversos locais, como: máquinas EC2 , Azure, Kubernetes e localmente na nossa máquina, que vai ser o nosso caso. Para isso, vamos executar os seguintes comandos:

git clone https://github.com/airbytehq/airbyte.git
cd airbyte
docker compose up

O GIT e o Docker vão ser necessários para fazer a instalação localmente. O primeiro comando que demos foi para clonar o repositório do Airbyte, depois fomos para a pasta e, por fim, ativamos os contêineres do docker. Por fim, a ferramenta vai tá disponível em http://localhost:8000. Por padrão, o username é airbyte e password é password. Podemos alterar as credenciais padrão, são as variáveis BASIC_AUTH_USERNAME e BASIC_AUTH_PASSWORD, que estão localizados no arquivo .env.

Depois que instalarmos corretamente a ferramenta, vamos ter a tela a seguir:

Tela Inicial — Airbyte

O Airbyte é composto por três componentes principais:

  • Sources: Sessão responsável por configurar as nossas origem de dados.
  • Destinations: Sessão responsável por configurar os destinos dos nossos dados.
  • Connections: É onde configuramos qual vai ser a origem e onde vai depositar os dados, frequência desse processo etc. Por exemplo, as tabelas de um banco de dados pode ser carregado a cada 2 horas em bucket no Amazon S3.

3. Airbyte na prática

3.1 Configurando a origem dos nossos dados

Para avaliar o funcionamento dessa ferramenta, vamos extrair os dados de um banco PostgreSQL e carregar em um bucket do Amazon S3. No banco vamos ter 2 tabelas, uma tabela chamada clientes e outras vendas. Então, nosso primeiro passa é configurar o nosso source (origem), o nosso banco de dados:

Configurando a origem dos nossos dados

Para começar a nossa configuração, dizemos qual o tipo da nossa origem, no nosso caso é um banco Postgres. Em Source name, passamos um nome lógico para identificar o nosso source. Além disso, passamos as credenciais do banco, como: host, porta, database, schemas, usuário e a senha (em cenário produtivo, esse usuário deve ter as permissões mínimas, a fim de manter sempre a segurança do banco). Por fim, vamos ter a nossa origem configurada.

3.2 Configurando o destino dos nossos dados

Agora, vamos configurar onde vamos depositar os nossos dados, que vai ser o destino:

Configurando o destino dos nossos dados.

Como anteriormente, falamos qual o tipo de conexão, só que agora é para o nosso destino, que é S3. Damos um nome lógico para identificar o nosso destino de dados. Na configuração do S3, temos que passar o Access key e Secret access key de um usuário que tenha permissões para o bucket que configuramos. Depois de passar as credenciais do usuário, dizemos em qual bucket e em qual pasta queremos depositar os nossos dados. Além disso, podemos configurar qual vai ser o tipo de arquivos do output, como: CSV, JSON, AVRO, Parquet (que vai ser o nosso caso). No output podemos fazer muitas configurações interessantes, até qual vai ser o tamanho dos pacotes de dados, nomenclatura de arquivos e pastas etc. Então , depois de tudo isso, temos o destino dos nossos dados configurados.

3.3 Configurando a nossa conexão

Por fim, depois de termos configurado a nossa origem e o destino dos dados, vamos fazer a conexão entre eles.

Configurando a conexão entre origem e destino.

Selecionamos a nossa origem e o destino previamente, na configuração da nova conexão. Agora, vamos configurar esta conexão. Damos um nome lógico para identificar essa nossa conexão. Informamos qual vai ser frequência dessa replicação, temos varias opções, como: podemos configurar um CRON, a cada 24 hrs, manual e várias outras opções. Podemos ativar essa transferência via API do airbyte, o que é muito interessante. Depois configuramos qual vai ser configuração de stream. Por fim, vamos ter as tabelas que o Airbyte conseguiu identificar. Podemos fazer a carga completa (“Full Load”) da tabela, o que não pode ser tão interessante para tabelas grandes. Quando queremos fazer cargas incrementais, podemos configurar via CDC ou, quando não temos o CDC ativado no banco, podemos ter uma coluna base.

No nosso exemplo, a tabela de vendas vai ser uma carga incremental através da nossa coluna data , então toda vez que for fazer o load, vai carregar os dados a partir da última data. Isso pode dar margem para termos dados errados, porque perdemos as atualizações ou deleções de algum dado dessa tabela, mas é uma saída quando não temos um CDC ativado no nosso banco.

3.4 Resultados do nosso pipeline

Histórico e Logs das transferências de dados

Então, quando executamos a nossa conexão, podemos acompanhar os logs e o histórico execuções dessa conexão. Podemos ver que o Airbyte conseguiu transferir os dados com sucesso.

Agora, vamos ver o resultado no destino.

Local onde configuramos para depositar os nossos dados
Dados de clientes
Dados de vendas

Por fim , vimos como a ferramenta fez a carga das nossas tabelas, criou uma pasta para cada tabela e depositou os dados. INCRÍVEL.

4. Conclusão

Nos dias atuais, uma ferramenta de integração de dados se torna cada vez mais essencial para aquelas empresas que estão querendo tirar informações de dados. Então, podemos ver que o Airbyte é uma ferramenta muito poderosa, que pode nos auxiliar nesse tipo serviço, haja visto que várias vantagens, como:

  • Facilidade em criar um pipeline de ETL
  • Open source
  • API própria
  • Disponível para várias origem e destino de dados

Espero que tenha sido útil para você esse artigo! Caso desejem enviar sugestões , queiram outros temas de post, feedbacks ou apenas trocar um papo legal podem falar comigo no meu Linkedin :) . Se gostou , curte e compartilha para chegar em mais pessoas :).

--

--

Ricardo Junior
Data Hackers

Data Engineer - Sênior | Ml Engineer | Python | AWS | Azure | LinkedIn: shorturl.at/GPY35