Pular para o conteúdo principal

Introdução

Amazon Redshift é uma solução popular de armazenamento de dados em nuvem da Amazon Web Services. Este guia apresenta diferentes abordagens para migrar dados de uma instância do Redshift para o ClickHouse. Abordaremos três opções: Da perspectiva da instância do ClickHouse, você pode:
  1. enviar enviar dados para o ClickHouse usando uma ferramenta ou serviço de ETL/ELT de terceiros
  2. extrair extrair dados do Redshift com a ajuda da ClickHouse JDBC Bridge
  3. pivotar usar armazenamento de objetos S3 com uma lógica de “descarregar e depois carregar”
Usamos o Redshift como fonte de dados neste tutorial. No entanto, as abordagens de migração apresentadas aqui não se limitam ao Redshift, e etapas semelhantes podem ser adaptadas para qualquer fonte de dados compatível.

Enviar dados do Redshift para o ClickHouse

No cenário de envio, a ideia é usar uma ferramenta ou serviço de terceiros (seja código personalizado ou um ETL/ELT) para enviar seus dados à sua instância do ClickHouse. Por exemplo, você pode usar um software como o Airbyte para transferir dados entre sua instância do Redshift (como origem) e o ClickHouse como destino (veja nosso guia de integração do Airbyte)

Vantagens

  • Pode aproveitar o catálogo existente de conectores do software de ETL/ELT.
  • Recursos nativos para manter os dados em sincronia (lógica de append/overwrite/increment).
  • Permite cenários de transformação de dados (por exemplo, consulte nosso guia de integração para dbt).

Desvantagens

  • Você precisa configurar e manter uma infraestrutura de ETL/ELT.
  • Introduz um componente de terceiros na arquitetura, que pode se tornar um gargalo de escalabilidade.

Extrair dados do Redshift para o ClickHouse

No cenário de extração, a ideia é usar a ClickHouse JDBC Bridge para se conectar diretamente a um cluster do Redshift a partir de uma instância do ClickHouse e executar consultas INSERT INTO ... SELECT:

Prós

  • Genérico para todas as ferramentas compatíveis com JDBC
  • Solução elegante para permitir consultas a várias fontes de dados externas a partir do ClickHouse

Desvantagens

  • Requer uma instância do ClickHouse JDBC Bridge, o que pode se tornar um gargalo de escalabilidade
Embora o Redshift seja baseado em PostgreSQL, não é possível usar a table function PostgreSQL do ClickHouse nem o table engine, pois o ClickHouse exige PostgreSQL versão 9 ou superior, e a API do Redshift é baseada em uma versão anterior (8.x).

Tutorial

Para usar esta opção, você precisa configurar uma ClickHouse JDBC Bridge. A ClickHouse JDBC Bridge é um aplicativo Java independente que gerencia a conectividade JDBC e atua como proxy entre a instância do ClickHouse e as fontes de dados. Para este tutorial, usamos uma instância do Redshift pré-carregada com um banco de dados de exemplo.
1

Implante a ClickHouse JDBC Bridge

Implante a ClickHouse JDBC Bridge. Para mais detalhes, consulte nosso guia do usuário sobre JDBC para fontes de dados externas
Se você estiver usando o ClickHouse Cloud, precisará executar sua ClickHouse JDBC Bridge em um ambiente separado e se conectar ao ClickHouse Cloud usando a função remoteSecure
2

Configure sua fonte de dados do Redshift

Configure sua fonte de dados do Redshift para a ClickHouse JDBC Bridge. Por exemplo, /etc/clickhouse-jdbc-bridge/config/datasources/redshift.json
3

Consulte sua instância do Redshift no ClickHouse

Depois que a ClickHouse JDBC Bridge estiver implantada e em execução, você poderá começar a consultar sua instância do Redshift no ClickHouse
4

Importe dados do Redshift para o ClickHouse

A seguir, mostramos como importar dados usando uma instrução INSERT INTO ... SELECT

Pivotar dados do Redshift para o ClickHouse usando S3

Neste cenário, exportamos os dados para o S3 em um formato intermediário e, em uma segunda etapa, carregamos os dados do S3 no ClickHouse.

Prós

  • Tanto o Redshift quanto o ClickHouse têm recursos poderosos de integração com S3.
  • Aproveita recursos já existentes, como o comando UNLOAD do Redshift e a função de tabela S3 / table engine do ClickHouse.
  • Escala com facilidade graças às leituras paralelas e ao alto throughput de/para o S3 no ClickHouse.
  • Pode aproveitar formatos avançados e compactados, como o Apache Parquet.

Desvantagens

  • Duas etapas no processo (exportar do Redshift e depois carregar no ClickHouse).

Tutorial

1

Exporte os dados para um bucket do S3 usando UNLOAD

Usando o recurso UNLOAD do Redshift, exporte os dados para um bucket privado existente do S3:Isso gerará arquivos de partes contendo os dados brutos no S3.
2

Crie a tabela no ClickHouse

Crie a tabela no ClickHouse:
Como alternativa, o ClickHouse pode tentar inferir a estrutura da tabela usando CREATE TABLE ... EMPTY AS SELECT:
Isso funciona especialmente bem quando os dados estão em um formato que contém informações sobre tipos de dados, como Parquet.
3

Carregue os arquivos do S3 no ClickHouse

Carregue os arquivos do S3 no ClickHouse usando uma instrução INSERT INTO ... SELECT:
Este exemplo usou CSV como formato de pivot. No entanto, para cargas de trabalho de produção, recomendamos Apache Parquet como a melhor opção para grandes migrações, já que ele oferece compressão e pode reduzir custos de armazenamento, além de diminuir os tempos de transferência. (Por padrão, cada row group é comprimido com SNAPPY.) O ClickHouse também aproveita a organização colunar do Parquet para acelerar a ingestão de dados.
Última modificação em 3 de julho de 2026