Usando PostgreSQL como data warehouse
(narrator.ai)Os principais ajustes que a Narrative, um sistema de apoio à tomada de decisão por meio de análise de dados, reuniu com base na própria experiência
-
Não usar o mesmo servidor do sistema de produção
-
Atualizar para PG 12+ (não usar CTE)
-
Manter os índices o menores possível
-
Particionamento de tabelas (range/list)
-
Minimizar I/O de disco
-
Fazer Vacuum após inserções em massa
-
Usar consultas paralelas
-
Aumentar a amostragem de estatísticas (por coluna ou no banco inteiro. O padrão é 100, mas usar 500)
-
Usar menos colunas (por ser armazenamento baseado em linhas)
-
Em tabelas com 50 milhões a 100 milhões de linhas, o Postgres funciona muito bem
-
Quando escalar para a casa dos bilhões, a recomendação é Citus
→ https://www.citusdata.com : open source que transforma o Postgres em um banco de dados distribuído
3 comentários
Pela experiência, acho que, quando é baseado em séries temporais, o TimescaleDB tende a ser melhor, mas como não tenho material para fundamentar isso, fico um pouco cauteloso. Em termos de taxa de compressão e desempenho, deixo aqui, com cautela, a opinião de que o TimescaleDB talvez seja superior.
Fico curioso sobre como seria comparar o citus e o timescaledb.
Pelo que eu sei, o timescaledb tem vantagens na forma de particionamento por séries temporais, e o citus tem vantagens em sharding... (Pensando bem, talvez também não seja impossível usar os dois juntos?)