AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Welche Server-DB bei großer Datenmenge
Thema durchsuchen
Ansicht
Themen-Optionen

Welche Server-DB bei großer Datenmenge

Ein Thema von DataCool · begonnen am 4. Apr 2013 · letzter Beitrag vom 6. Apr 2013
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#1

AW: Welche Server-DB bei großer Datenmenge

  Alt 4. Apr 2013, 12:23
Zitat:
Bei zirka 1 Terabyte ist es schon eine sehr große Datenbank. Joins können sehr langsam werden (wieviel Terabyte RAM hat der Server, und wie schnell und groß ist sein Festplatten-Speichersystem?).
Die Server-Konfiguration kann mehr oder weniger frei bestimmt werden.


Zitat:
Von den genannten Datenbanken würde ich mir vor allem PostgreSQL genauer ansehen.
Höre von vielen Seiten nur gutes, nur möchte man in einem nicht kleinem Projekt auf eine
DB setzen, mit der man persönlich noch keine "richtigen" Erfahrungen gemacht hat ?!

Zitat:
Je nach Anforderungsprofil kommt aber auch eine NoSQL Datenbank in Frage. Viele NoSQL-Implementierungen unterstützen verteilte Datenbanken mit redundanter Datenhaltung auf vielen Servern, beispielsweise unter Nutzung einer verteilten Hashtable. Damit können die Systeme einfach skalieren und Ausfälle einzelner Server überstehen.
Glaube nicht das das in Frage kommt, denn es geht mir nicht darum die Daten verteilt zu halten
sondern zentral zusammen, damit die Auswertungen "Outlet-Übergreifend" durchgeführt werden können.
Das "Table Partitioning" habe ich jetzt einfach mal in den Raum geschmissen, weil ich mir bei den Bewegungsdaten
sehr gut eine Aufteilung nach Jahren vorstellen könnte. Sinn einer Aufteilung wäre aber nur eine schnellere Antwortzeit
bei der Datenauswertung.

Zitat:
Eigentlich jede die aktuell weiterentwickelt wird. Der MS-SQL-Server kann z.B. 524,272 terabytes pro DB verwalten.
Die Liste der Features und Maximal-Größen hatte ich mir auch schon im Vergleich angesehen.
http://en.wikipedia.org/wiki/Compari...gement_systems

^^ Demnach könnte Firebird (DB-Size unlimited; Max. Table-Size 32 TB) die Datenmengen auch "locker" bewältigen,
in meinen Augen besteht aber doch ein riesen Unterschied zwischen Maximal und performant.


@All:
Um es noch mal etwas genauer darzustellen. Bei den Bewegungsdaten handelt es sich um elektronische Bon-Rollen
von Kassen-Systemen. Für die die diese nicht kennen, da stehen dann Daten drin wie:
- Bon geöffnet
- Kellner xyz boniert Artikel xyz
- Artikel xyz wird storniert(Falscheingabe)
- Gäste haben sich umgesetzt von Tisch A nach Tisch B
- .....
- Bon wird geschlossen
- Bezahlung in X Arten

Bei der momentanen DB-Struktur gibt es somit eine Table für Verkaufstransaktionen(25% Datenmenge), Details zu einer Transaktion(65%) verknüpft über ID und noch Mwst Details(15%) zu einer Transaktion ebenfalls über eine ID verknüpft.

Primäre Auswertungen werden sein:
- Wie oft wurde Artikel ABCD im letzten Jahr zwischen 18:00 und 19:00 Uhr verkauft
^^ einmal für Standort A oder Standorte B, C und D oder generell

- Stornos / Summe / Anzahl

- Besondere Rabatte

uvw.

Hoffe das Ziel ist jetzt noch etwas klarer geworden.

Greetz Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.

Geändert von DataCool ( 4. Apr 2013 um 12:30 Uhr)
  Mit Zitat antworten Zitat
Patito

