O Elasticsearch permite que você indexe dados de maneira rápida e flexível. Experimente gratuitamente na nuvem ou execute-o localmente para ver como a indexação pode ser fácil.
O Airbyte é uma ferramenta de integração de dados que permite mover informações de diversas fontes para diferentes destinos de forma automatizada e escalável. Permite extrair dados de APIs, bancos de dados e outros sistemas e carregá-los em plataformas como o Elasticsearch, que oferece pesquisa avançada e análise eficiente.
Neste artigo, explicaremos como configurar o Airbyte para ingerir dados no Elasticsearch, abordando conceitos-chave, pré-requisitos e integração passo a passo.

Conceitos fundamentais do Airbyte
O Airbyte possui diversos conceitos essenciais para sua utilização. A seguir, destacamos os principais:
- Fontes: Define a origem dos dados que serão extraídos.
- Destinos: Define onde os dados serão enviados e armazenados.
- Conexões: Configura a relação entre a origem e o destino, incluindo a frequência de sincronização.
Integração do Airbyte com o Elasticsearch
Nesta demonstração, realizaremos uma integração onde os dados armazenados em um bucket do S3 serão migrados para um índice do Elasticsearch. Mostraremos como configurar a origem (S3) e o destino (Elasticsearch) no Airbyte.
Pré-requisitos
Para acompanhar esta demonstração, os seguintes pré-requisitos devem ser atendidos:
- Crie um bucket na AWS onde os arquivos JSON contendo os dados serão armazenados.
- Instale o Airbyte localmente usando o Docker.
- Crie um cluster Elasticsearch no Elastic Cloud para armazenar os dados ingeridos.
A seguir, detalharemos cada uma dessas etapas.
Instalando o Airbyte
O Airbyte pode ser executado localmente usando o Docker ou na nuvem, onde existem custos associados ao uso. Para esta demonstração, usaremos a versão local com Docker.
A instalação pode levar alguns minutos. Após seguir as instruções de instalação, o Airbyte estará disponível em: http://localhost:8000.

Após efetuar o login, podemos começar a configurar a integração.
Criando o balde
Nesta etapa, você precisará de uma conta da AWS para criar um bucket do S3. Além disso, é essencial definir as permissões corretas criando uma política e um usuário IAM para permitir o acesso ao bucket.
No bucket, carregaremos arquivos JSON contendo diferentes registros de log, que posteriormente serão migrados para o Elasticsearch. Os arquivos de registro contêm o seguinte:
Abaixo estão os arquivos carregados no bucket:

Configuração do Elastic Cloud
Para facilitar a demonstração, usaremos o Elastic Cloud. Se você ainda não possui uma conta, pode criar uma conta de avaliação gratuita aqui: Cadastro no Elastic Cloud.
Após configurar a implantação no Elastic Cloud, você precisará obter:
- O URL do servidor Elasticsearch.
- Um usuário para acessar o Elasticsearch.
Para obter a URL, acesse Implantações > Minha implantação, em Aplicativo, encontre Elasticsearch e clique em 'Copiar endpoint'.

Para criar o usuário, siga os passos abaixo:
- Acesse Kibana > Gerenciamento de Pilha > Usuários.
- Crie um novo usuário com a função de superusuário.
- Preencha os campos para criar o usuário.

Agora que está tudo configurado, podemos começar a configurar os conectores no Airbyte.
Configurando o conector de origem
Nesta etapa, criaremos o conector de origem para o S3. Para isso, acessaremos a interface do Airbyte e selecionaremos a opção Fonte no menu. Em seguida, procuraremos o conector S3. A seguir, detalhamos os passos necessários para configurar o conector:
- Acesse o Airbyte e vá para o menu Fontes.
- Procure e selecione o conector S3.
- Configure os seguintes parâmetros:
- Nome da fonte: Defina um nome para a fonte de dados.
- Método de entrega: Selecione "Replicar registros" (recomendado para dados estruturados).
- Formato de dados: Selecione o formato JSON.
- Nome do fluxo: Defina o nome do índice no Elasticsearch.
- Nome do bucket: Insira o nome do bucket na AWS.
- Chave de acesso da AWS e chave secreta da AWS: Insira as credenciais de acesso.
Clique em Configurar fonte e aguarde a validação.

