PostgreSQL als Data Warehouse verwenden
(narrator.ai)Wichtige Tweaks, die das entscheidungsunterstützende Datenauswertungssystem Narrative auf Basis seiner Erfahrungen zusammengestellt hat
-
Keinen Server verwenden, der auch für das Produktionssystem genutzt wird
-
Auf PG 12+ upgraden (CTE nicht verwenden)
-
Indizes möglichst klein halten
-
Tabellen partitionieren (Range/List)
-
Disk-I/O minimieren
-
Nach Bulk Inserts Vacuum ausführen
-
Parallele Abfragen verwenden
-
Statistiksampling erhöhen (pro Spalte oder für die gesamte DB; Standardwert ist 100, aber 500)
-
Weniger Spalten verwenden (weil es zeilenbasiert speichert)
-
Bei Tabellen mit 50 bis 100 Millionen Zeilen funktioniert Postgres hervorragend
-
Wenn auf die Größenordnung von Milliarden skaliert werden soll, wird Citus empfohlen
→ https://www.citusdata.com : Open Source, das Postgres in eine verteilte DB verwandelt
3 Kommentare
Meiner Erfahrung nach ist
timescaledbbei einer zeitreihenbasierten Nutzung wahrscheinlich die bessere Wahl, aber da mir belastbare Quellen dazu fehlen, äußere ich mich vorsichtig. Bei Kompressionsrate und Performance dürftetimescaledbwohl besser sein, daher hinterlasse ich vorsichtig diese Einschätzung.Ich frage mich, wie sich citus und timescaledb vergleichen lassen.
Soweit ich weiß, hat timescaledb Vorteile bei der Partitionierung nach Zeitreihen und citus Vorteile beim Sharding … (Wenn ich darüber nachdenke: Wäre es vielleicht sogar nicht unmöglich, beide zusammen zu verwenden?)