Privater Server: Datawarehouse, Analytics, Webserver, etc.

Torben545

Cadet 1st Year
Registriert
Dez. 2018
Beiträge
12
[Bitte fülle den folgenden Fragebogen unbedingt vollständig aus, damit andere Nutzer dir effizient helfen können. Danke! :)]


1. Möchtest du mit dem PC spielen?

Nein

  • Welche Spiele genau? …
  • Welche Auflösung? Genügen Full HD (1920x1080) oder WQHD (2560x1440) oder soll es 4K Ultra HD (3840x2160) sein? …
  • Ultra/hohe/mittlere/niedrige Grafikeinstellungen? …
  • Genügen dir 30 FPS oder sollen es 60 oder gar 144 sein?

2. Möchtest du den PC für Bild-/Musik-/Videobearbeitung oder CAD nutzen? Als Hobby oder bist du Profi? Welche Software wirst du nutzen

Auf der Maschine wird ein Ubuntu Server laufen. Der PC soll ein Datawarehouse betreiben, täglich Daten sammeln und die Datensätze automatisch zu analysieren. weitere manuelle queries sollten möglichst zügig zurückkommen.
Außerdem sollen aus diesen Daten Graphiken (v.a. Plots) generiert werden, die dann über eine einfache Website über apache2 angezeigt werden. Das sind jetzt die ersten Einsätze, da kommt bestimmt in Zukunft noch einiges ähnlicher Natur dazu.

3. Hast du besondere Anforderungen oder Wünsche (Overclocking, ein besonders leiser PC, RGB-Beleuchtung, …)

Datenabfragen auf große Datensätze sollen möglichste schnell zurückkommen. Da nur ich (und evt Familie über Web) das Teil nutze, fallen die "typischen" multithreading Anforderungen an klassische Server etwas weg. Es wäre allerdings gut, wenn die Maschine trotz mehrerer Hintergrundjobs noch vernünftig antwortet.

Cool wären außerdem möglichst mehrere Festplattenslots/ -anschlüsse und eventuell nötigen Aufrüstungen in der Zukunft gerecht zu werden.

4. Wieviele und welche Monitore möchtest du nutzen? Anzahl, Modell, Auflösung, Bildwiederholfrequenz (Hertz)? Wird FreeSync (AMD) oder G-Sync (Nvidia) unterstützt? (Bitte mit Link zum Hersteller oder Preisvergleich!

Ein Monitor mit beliebigem Anschluss für die commandline. Das meiste wird aber eh über SSH gehen.

5. Hast du noch einen alten PC, dessen Komponenten teilweise weitergenutzt werden könnten? (Bitte mit Links zu den Spezifikationen beim Hersteller oder Preisvergleich!)



  • Prozessor (CPU): …
  • Arbeitsspeicher (RAM): …
  • Mainboard: …
  • Netzteil: …
  • Gehäuse: …
  • Grafikkarte: …
  • HDD / SSD: …

6. Wie viel Geld bist du bereit auszugeben?

600-700€ wäre jetzt mein Plan. Wenn ich für mehr einen deutlichen boost bekomme, ist auch das okay. Möchte ganz gerne so den "sweet Sport" zwischen Preis und besserer Leistung haben.

7. Wann möchtest du den PC kaufen? Möglichst sofort oder kannst du noch ein paar Wochen/Monate warten

Gerne in den nächsten 2-3 Wochen bestellen, weil ich dann die Umsatzsteuer sowie den Kauf selber absetzen kann.

8. Möchtest du den PC selbst zusammenbauen oder zusammenbauen lassen (vom Shop oder von freiwilligen Helfern)

Baue selber.

Das meiste steht ja schon in der Beschreibung. Das System soll den Aufgaben für die nächsten Jahre gewachsen sein und auch mit größeren Datenmengen klarkommen. Dass ich die Festplatte(n) dann eventuell irgendwann aufrüsten muss, ist völlig in Ordnung.
 
Wenn du vom Datawarehouse sprichst, heißt es du modellierst es selbst oder verstehst du darunter eine fertige db die du mit daten versorgst und auf der Datenbasis dann deine Dashboards bauen willst?

Über welche Datenmengen sprechen wir hier und Daten welcher Art wenn es kein Geheimnis ist?
 
Die Datenbanken modulliere ich selber und befülle sie dann einmal Initial und dann täglich weiter. Aktuell dreht es sich um Wertpapiere, Business Analytics, und ähnliche Geschichten. Für den Anfang rechne ich mit einer Milliarde Datensätzen plus entsprechende Lookuptabellen, die sicherlich auch bis zu einer Millionen Einträge haben können.
 
Willst du über alle verfügbaren Daten deine Auswertungen fahren, oder nur über einen bestimmten Teil, der den aktuellen Zeitraum umfasst? Wenn ja, dann reicht eine 1TB SSD aus auf der dann die aktiven Daten liegen und eine größere HDD, wohin die historisierten Daten ausgelagert werden können. Wenn nicht, dann entsprechend große SSD, wobei ich denke das eine NVMe eher nicht notwendigerweise sein muss, um ein gutes P/L des Gesamtsystems zu haben.

Ansonsten wirst du mit 32GB RAM mehr als zufrieden sein, es sei den du willst In-Memory Tabellen oder gar gesamte DB betreiben, um alles ultraschnell zu haben :).