Conector de destino de configuração
Nesta etapa, configuraremos o conector de destino, que será o Elasticsearch. Para isso, acessaremos o menu e selecionaremos a opção Destino. Em seguida, pesquisaremos por Elasticsearch e clicaremos no resultado retornado. Agora, vamos prosseguir com a configuração desta conexão:
- Acesse o Airbyte e vá para o menu Destinos.
- Pesquise e selecione o conector Elasticsearch.
- Configure os seguintes parâmetros:
- Método de autenticação: Escolha Nome de usuário/Senha.
- Nome de usuário e senha: Utilize as credenciais criadas no Kibana.
- Endpoint do servidor: Cole a URL copiada do Elastic Cloud.
Clique em Configurar destino e aguarde a validação.

Criando a conexão de origem e destino
Após a criação da Origem e do Destino, a conexão entre eles será estabelecida, concluindo assim a integração.
A seguir, as instruções para criar a conexão:
1. No menu, acesse Conexões e clique em Criar primeira conexão.
2. Na tela seguinte, você poderá selecionar uma fonte existente ou criar uma nova. Como já temos uma Origem criada, selecionaremos a Origem S3.

3. O próximo passo será selecionar o destino. Como já criamos o conector Elasticsearch, ele será selecionado para finalizar a configuração.

Na próxima etapa, será necessário definir o Modo de Sincronização e qual esquema será utilizado. Como apenas o esquema de log foi criado, essa será a única opção disponível para seleção.

4. Vamos prosseguir para a etapa de Configuração de Conexão. Aqui, podemos definir o nome da conexão e a frequência de execução da integração. A frequência pode ser configurada de três maneiras:
- Cron: Executa as sincronizações com base na expressão cron definida pelo usuário (ex: 0 0 15 * * ?, Às 15:00 todos os dias);
- Agendado: Executa as sincronizações no intervalo de tempo especificado (por exemplo, a cada 24 horas, a cada 2 horas);
- Manual: Execute as sincronizações manualmente.
Para esta demonstração, selecionaremos a opção Manual.
Por fim, ao clicar em Configurar conexão, a conexão entre a origem e o destino será estabelecida.

Sincronizando dados do S3 para o Elasticsearch
Ao retornar à tela Conexões, você poderá ver a conexão que foi criada. Para executar o processo, basta clicar em Sincronizar. A partir desse momento, terá início a migração de dados do S3 para o Elasticsearch.

Se tudo correr bem, você receberá o status de sincronização.

Visualizando dados no Kibana
Agora, vamos ao Kibana para analisar os dados e verificar se foram indexados corretamente. Na seção Kibana Discovery, criaremos uma visualização de dados chamada logs. Com isso, poderemos explorar os dados existentes apenas no índice de logs, que foi criado após a sincronização.

Agora podemos visualizar os dados indexados e realizar análises sobre eles. Dessa forma, validamos todo o fluxo de migração usando o Airbyte, onde carregamos os dados presentes no bucket e os indexamos no Elasticsearch.

Conclusão: Integração do Airbyte e do Elasticsearch
O Airbyte provou ser uma ferramenta eficiente para integração de dados, permitindo-nos conectar diversas fontes e destinos de forma automatizada. Neste tutorial, demonstramos como ingerir dados de um bucket S3 em um índice Elasticsearch, destacando as principais etapas do processo.
Essa abordagem facilita a ingestão de grandes volumes de dados e permite análises dentro do Elasticsearch, como buscas complexas, agregações e visualizações de dados.
Referências
Guia rápido do Airbyte:
https://docs.airbyte.com/using-airbyte/getting-started/oss-quickstart#part-1-install-abctl
Conceitos básicos:
Perguntas frequentes
O que é Airbyte?
O Airbyte é uma ferramenta de integração de dados que permite mover informações de diversas fontes para diferentes destinos de forma automatizada e escalável.