Registriert seit: 8. Sep 2006
108 Beiträge
 
#2

AW: Welche Server-DB bei großer Datenmenge

  Alt 4. Apr 2013, 11:57
Also für mich klingt die Datenmenge jetzt nicht so groß, dass man da schon
zwingend Tabellen partitionieren muß. Es könnte schon reichen wenn man
einfach nur die größte Tabelle in einen anderen Tablespace legt - das
sollten selbst die weniger guten Datenbanken beherrschen.

Firebird: Ist in Delphi-Kreisen recht beliebt, aber bei Google-Trends zeigt
der Trend konstant abwärts - würde ich nicht nehmen.

MySQL: Ist gut wenn man eine schnelle Installation braucht, aber ich finde
für eine Firmendatenbank sollte man was besseres nehmen.

MSSQL: Ist ganz gut.

Postgres: Würde ich zuerst probieren. Falls es nicht geht wäre MSSQL für mich eine Alternative.
Zum Table-Partitionieren hab mal in die Doku von Postgres geschaut - so wie das dort funktioniert
würde ich die Finger davon lassen. Wenn man Table-Partitioning wirklich braucht, ist es vermutlich
Zeit sich mal die Preislisten von Oracle zukommen zu lassen.

Techniken:
a) gutes Datenbank-Design
b) vernünftige Indizes
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#3

AW: Welche Server-DB bei großer Datenmenge

  Alt 4. Apr 2013, 12:25
Table-Partitioning brachte bei MSSQL in einer Fallstudie (pro Monat eine Partition) einen Geschwindigkeitszuwachs um den Faktor 1000. Die Größe der DB war vergleichbar. Bringt also schon was.

MSSQL: Ist ganz gut.
Dafür, das der SQL-Server im TPC-E Benchmark alle Top-10 Plätze belegt, ist diese Einschätzung vielleicht etwas zu allgemein gehalten.

Techniken:
a) gutes Datenbank-Design
b) vernünftige Indizes
Auch ein wenig dürftig. Damit kommst Du bei TB-Datenbanken nicht weit. Table-Partitioning oder vielleicht ein in-memory OLAP server wäre eine Option. PALO ist frei und ganz lustig. Wenn Geld vorhanden ist, könnte Jedox (Freiburg) eine Möglichkeit sein. Ich weiß allerdings nicht, ob sich das bei TB-Größen lohnt.

In jedem Fall wäre die von mjustin erwähnten NoSQL-Systeme eine Betrachtung wert. Und die können verteilt abspeichern, müssen aber nicht. Persönlich würde ich (weil ich damit groß geworden bin) den SQL-Server verwenden.
  Mit Zitat antworten Zitat
mcinternet

Registriert seit: 22. Apr 2010
Ort: Odenwald
193 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Welche Server-DB bei großer Datenmenge

  Alt 4. Apr 2013, 12:31
Wir setzen hier bei Datenmengen > 20T Oracle auf ner AS400 ein. Ca. 5000 Clients greifen laufend darauf zu und es werden viele größere Imports und Exports gefahren. Eine Oracle kann sowas schneller liefern als jede andere SQL.
@Data: Wir können gern mal telefonieren.

Das einzig noch performantere ist TeraData ...

Gruss

McInternet
Jörg
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#5

AW: Welche Server-DB bei großer Datenmenge

  Alt 4. Apr 2013, 13:34
Ich würde hier in der Zentrale ganz klar eine Trennung zwischen OLTP und OLAP machen, weil du da ev. auch unterschiedliche Anforderungen in Bezug auf Verfügbarkeit, Indexierung, Ressourcen, Änderungshäufigkeit etc. haben könntest. D.h. aus meiner Sicht kommst du dann auch für die OLTP Datenbank serverseitig mit einem "Mid-Range DBMS" aus und hättest dann zum Beispiel die Möglichkeit die Client-DBs und die OLTP Server-DB mit einer Technologie (z.B. Firebird) zu handhaben, was kein Nachteil wäre, wenn man hier nur ein DBMS im Einsatz hat.