Als CPU könnte eventuell die AMD 3400G herhalten, somit hast du Multithreading (8 Threads) und ersparrst dir den Kauf einer Grafikkarte, da diese bereits integriert ist und sparst somit auch Geld.
 
Also Requirements formulieren üben wir noch mal, okay :)

1. Wie groß (in Byte) ist so ein typischer Datensatz?
2. Wie viele Datensätze kommen zu der einen Milliarde täglich dazu?
3. Wie viele Datensätze umfasst so ein typischer Query?
4. Wie lange ist kurz? 100ms, 1s, 5s?
 
  • Gefällt mir
Reaktionen: snaxilian und sbK
G-Red schrieb:
Wenn nicht, dann entsprechend große SSD, wobei ich denke das eine NVMe eher nicht notwendigerweise sein muss, um ein gutes P/L des Gesamtsystems zu haben.
Ist halt von den Zugriffszeiten und IOPS einfach ungeschlagen. Da kommt der herkömmliche SATA-Anschluß eben nicht mehr mit. Für viel Datenbanken-IO definitiv ein Traum.
G-Red schrieb:
Ansonsten wirst du mit 32GB RAM mehr als zufrieden sein, es sei den du willst In-Memory Tabellen oder gar gesamte DB betreiben, um alles ultraschnell zu haben :).
Für gescheites In-Memory mußt Du aber ab 64 GB-128 GB RAM rechnen, mit 32 GB bei 1 TB an Daten lohnt sich das nicht. Und nur die kostenpflichten Datenbanken taugen was, was der TS wohl sich kaum zulegen wird.
Torben545 schrieb:
Die Datenbanken modulliere ich selber und befülle sie dann einmal Initial und dann täglich weiter. Aktuell dreht es sich um Wertpapiere, Business Analytics, und ähnliche Geschichten. Für den Anfang rechne ich mit einer Milliarde Datensätzen plus entsprechende Lookuptabellen, die sicherlich auch bis zu einer Millionen Einträge haben können.
Das ist sportlich. BTW, welche Datenbank soll eingesetzt werden? Hast Du mal an sowas wie Hadoop HDFS nachgedacht? Dafür braucht man aber mehrere Rechner bzw. Knoten.
 
Zuletzt bearbeitet:
PHuV schrieb:
Ist halt von den Zugriffszeiten und IOPS einfach ungeschlagen. Da kommt der herkömmliche SATA-Anschluß eben nicht mehr mit. Für viel Datenbanken-IO definitiv ein Traum.
Eine SATA-SSD reicht denke ich für seine Zwecke vollends aus. Er betreibt ja kein Enterprise System :).

PHuV schrieb:
Für gescheites In-Memory mußt Du aber ab 64 GB-128 GB RAM rechnen, mit 32 GB bei 1 TB an Daten lohnt sich das nicht. Und nur die kostenpflichten Datenbanken taugen was, was der TS wohl sich kaum zulegen wird.
Hab auch nie behauptet das 32GB für In-Memory reichen würden :).. Dafür würde ich auch kein consumer RAM verwenden sondern ECC.
 
G-Red schrieb:
Eine SATA-SSD reicht denke ich für seine Zwecke vollends aus. Er betreibt ja kein Enterprise System :).
Dennoch ist NVMe in allen Belangen überlegen, und die 520 MB/s lesen/schreiben limitieren schneller als man denkt, wenn die NVMe SSD 3.5 GB lesend und ca. 2.5 GB schreibend schafft. Das merkt man in der Anwendung sehr wohl dramatisch, wenn man entsprechende Anfragen oder Änderungen durchführt.
NVMe_17-1260.jpg


Ich hatte mal zu Hause auf einer Samsung 950 Pro eine Kundendatenbank (ging um öffentliche Datenbank mit Autoteilen, als keine persönliche Daten oder gar Geschäftsdaten ;) ) mit Oracle 11g gtestet.
  • Tablespace Tablespace 60 GB
  • verteilt auf 4 Datendateien
  • exportieren auf 8 Datendumps mit 20 GB (gepackt) in ca. 1 Minute (!)
  • Beim Kunden mit SSD hat das ca. 20 Minuten gebraucht.
