Sou bastante novo no PostgreSQL, nunca fiz uma grande implantação usando-o antes. Mas tenho uma boa experiência em soluções corporativas e quero tentar aplicar um pouco do que aprendi usando o PostgreSQL.
Eu tenho um site dimensionado para lidar com grande número de dados e tráfego. A infraestrutura será construída usando a Amazon (AWS) usando instâncias EC2 e volumes EBS.
O design deve ter dois bancos de dados, um banco de dados transacional principal e um armazém de dados para lidar com análises e relatórios.
Banco de dados transacional principal
será usado para o site ao vivo, o site é construído em vários nós para aumentar a escala de usuários simultâneos. Principalmente exigimos que o banco de dados para esse caso seja extremamente rápido nas operações de leitura, esperamos> 100 GB de dados com 30% de crescimento anual. Neste ponto, planejamos usar dois servidores EC2 ( e adicionar mais tarde, conforme necessário ).
minha pergunta, qual é a configuração recomendada para os requisitos acima? Além disso, existe uma maneira de gerenciar o particionamento de tabela e volume? existem recomendações para o uso da configuração da AWS?
Banco de dados do armazém de dados
Será usado principalmente para capturar todos os dados do banco de dados transacional principal na dimensão de tempo. portanto, mesmo os registros excluídos do banco de dados principal serão capturados no DWH. Portanto, os dados serão muito grandes e o crescimento será ainda maior. Também usaremos algumas instâncias do EC2 ou mais, se necessário.
Qual é a configuração recomendada neste caso? isso exigirá operação de gravação rápida devido à gravação constante (ETL). Podemos construir cubos OLAP no PostgreSQL? se sim, alguém lá fora tentou?
Conectando ao banco de dados
Os servidores da web estarão se conectando ao banco de dados principal para consultar e gravar. No momento, estamos desenvolvendo um aplicativo usando o django, que usa a biblioteca nativa para conexão. É recomendável usar o mesmo método básico? ou devemos configurar o pgpool?
Armazém de dados (ETL)
Qual é a maneira recomendada para criar processos de ETL para ler do principal e carregar no data warehouse? Alguma ferramenta? metodologia a seguir? O PostgreSQL oferece funções / ferramentas úteis na construção de processos ETL?