¿Por qué usar ClickHouse en lugar de Postgres?
GROUP BY, como base de datos OLAP, mientras que Postgres es una base de datos OLTP diseñada para cargas de trabajo transaccionales.
Las bases de datos OLTP, o de procesamiento transaccional en línea, están diseñadas para gestionar información transaccional. El objetivo principal de estas bases de datos, de las que Postgres es el ejemplo clásico, es garantizar que un ingeniero pueda enviar un bloque de actualizaciones a la base de datos y tener la certeza de que — en su totalidad — se completará correctamente o fallará. Este tipo de garantías transaccionales con propiedades ACID es el enfoque principal de las bases de datos OLTP y una gran fortaleza de Postgres. Dados estos requisitos, las bases de datos OLTP suelen encontrarse con limitaciones de rendimiento cuando se usan para consultas analíticas sobre grandes conjuntos de datos.
Las bases de datos OLAP, o de procesamiento analítico en línea, están diseñadas para cubrir esas necesidades: gestionar cargas de trabajo analíticas. El objetivo principal de estas bases de datos es garantizar que los ingenieros puedan realizar consultas y agregaciones de forma eficiente sobre grandes conjuntos de datos. Los sistemas OLAP en tiempo real como ClickHouse permiten que este análisis se realice a medida que los datos se ingieren en tiempo real.
Consulta aquí para ver una comparación más detallada entre ClickHouse y PostgreSQL.
Para ver las posibles diferencias de rendimiento entre ClickHouse y Postgres en consultas analíticas, consulta Rewriting PostgreSQL Queries in ClickHouse.
Estrategias de migración
Replicación en tiempo real (CDC)
Carga masiva manual + actualizaciones periódicas
INSERT directos o exportando e importando archivos CSV. Después de la migración inicial, puedes actualizar periódicamente los datos en ClickHouse sincronizando los cambios desde PostgreSQL a intervalos regulares.
El proceso de carga masiva es simple y flexible, pero tiene la desventaja de no ofrecer actualizaciones en tiempo real. Una vez que los datos iniciales están en ClickHouse, las actualizaciones no se reflejarán de inmediato, por lo que debes programar actualizaciones periódicas para sincronizar los cambios desde PostgreSQL. Este enfoque funciona bien en casos de uso menos sensibles al tiempo, pero introduce un retraso entre el momento en que los datos cambian en PostgreSQL y el momento en que esos cambios aparecen en ClickHouse.
¿Qué estrategia elegir?
Comienza aquí la guía de migración de PostgreSQL.