Ich versuche, eine Spezifikation für einen Data Warehouse-Server für unser geplantes Data Warehouse-Upgrade zu schreiben.
Da wir virtuelle Server auf VMWare-Hosts ausführen, können wir nach Bedarf Ressourcen hinzufügen oder entfernen. In der Vergangenheit haben wir RAM und CPU nach Bedarf schrittweise hinzugefügt. Da unsere Anforderungen gestiegen sind, haben wir uns für mehr Ressourcen eingesetzt. (hauptsächlich Festplatte & RAM).
Wir bitten um mehr. Sie geben uns so wenig wie möglich.
Wenn wir jedoch kürzlich über Ressourcen sprechen, werden wir jetzt dafür kritisiert, dass wir den Computer überhaupt nicht richtig spezifiziert haben, und mir wird jetzt mitgeteilt, dass die Entwickler-Hosts maximal ausgelastet sind und kein RAM mehr verfügbar ist.
Wir sind eine kleine lokale Regierungsorganisation mit ~ 50 regulären Nutzern der DW. Im normalen täglichen Gebrauch läuft es gut. Wir erhalten eine gute mdx-Abfrageleistung und unsere Berichte und Dashboards sind schnell. Benutzer sind glücklich.
Unsere ETL-Prozesse laufen jedoch die ganze Nacht über, und wir sehen allmählich Anzeichen von Speicherdruck, wenn wir Datenmarts gleichzeitig verarbeiten. Letzte Nacht ist SSIS mit Warnungen vor einem "Speichermangel" fehlgeschlagen.
Unser vorhandener DW-Server ist Win 2008 R2 mit 4 CPUs und 16 GB RAM unter SQL 2012 Std. Ich habe den maximalen Serverspeicher auf 12 GB eingestellt, so dass 4 GB für Betriebssysteme und Dienste usw. übrig bleiben. Unser vorhandener DW verfügt über 3 Datamarts / OLAP-Cubes, und wir entwickeln 2 weitere.
+----------+----------+---------------+-----------+---------------+
| Datamart | Files GB | Fact (Rows) | Fact (Mb) | ETL & Process |
| OLAP cube| | | | Time (hours) |
+----------+----------+---------------+-----------+---------------+
| PBI | 3 | 190,000 | 180 | 0.2 |
| FBI | 30 | 26,100,000 | 10,000 | 1.5 |
| RBI | 175 | 62,000,000 | 32,000 | 8.3 |
| ABI* | 100 | 44,050,000 | 21,000 | 4.0 |
| EBI* | 11 | 100,000,000 | 6,000 | 2.0 |
+----------+----------+---------------+-----------+---------------+
* Planned/Estimated
Unser neuer Server soll Win 2012 mit SQL 2016 Enterprise sein. Es werden SQL, SSIS, SSRS und SSAS ausgeführt. Speicher ist kein Problem, aber ich bin nicht sicher über RAM & CPU.
Laut dem Fast Track Data Warehouse-Referenzhandbuch für SQL Server 2012 sollte ich mindestens 128 GB für einen 2-Socket-Computer haben ... was etwas übertrieben erscheint. Die Hardware- und Softwareanforderungen für die Installation von SQL Server 2016 empfehlen mindestens 4 GB RAM für SQL 2016. Das ist ein ziemlicher Unterschied!
Also .. Was ist ein guter Ausgangspunkt? 32 GB? 64 GB? Wie rechtfertige ich meine Startposition (Spezifikation) gegenüber der IT?
Gibt es gute Anleitungen zur Berechnung der Serverressourcen?
Gibt es gute Faustregeln?
Was sind die Hauptbestandteile / Metriken für die RAM-Größe in einem DW-Kontext?
- Das Datenvolumen?
- Die Anzahl der Würfel?
- Wie lange dauert es, ETL durchzuführen oder einen Cube zu verarbeiten?
- Spitzenverarbeitungslast über Nacht oder Leistung, wie sie von Endbenutzern tagsüber gesehen wird?