- usar el motor de tabla
PostgreSQLpara leer desde una tabla de PostgreSQL - usar el motor de base de datos experimental
MaterializedPostgreSQLpara sincronizar una base de datos de PostgreSQL con una base de datos de ClickHouse
Uso del motor de tabla PostgreSQL
PostgreSQL permite realizar operaciones SELECT e INSERT sobre datos almacenados en un servidor PostgreSQL remoto desde ClickHouse.
Este artículo ilustra métodos básicos de integración usando una sola tabla.
1
Configurar PostgreSQL
- En
postgresql.conf, añada la siguiente entrada para permitir que PostgreSQL escuche en las interfaces de red:
- Cree un usuario para la conexión desde ClickHouse. Con fines de demostración, este ejemplo concede privilegios completos de superusuario.
- Cree una nueva base de datos en PostgreSQL:
- Cree una nueva tabla:
- Añadamos unas cuantas filas para probar:
- Para configurar PostgreSQL de modo que permita conexiones de replicación a la nueva base de datos con el nuevo usuario, agregue la siguiente entrada al archivo
pg_hba.conf. Actualice la línea de dirección con la subred o la dirección IP de su servidor PostgreSQL:
- Recargue la configuración
pg_hba.conf(ajuste este comando según su versión):
- Verifique que el nuevo
clickhouse_userpueda iniciar sesión:
Si usa esta funcionalidad en ClickHouse Cloud, puede que necesite permitir que las direcciones IP de ClickHouse Cloud accedan a su instancia de PostgreSQL.
Consulte la API de Cloud Endpoints de ClickHouse para obtener detalles sobre el tráfico de salida.
2
Definir una tabla en ClickHouse
- Inicie sesión en
clickhouse-client:
- Cree una nueva base de datos:
- Cree una tabla que use
PostgreSQL:
Consulte la página de documentación del motor de tabla PostgreSQL para obtener una lista completa de parámetros.
3
Probar la integración
- En ClickHouse, consulte las filas iniciales:
- De nuevo en PostgreSQL, añada un par de filas a la tabla:
- Esas dos filas nuevas deberían aparecer en tu tabla de ClickHouse:
- Veamos qué ocurre cuando añades filas a la tabla de ClickHouse:
- Las filas agregadas en ClickHouse deberían aparecer en la tabla de PostgreSQL:
PostrgeSQL.
Consulta la página de documentación del motor de tabla PostgreSQL para ver más funcionalidades, como especificar esquemas, devolver solo un subconjunto de columnas y conectarse a varias réplicas. Consulta también el blog ClickHouse and PostgreSQL - a match made in data heaven - part 1.Uso del motor de base de datos MaterializedPostgreSQL
1
En PostgreSQL
- En
postgresql.conf, configure los niveles mínimos de escucha, el nivel WAL de replicación y los slots de replicación:
logical y al menos 2 slots de replicación- Con una cuenta de administrador, cree un usuario para conectarse desde ClickHouse:
- cree una nueva base de datos:
- conéctese a la nueva base de datos desde
psql:
- cree una nueva tabla:
- añade las filas iniciales:
- Configure PostgreSQL para permitir conexiones a la nueva base de datos con el nuevo usuario de replicación. A continuación se muestra la entrada mínima que se debe añadir al archivo
pg_hba.conf:
address con la subred o la dirección del servidor, según la documentación de PostgreSQL- vuelva a cargar la configuración de
pg_hba.confcon algo como esto (ajústelo según su versión):
- Pruebe a iniciar sesión con el nuevo
clickhouse_user:
2
En ClickHouse
- inicie sesión en la CLI de ClickHouse
- Habilite la funcionalidad experimental de PostgreSQL en el motor de base de datos:
- Cree la nueva base de datos que se replicará y defina la tabla inicial:
Para obtener una guía completa sobre el motor de base de datos PostgreSQL, consulte https://clickhouse.com/docs/engines/database-engines/materialized-postgresql/#settings
- Verifique que la tabla inicial tenga datos:
3
Probar la replicación básica
- En PostgreSQL, añada nuevas filas:
- En ClickHouse, verifique que las nuevas filas sean visibles:
4
Resumen
Esta guía de integración se centra en un ejemplo sencillo de cómo replicar una base de datos con una tabla; sin embargo, existen opciones más avanzadas que incluyen replicar toda la base de datos o agregar nuevas tablas y esquemas a las replicaciones existentes. Aunque los comandos DDL no son compatibles con esta replicación, se puede configurar el motor para detectar cambios y volver a cargar las tablas cuando se realicen cambios estructurales.
Para conocer más funcionalidades disponibles en las opciones avanzadas, consulte la documentación de referencia.