Bzgl. OLAP kann man sich dann genauere Gedanken machen, welche Anforderungen man für das Reporting bzw. der Analyse tatsächlich erfüllen muss. Technologisch gesehen kann das dann zum Beispiel mit ROLAP erfolgen (OLAP Server auf eine relationale Datenbank) oder halt MOLAP als Microsoft Analysis Services. Hier hat bereits die Standard Edition einiges zu bieten. Tabellenpartitionierung ist eine feine Sache, um eine Tabelle mit sehr vielen Datensätzen in kleinere Häppchen physisch zu unterteilen. Aber dieses Feature lassen sich die Hersteller auch bezahlen, da dies in der Regel erst in den höchsten Editionen und im Falle von Oracle nochmals als zusätzliche, kostenpflichtige Option auf die bereits teure Enterprise Edition verfügbar ist. Aber die Oracle-Partitionierung ist eine feine Sache. Hab sie selber im Einsatz. Man muss sich halt die Frage stellen, ob man Partitionierung wirklich benötigt, oder ob man Datensätze in eine "Archiv" Datenbank auslagern kann, die eigentlich kaum mehr geändert/angegriffen wird.

NoSQL ist in aller Munde, aber eine ganz andere Denkweise ist hier notwendig (fängt schon mal an, dass weg ist vom guten alten relationalen Modell) und besitzt auch ganz andere Anforderungen an den Betrieb, um die Skalierbarkeit bei großen Datenmengen ausnutzen zu können. Sprichwort: Cluster. War selbst in Projekten mit HBase (darunterliegendem Hadoop) und auch Cassandra involviert und für die Anforderungen dort, war eine RDBMS Lösung nicht denkbar. Wir hatten es hier aber auch nicht mit einer OLTP Umgebung zu tun, wo wir ACID benötigten.
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Welche Server-DB bei großer Datenmenge

  Alt 4. Apr 2013, 14:12
Erstmal Danke für die rege Beteiligung

Oracle, kenne ich auch; Kommt für mich in diesem Fall aber nicht in Frage!
Das ganze Projekt soll nach Fertigstellung auch ohne Extra-Admin auskommen

Eine Trennung der verschiedenen Datenbanken(Programm-DB z.B. Firebird; Bewegungsdaten mit XYZ)
ist eventuell möglich. Diesbezüglich muss ich nochmal in Ruhe nachdenken,
ob in dieser Konstellation trotzdem alle Informationen ohne "großes verbiegen" abfragbar sind.

Weiterhin ist noch zu erwähnen das die Tabellen der Bewegungsdaten nur wachsen
und der Begriff Archiv es ziemlich genau trifft.
Auf die Tabellen laufen immer nur "INSERT" Statements und diese Daten
werden dann nachher nach Bedarf "selektiert".

Greetz Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.

