Soy bastante nuevo en PostgreSQL, nunca antes había hecho una gran implementación usándolo. Pero tengo una buena experiencia en soluciones empresariales y quiero intentar aplicar algo de lo que aprendí usando PostgreSQL.
Tengo un sitio que está dimensionado para manejar gran cantidad de datos y tráfico. La infraestructura se construirá utilizando Amazon (AWS) utilizando instancias EC2 y volúmenes EBS.
El diseño debe tener dos bases de datos, una base de datos transaccional principal y un almacén de datos para manejar análisis e informes.
Base de datos transaccional principal
se utilizará para el sitio web en vivo, el sitio está construido en múltiples nodos para escalar usuarios concurrentes. Principalmente requerimos que la base de datos para este caso sea extremadamente rápida en las operaciones de lectura, esperamos datos> 100GB con un crecimiento anual del 30%. En este punto, estamos planeando usar dos servidores EC2 ( y agregar más más tarde según lo necesitemos ).
mi pregunta, ¿cuál es la configuración recomendada para los requisitos anteriores? Además, ¿hay alguna forma de administrar la partición de tablas y volúmenes? ¿Hay recomendaciones para usar la configuración de AWS?
Base de datos del almacén de datos
Se utilizará principalmente para capturar todos los datos de la base de datos transaccional principal en la dimensión de tiempo. por lo tanto, incluso los registros eliminados de la base de datos principal se capturarán en el DWH. Por lo tanto, los datos serán muy grandes y el crecimiento será aún mayor. También usaremos un par de instancias EC2 o más si es necesario.
¿Cuál es la configuración recomendada en este caso? esto requerirá una operación de escritura rápida debido a la escritura constante (ETL). ¿Podemos construir cubos OLAP en PostgreSQL? en caso afirmativo, ¿alguien lo intentó?
Conectando a la base de datos
Los servidores web se conectarán a la base de datos principal para consultar y escribir. Actualmente estamos desarrollando una aplicación usando django que usa una biblioteca nativa para conectarse. ¿Se recomienda usar el mismo método básico? o deberíamos configurar pgpool?
Almacén de datos (ETL)
¿Cuál es la forma recomendada para construir procesos ETL para leer desde el principal y cargar al almacén de datos? Alguna herramienta? metodología a seguir? ¿PostgreSQL ofrece funciones / herramientas útiles para construir procesos ETL?