Introducción
- PUSH enviar datos a ClickHouse mediante una herramienta o servicio ETL/ELT de terceros
- PULL extraer datos de Redshift aprovechando ClickHouse JDBC Bridge
- PIVOT usar almacenamiento de objetos S3 con una lógica de «descargar y luego cargar»
En este tutorial usamos Redshift como fuente de datos. Sin embargo, los enfoques de migración que se presentan aquí no son exclusivos de Redshift, y se pueden seguir pasos similares con cualquier fuente de datos compatible.
Enviar datos desde Redshift a ClickHouse
Ventajas
- Permite aprovechar el catálogo existente de conectores del software ETL/ELT.
- Incluye capacidades integradas para mantener los datos sincronizados (lógica de append/overwrite/increment).
- Admite escenarios de transformación de datos (por ejemplo, consulte nuestra guía de integración para dbt).
Contras
- Debe configurar y mantener una infraestructura de ETL/ELT.
- Introduce un componente de terceros en la arquitectura que puede convertirse en un posible cuello de botella para la escalabilidad.
Extraer datos de Redshift a ClickHouse
INSERT INTO ... SELECT:
Ventajas
- Genérico para todas las herramientas compatibles con JDBC
- Una solución elegante para consultar múltiples fuentes de datos externas desde ClickHouse
Desventajas
- Requiere una instancia de ClickHouse JDBC Bridge, que puede convertirse en un posible cuello de botella para la escalabilidad
Aunque Redshift se basa en PostgreSQL, no es posible usar la función de tabla ni el motor de tabla de ClickHouse, ya que ClickHouse requiere PostgreSQL 9 o superior y la API de Redshift se basa en una versión anterior (8.x).
Tutorial
Desplegar ClickHouse JDBC Bridge
Despliegue ClickHouse JDBC Bridge. Para más información, consulte nuestra guía del usuario sobre JDBC para orígenes de datos externosSi está usando ClickHouse Cloud, tendrá que ejecutar ClickHouse JDBC Bridge en un entorno independiente y conectarse a ClickHouse Cloud mediante la función remoteSecure
Configurar su origen de datos de Redshift
Configure su origen de datos de Redshift para ClickHouse JDBC Bridge. Por ejemplo,/etc/clickhouse-jdbc-bridge/config/datasources/redshift.json Consultar su instancia de Redshift desde ClickHouse
Una vez que ClickHouse JDBC Bridge esté desplegado y en ejecución, puede empezar a consultar su instancia de Redshift desde ClickHouseImportar datos de Redshift a ClickHouse
A continuación, mostramos cómo importar datos mediante una sentenciaINSERT INTO ... SELECTPIVOT de datos de Redshift a ClickHouse mediante S3
Ventajas
- Tanto Redshift como ClickHouse cuentan con potentes funciones de integración con S3.
- Aprovecha funciones ya existentes, como el comando
UNLOADde Redshift y la función de tabla / el motor de tabla S3 de ClickHouse. - Escala sin problemas gracias a las lecturas en paralelo y al alto rendimiento de ClickHouse al leer y escribir en S3.
- Puede aprovechar formatos sofisticados y comprimidos como Apache Parquet.
Desventajas
- Dos pasos en el proceso (exportar desde Redshift y luego cargar en ClickHouse).
Tutorial
Crea la tabla en ClickHouse
Crea la tabla en ClickHouse:CREATE TABLE ... EMPTY AS SELECT:Carga archivos de S3 en ClickHouse
Carga los archivos de S3 en ClickHouse mediante una sentenciaINSERT INTO ... SELECT:En este ejemplo se usó CSV como formato intermedio. Sin embargo, para cargas de trabajo de producción, recomendamos Apache Parquet como la mejor opción para migraciones de gran tamaño, ya que incorpora compresión y puede reducir los costes de almacenamiento, además de acortar los tiempos de transferencia. (De forma predeterminada, cada grupo de filas se comprime con SNAPPY). ClickHouse también aprovecha la orientación por columnas de Parquet para acelerar la ingestión de datos.