Geändert von DataCool ( 4. Apr 2013 um 14:26 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#7

AW: Welche Server-DB bei großer Datenmenge

  Alt 4. Apr 2013, 13:27
Dafür, das der SQL-Server im TPC-E Benchmark alle Top-10 Plätze belegt, ist diese Einschätzung vielleicht etwas zu allgemein gehalten.
Wurde denn beim TPC-E irgendetwas anderes als MS SQL Server betrachtet?
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.223 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Welche Server-DB bei großer Datenmenge

  Alt 4. Apr 2013, 17:05
Wurde denn beim TPC-E irgendetwas anderes als MS SQL Server betrachtet?
Das Problem an den TPC-Tests das sie nicht gerade billig sind (AFAIK 6stelligen €-Betrag sollte man schon einplanen) so das hier nur sehr wenige gültige Testdaten vorliegen. Also können nur die großen dieser Welt (MS, Oracle, IBM) diese Tests auch bezahlen. Wenn nun Oracle bei diesen Tests nicht dabei ist vermute ich das hier Oracle aktuell nicht mehr so gut dastehen würde.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von IBExpert
IBExpert

Registriert seit: 15. Mär 2005
695 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Welche Server-DB bei großer Datenmenge

  Alt 4. Apr 2013, 22:38
und hier noch mal eine Meinung Pro Firebird!

Die größte Tabelle in einer Kunden DB hat 1,2 Milliarden Datensätze, Datenbanken um 100GB sind nicht so ungewöhnlich, da kenn ich einige im Livebetrieb. Die größte DB, von der mir ein Kunde berichtet hat, liegt bei 15 TB. Wenn deine Auswertungen auf so einer DB einen Full Table Scan über alle Tabellen macht dauert es eben, weil die Hardware normalerweise nicht hinterherkommt.

Seit fb25 speicht aber auch nichts dagegen, das du deine Daten zu den 100 Filialen in der zentrale in mehreren Datenbanken auf mehreren Serverinstanzen laufen lässt und deine Auswertungen im Batchbetrieb parallel alle Instanzen belästigt. FB25 wegen execute statement ... on external

Das kannst du auch nutzen, um asu der Datenbank heraus selbstständig eine oder mehrere Archivdatenbanken zu füllen und bei entsprechend intelligenter Programmierung der Auswertungen diese ohne Umwege einfach mit einzubinden. Mit einer Replikation zwischen den Datenbanken kannst du das auch unbegrenzt skalieren, wir haben mehrere Replikationen bei Kunden mit Firebird umgesetzt.

Ein IBExpert Kunde aus USA im Gastrobereich verwaltet mit einer simplen Datenbank die kompletten Daten einer Bar in Manhatten mit 800 Tischen und hat bisher laut eigener Aussage keine Gründe gehabt, historische Daten daraus zu löschen.

Bei solchen Datenmengen würde ich ggf. dem Kunden auch hardwareseitig schon mal klar machen, das so eine Lösung auf einem normalen Raid HDD System nicht empfehlenswert ist, Enterprise SSDs bieten da mit PCI Schnittstelle teilweise 10 fache Performance. Um 100GB von der Platte in den Speicher zu saugen braucht eine normale Platte schon mal leicht 1000 Sekunden, wenn die 100MB pro Sekunde Leseleitung hat. Bei einer PCI Enterprise SSD kommst du da mit 50 Sekunden aus. Und ganz wichtig: Bei den Anforderungen Finger weg von Virtualisierung!

Was meiner Meinung nach viel wichtiger ist als die Auswahl einer anderen DB ist wesentlich mehr die konsequente Umsetzung eines für solche Datenmengen geeignetes Datenmodell. Wenn du das zum Beispiel gleich mit updatable views und lieber mehr Tabellen, dafür weniger Spaltebreite, umsetzt, dann wirst du da noch lange Freude dran haben. Bei Abfragen solltest du nicht einfach kreuz und quer joins zusammenbasteln, nur weil dabei das richtige Ergebnis rauskommt. Bei solchen Datenmengen kannst du entsprechende Auswertungen mit geplanten Full table scans via Prozedur oder execute block auch sehr positiv in der Performance beeinflussen. Beim größten Kunden replizieren wir daten aus 8500 Datenbanken, haben aber nicht so viele Datensätze pro Tag und brauchen die auch nicht so lange aufbewahren.

ich würde mir anhand der Rahmendaten die Umsetzung mit Firebird ohne Einschränkungen zutrauen, ob dir das ohne externe Hilfe auch gelingt kann ich nicht sagen (aber ein paar Basics dazu gibt es nächste Woche in Hamburg auf einer Schulung von uns)
Holger Klemt
www.ibexpert.com - IBExpert GmbH
Oldenburger Str 233 - 26203 Wardenburg - Germany
Firebird 5 Update und Know-how Workshop – 28.8.-29.08.2025 64546 Mörfelden - Walldorf
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz