Frank (no reg): geeignetes System für riesige Datenmengen mit Index

Beitrag lesen

Hallo,

hatte ich da nicht was von grosser Tabelle plus 2 Indizes gelesen? Also einer wäre quasi der Primäre Index (Primary Key)? Wozu brauchts dann noch einen?

Nun, meine Frage nach Selektivität der Daten und Ergebnisverteilung ging in folgende Richtung ..

5 TB = 5-000 GB = 5.000.000 MB = 5.000.000.000 kB = 5.000.000.000.000 Byte geteilt durch schätzungsweise 100 byte pro  = 50.000.000.000 Records ...

Wie hoch ist die Wahrscheinlichkeit, dass bestimmte Bereiche der Id öfter abgefragt werden als andere. Z.b. es werden haupsächlich immer Records mit den "neuesten" Ids abgefragt etc ...

Vielleicht würde es dann Sinn machen, auf diese besonders hochfrequentierten Bereiche zu optimieren.

Wie ich dich verstanden habe, ist das Datenwachstum auch zu vernachlässigen. Richtig?

Was mich noch etwas Wunder nimmt, bei ca. 50 Mrd Records, wie kann man da mittels Id genau den gewünschten Datensatz erhalten? M.a.W. woher weiss der Benutzer, dass er genau ID=123 will? Woraus wird der Suchparameter ID bestimmt?

12.000 Anfragen pro Minute = 1200 aller 6 sekunden = 200 pro Sekunde mit jeweils 100 Byte an Rückgabedaten ... okay!

Was "realistisch" ist, hängt davon ab, wieviel du bereit bist zu investieren. Bottlenecks bei hoch frequentierten System sind (in eben dieser Reihenfolge)

  • Netzwerk
  • Disk
  • CPU/Ram

Alle dieser 3 Bottlenecks kannst du durch entsprechende Hardware-Skalierung verkleinern aber nie völlig ausradieren.

Netzwerk -> der Server ist über mehrere Netzwerkadressen im gleichen oder mehreren Subnetzen parallel zu erreichen, ein NLB verteilt den Traffic gleichmässig.

Disk -> schnelle Disks im RAID Verbund, vorzugsweise RAID 10 / 101, also optimierung aufs Lesen oder SSDs (mit Datendurchsatz von ca. 1000MB/s) und viel Ram.

CPU/RAM -> viele CPUs/Cores und viel Ram in passender NUMA Konfiguration.

Gewisse Softwarefeatures des Datenbanksystems können da positiv wirken, eben Partitionierung wie bereits erwähnt. Es hängt aber eben nicht alles vom Datenbanksystem ab. Datenbanken von > 5TB in einer Cloud (public oder private?) zu betreiben, das dürfte aktuell ziemlich ins Geld gehen. Mit so all dem zugehörigen Zeugs zur Absicherung des Betriebs. Von 5TB kannst du nicht einfach mal schnell n Dump / Backup machen, nicht mal bei differentiellen Backups. Auf der Recoverseite genauso.

Cloud-DataWarehousing Systeme gibt es aktuell sehr stark gepusht von Microsoft (Stichwort Fasttrack DWH)

Wenn das Budget ausreichend gross ist, dann findest du sicherlich sehr schnell Interessenten in allen bedeutenden Lagern (Microsoft, Oracle, IBM).

Cheers, Frank