Da ist mir schon mal die Kinnlade runtergeklappt.
 
Hallo zurück an alle,

vielen Dank erstmal für die super Diskussion! :)

Um das Ganze vielleicht mal ein bisschen zu spezifizieren und auch die guten Fragen von @wayne_757 zu beantworten. Das Ganze ist wie bereits erwähnt für den privaten Gebrauch und auch nicht im Sinne vor Kunde/öffentlich geschäftlich gedacht. Bei dem ersten Projekt handelt es sich erstmal nur um eine Idee/ein POC, das auch noch nicht durchgeplant ist. Weitere Projekte werden in nächster Zeit auch noch kommen, das heißt die Maschine soll dabei gleichzeitig auch als "Spielwiese" dienen.

Zu den konkreten Fragen, die ich aktuell nur überschlagen beantworten kann, und was natürlich für weitere Projekte auch weit anders aussehen kann:
1. Ein typischer Datensatz im Fact Table wird so zwischen 400 und 700 Byte haben.
2. Lass es mal zwischen 100Mio und 1Milliarden für den Anfang sein, wo dann täglich an die 50000 dazukommen.
3. Ein typischer query wird über einen großteil der Datensätze laufen, die standardqueries werde ich aber cachen können (dort erfolgt dann auch eine tägliche (o.ä.) Aktualisierung). Eine solche Anfrage wird dann nur noch etwa 1:100000 der Größe haben und
4. sollte dann gerne in <500ms zurückkommen. Ein query über einen ganzen Facttablet sollte gerne im einstelligen Sekundenbereich zurückkommen, wenn es Mal etwas mehr wird ist das auch kein Beinbruch.

Generell sollte das Gerät halt auch mit mehreren queries und gleichzeitigen Nutzung von Webservern und co nicht so leicht "in die Knie" zu bringen sein, gerade wenn ich später mehrere Projekte laufen habe und mehr und mehr berechnet werden muss (vieles davon natürlich nachts, aber auch Nächte sind ja bekanntlich nicht unendlich lang :) ).

Ihr seht alles relativ schwammig, aber genauer sind die Projekte auch noch nicht gefasst. Ich suche halt was für meine Projekte optimiertes, das ein gutes Preis/Leistungsverhältnis hat und halbwegs "state of the art" fur Privatzwecke ist.
 
Die Frage mit der Payloadgröße und dem täglichen Datensatz zielte auf die Berechnung der benötigten Kapazität. Runden wir mal kräftig auf 1KB (Metainformationen etc. pp.) auf ergeben sich für 1 Milliarde Datensätze 1 TB Speicherbedarf, bei 100 Millionen entsprechend 100 GB. Die Frage ist also ob du wirklich mit 1 Milliarde durchstarten willst oder ob z.B. 300 Millionen reichen, dann würde z.B. eine 500 GB SSD reichen. Täglich kommen 50 MB dazu (jährlich < 20 GB), das kann man fast vernachlässigen.

Die Querygeschichte ist mir noch nicht so ganz einleuchtend.
Du willst zwar über den kompletten Datensatz eine Abfrage machen, aber die Response wird ja ein Bruchteil sein, ein paar tausend - zehntausend Entries?

Bei NVME vs Sata ist die spannende Frage ob du im I/O Limit von Sata hängen bleibst. Wobei jetzt der Aufpreis für z.B. eine 1 TB 970 Evo maximal ~60 Euro sein dürfte würde ich persönlich eher zu einer (guten) NVMe tendieren.

Wenn du noch eine dedizierte GPU für die Installation über hast kannst du auch einen Ryzen 5 3600 nehmen, den Server mit GPU installieren sobald alles läuft GPU ausbauen. Zumindest die ASRock Boards sollten alle ohne GPU booten. Dann hättest du zum 3400G das bessere P/L Verhältnis.

  • 1 TB 970 Evo 170 Euro
  • R5 3600 170 Euro
  • B450 Brett 60 Euro
  • Gehäuse + Netzteil 100 Euro

Macht 500 Euro + RAM
RAM musst du dir überlegen ob du ECC willst oder nicht (3400G kanns nicht).
Zum RAM sei noch gesagt, dass Betriebssysteme wie blöd Disk I/O cachen. Wenn du I/O und parallele Requests optimal legst dann kannst du es schaffen das möglichst wenig vom Festspeicher gelesen wird. (Cache natürlich nur abzüglich dem was deine Prozesse benötigen). Heißt je mehr RAM desto besser.

Zu Intel brauchst du eigentlich nicht schielen, da gibt's nichts in der Preisregion.
 
  • Gefällt mir
Reaktionen: snaxilian
Zurück
Oben