Usar PostgreSQL como data warehouse
(narrator.ai)Principales ajustes que Narrative recopiló a partir de su experiencia al usarlo como sistema de soporte para la toma de decisiones mediante análisis de datos
-
No usar el mismo servidor que el sistema de producción
-
Actualizar a PG 12+ (no usar CTE)
-
Mantener los índices lo más pequeños posible
-
Particionamiento de tablas (range/list)
-
Minimizar el I/O de disco
-
Ejecutar Vacuum después de inserciones masivas
-
Usar consultas paralelas
-
Aumentar el muestreo de estadísticas (por columna o para toda la DB; el valor predeterminado es 100, pero 500)
-
Usar menos columnas (porque el almacenamiento está basado en filas)
-
En tablas de 50 a 100 millones de filas, Postgres funciona de maravilla
-
Cuando se escala al orden de miles de millones, recomiendan Citus
→ https://www.citusdata.com : open source que convierte Postgres en una DB distribuida
3 comentarios
Por experiencia, creo que cuando se trata de una base basada en series de tiempo,
timescaledbprobablemente sea mejor, aunque como no tengo material en que basarlo, lo digo con cautela. En términos de tasa de compresión y rendimiento, me gustaría dejar con prudencia la opinión de quetimescaledbpodría ser superior.Tengo curiosidad por cómo sería comparar citus y timescaledb.
Hasta donde yo sé, timescaledb tiene ventajas en la forma de particionar por series temporales y citus tiene ventajas en el sharding... (Ahora que lo pienso, ¿tampoco sería imposible usar ambos juntos?)