Ich bin ziemlich neu in PostgreSQL. Ich habe noch nie eine große Bereitstellung damit durchgeführt. Aber ich habe gute Erfahrungen mit Unternehmenslösungen und möchte versuchen, etwas von dem anzuwenden, was ich mit PostgreSQL gelernt habe.
Ich habe eine Site, die so dimensioniert ist, dass sie eine große Anzahl von Daten und Datenverkehr verarbeiten kann. Die Infrastruktur wird unter Verwendung von Amazon (AWS) unter Verwendung von EC2-Instanzen und EBS-Volumes erstellt.
Das Design sollte über zwei Datenbanken verfügen, eine Haupttransaktionsdatenbank und ein Data Warehouse für Analyse und Berichterstellung.
Haupttransaktionsdatenbank
wird für Live-Websites verwendet, die Website ist auf mehreren Knoten aufgebaut, um gleichzeitige Benutzer zu skalieren. Hauptsächlich benötigen wir die Datenbank, damit dieser Fall beim Lesen extrem schnell ist. Wir erwarten> 100 GB Daten mit einem jährlichen Wachstum von 30%. Zu diesem Zeitpunkt planen wir, zwei EC2-Server zu verwenden ( und später nach Bedarf weitere hinzuzufügen ).
Meine Frage, was ist das empfohlene Setup für die oben genannten Anforderungen? Gibt es eine Möglichkeit, die Tabellen- und Volume-Partitionierung zu verwalten? Gibt es Empfehlungen für die Verwendung des AWS-Setups?
Data Warehouse-Datenbank
Wird hauptsächlich zum Erfassen aller Daten aus der Haupttransaktionsdatenbank in der Zeitdimension verwendet. So werden auch gelöschte Datensätze aus der Hauptdatenbank im DWH erfasst. Daher werden die Daten sehr groß sein und das Wachstum wird noch größer sein. Bei Bedarf werden auch einige EC2-Instanzen oder mehr verwendet.
Was ist das empfohlene Setup in diesem Fall? Dies erfordert aufgrund des konstanten Schreibens (ETL) einen schnellen Schreibvorgang. Können wir OLAP-Cubes in PostgreSQL erstellen? Wenn ja, hat es jemand da draußen versucht?
Verbindung zur Datenbank herstellen
Die Webserver stellen eine Verbindung zur Hauptdatenbank her, um abzufragen und zu schreiben. Wir entwickeln derzeit eine Anwendung mit Django, die eine native Bibliothek für die Verbindung verwendet. Wird empfohlen, dieselbe grundlegende Methode zu verwenden? oder sollten wir pgpool konfigurieren?
Data Warehouse (ETL)
Was ist die empfohlene Methode zum Erstellen von ETL-Prozessen zum Lesen von Haupt- und Ladevorgängen in Data Warehouse? Irgendwelche Werkzeuge? Methodik zu folgen? Bietet PostgreSQL hilfreiche Funktionen / Tools zum Erstellen von ETL-Prozessen?