Pular para o conteúdo principal
DSSBR 2026 está chegando — o maior summit de dados e IA do Sul do Brasil. Garanta sua vaga Saber mais
← Todos os eventos Presencial

Carga de dados do Minio para o ClickHouse com Gaio Data OS

Carga de dados do Minio para o ClickHouse com Gaio Data OS

MinIO na Prática

Instalação, configuração, integração com GAIO, ClickHouse e envio de dados via Python

Para ter acesso as gravações, se registre em: Grupo de Estudos

Rodrigo Granado Bittencourt | Alessandro Binhara

Azuris Company — Março de 2026

Acelerando o S3: Alta Performance com MinIO

1. O que é o MinIO?

MinIO é um sistema de armazenamento de objetos de alto desempenho, código aberto e compatível com a API do Amazon S3. Foi projetado para funcionar tanto em nuvem nativa quanto em infraestrutura local (on-premise), permitindo armazenar grandes volumes de dados não estruturados — como arquivos Parquet, CSVs, backups, logs e imagens — com escalabilidade e velocidade.

Por ser compatível com S3, qualquer ferramenta que se integra ao Amazon S3 também funciona com MinIO sem alteração de código. Isso inclui o ClickHouse, Python (biblioteca minio), Apache Spark, dbt e o próprio GAIO.

2. Instalação no Linux

A versão utilizada neste documento é a de Abril de 2025. Os comandos abaixo realizam o download do binário, ajustam as permissões e movem para o diretório padrão do sistema:

Download e instalação do binário

Configuração do serviço (usuário e senha)

As credenciais de acesso ao MinIO são definidas no arquivo de serviço do systemd. Para editar:

Dentro do arquivo, as variáveis MINIO_ROOT_USER e MINIO_ROOT_PASSWORD definem o usuário e senha de acesso ao console e à API.

3. Acessando o MinIO

O MinIO expõe duas portas distintas, com propósitos diferentes:

Criando chaves de acesso

Para conectar ferramentas externas ao MinIO (GAIO, Python, ClickHouse), é necessário criar chaves de acesso (Access Key e Secret Key) — diferentes das credenciais de login do console. Para isso:

  • Acesse o console em http://(seu-servidor):9001
  • No menu lateral, acesse Access Keys
  • Clique em Create Access Key
  • Copie e guarde a Access Key e a Secret Key geradas

4. Integração com o GAIO

Adicionando o MinIO como fonte de dados

Para conectar o GAIO ao MinIO, acesse as configurações de Data Sources e adicione uma nova fonte do tipo S3/MinIO. Os campos necessários são:

Criando uma tabela de resultado no GAIO

Após adicionar a fonte, é necessário criar uma tabela de resultado dentro de um projeto para que os dados do MinIO fiquem acessíveis para consultas e fluxos:

  • No menu lateral do GAIO, acesse Fontes e Armazenamento
  • Selecione a fonte do MinIO recém-criada
  • Clique em Adicionar tabela de resultado
  • Defina o nome da tabela e o bucket/prefixo de destino O GAIO permite consultar arquivos Parquet diretamente do MinIO usando SQL. A conexão exige as chaves de acesso e o caminho do bucket:

Criando tabela permanente a partir do MinIO

Para transformar os dados do Parquet em uma tabela persistente dentro do GAIO (evitando consultar o MinIO a cada acesso):

Criando fluxos no GAIO

Além de consultas SQL diretas, o GAIO permite criar fluxos que combinam leitura do MinIO com transformações e carga em tabelas de resultado. Há duas abordagens principais:

  • Via SQL: usando SELECT com a função s3() como fonte e INSERT INTO como destino
  • Via conector MinIO: criando um fluxo visual que aponta diretamente para um bucket, sem escrever SQL manualmente O GAIO Data OS permite criar fluxos visuais de carga que leem dados diretamente do MinIO e gravam em tabelas do ClickHouse, sem necessidade de scripts externos

Etapa 1 — Criar a tabela de destino no ClickHouse

Antes de carregar, defina a tabela onde os dados serão armazenados. Isso pode ser feito via SQL no próprio GAIO:

Etapa 2 — Criar o fluxo de carga

Há duas formas de montar o fluxo:

Via SQL direto:

Via conector visual:

No GAIO, crie um novo fluxo, selecione a fonte MinIO como origem e a tabela do ClickHouse como destino. O mapeamento de colunas pode ser feito arrastando os campos da origem para o destino. Ao executar o fluxo, os dados são transferidos automaticamente.

Quando usar cada abordagem:

Para arquivos grandes em formato Parquet, o wildcard permite carregar todos os arquivos de uma vez:

Essa abordagem é ideal para pipelines que enviam dados em lotes (como o exemplo do MongoDB na seção anterior), onde cada lote gera um arquivo part_0001.parquet, part_0002.parquet etc. O ClickHouse lê todos de uma vez e consolida em uma única tabela.

5. Enviando Arquivos para o MinIO via Python

Instalação da dependência

Inserção manual pelo console

Para envios pontuais, o próprio console web do MinIO oferece upload direto:

  • Acesse http://(seu-servidor):9001
  • Entre no bucket desejado
  • Clique em Upload e selecione arquivo ou pasta

Envio de CSV via Python

Exemplo mínimo para enviar um arquivo CSV local para um bucket no MinIO:

Envio de Parquet em memória (sem disco)

Para volumes grandes, a abordagem mais eficiente é converter o DataFrame diretamente para Parquet em memória e enviar ao MinIO sem gravar nada em disco. O BytesIO cria um buffer temporário na RAM que é descartado após o upload:

O fluxo completo em memória é:

Envio em lotes de grande volume (MongoDB → MinIO)

Para volumes bilionários, a pipeline lê o MongoDB em lotes de 50.000 documentos, acumula até 500.000 registros e envia cada lote como um arquivo Parquet separado:

Conclusão

O MinIO se mostrou uma solução eficiente e acessível para armazenamento de dados em larga escala. Sua compatibilidade nativa com a API S3 elimina a necessidade de adaptações ao integrar com ferramentas como GAIO, ClickHouse e Python. A combinação com o formato Parquet — colunar, comprimido e tipado — torna a pipeline mais performática e escalável, reduzindo custos de armazenamento e tempo de consulta.

O envio de dados em memória via BytesIO garante que nenhum arquivo temporário seja criado em disco, o que é essencial para processamento de volumes bilionários em servidores com espaço limitado.

Pronto para impulsionar sua jornada
em Big Data e IA?

Junte-se à comunidade do GU BigData & IA. Conheça pessoas, descubra oportunidades e cresça cercado de quem move o mercado.

Tenho Interesse