AGB  ·  Datenschutz  ·  Impressum  







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

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 1 von 4  1 23     Letzte » 
Benutzerbild von DataCool
DataCool

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

Welche Server-DB bei großer Datenmenge

  Alt 4. Apr 2013, 10:47
Datenbank: noch offen • Version: xyz • Zugriff über: UniDac
Hallo zusammen,

ich mache mir gerade Gedanken über das passende DBMS für ein Projekt.

Ausgangssituation:

- Client/Outlets:
Es gibt N Clients/Outlets örtlich getrennt in ganz Deutschland verteilt. (momentan ist N = 80-90)
Im einem "Outlet" gibt es zu 90% nur einen PC(= lokale DB) die anderen 10% sind mit 2 oder 3 PCs vertreten.
In einem "Outlet" hat die eigentliche DB eine Größe von ca. 20-50 MB(soweit alles easy),
hinzukommen aber täglich zwischen 2 und 10 MB Bewegungsdaten, aus einer externen Datenquelle.
Diese Bewegungsdaten wird zu 95% nur für spätere Auswertungen/Statistiken benötigt.
Bei jedem "Outlet" wird mit hoher Wahrscheinlichkeit eine Firebird 2.5.x zum Einsatz kommen

- Server:
Hier sollten die Daten von allen "Outlets" in einer Datenbank zusammen laufen.
Wenn wir zum einfachen rechnen mal 100 "Outlets" annehmen wären wir das bei der reinen Programm-DB,
bei einer Größe von ca. 5GB (100 * 50 MB). Diese Datenmenge sollte jede der gängigen Datenbanken
ohne Probleme abbilden können.
Bei den Bewegungsdaten sieht es aber schon wieder ganz anders:
365 Tage * 10 MB * ca. 100 Outlets = ca. 365 GB
Wunsch ist es die Daten für mind. 2 Jahre rückwirkend zu halten;
wo wir dann schon 730 GB wären.
Diese riesen Datenflut verteilt sich momentan auf nur 3 Tabellen,
Größenverhältnis ist hierbei 60%, 25% u. 15%

Das ganze Szenario wirft für mich folgende Fragen auf:
- Welche DB kann das auf einem Server überhaupt sauber verwalten ?
- Welche DB-Techniken würdet Ihr verwenden/empfehlen um Auswertungen
auf diesen Datenmengen zeitnah durchführen zu können ?
- Table Partitioning ?
- ?? was noch ??

Datenbanken die ich bis jetzt im Auge halte:
- Firebird, arbeite ich gerne & gut mit, allerdings verfügt Firebird nicht über "Table Partitioning" und fällt somit leider wohl durchs Raster. Oder hat jemand der Firebird Experten hier im Board eine Idee wie Firebird die oben genannten Datenmenge stemmen kann ?
- MySQL, habe ich auch einiges mit gemacht; Allerdings gefällt mir das unklare Lizenzmodell nicht wirklich.
- MsSQL, ist mir auch nicht unbekannt; Allerdings die letzten 4 Jahre in keinem Projekt verwendet. Somit bin ich was Version & Geschwindigkeit & Stabilität nicht ganz auf dem Laufenden
- PostgreSQL: Ehrlich gesagt noch in keinem realen Projekt verwendet nur ein wenig damit rum gespielt.
Aber von dem was man so hört auf jeden Falle eine mögliche Alternative.


So, jetzt seid Ihr dran;
Freue & bedanke mich für jedes Feedback,

Greetz Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Welche Server-DB bei großer Datenmenge

  Alt 4. Apr 2013, 11:11
- Welche DB kann das auf einem Server überhaupt sauber verwalten ?
Eigentlich jede die aktuell weiterentwickelt wird. Der MS-SQL-Server kann z.B. 524,272 terabytes pro DB verwalten.

- Welche DB-Techniken würdet Ihr verwenden/empfehlen um Auswertungen
Definiere Technik? Also bei großen DB-Mengen wird es nötig sein die Indizes und Abfragen so zu gestalten das du nicht versehentlich versuchst 2 GB zum Client zu übertragen.

- auf diesen Datenmengen zeitnah durchführen zu können ?
- Table Partitioning ?
- ?? was noch ??
Es gibt verschiedene Ansätze. Eine ist z.B. eine Vorkomprimierung der Daten (z.B. zum Monatsabschluss über das Wochenende laufen lassen).

- MySQL, habe ich auch einiges mit gemacht; Allerdings gefällt mir das unklare Lizenzmodell nicht wirklich.
Mir auch nicht. Aber wenn die Lösung eine Nur Inhouse (als nur im eigenen Unternehmen) so dürfte es nix kosten.

- MsSQL, ist mir auch nicht unbekannt; Allerdings die letzten 4 Jahre in keinem Projekt verwendet. Somit bin ich was Version & Geschwindigkeit & Stabilität nicht ganz auf dem Laufenden
Also wenn man keine eigene fehler in der Logik gemacht hat spielt der MS SQL-Server in der ersten Liga mit.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#3

AW: Welche Server-DB bei großer Datenmenge

  Alt 4. Apr 2013, 11:21
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?).

Von den genannten Datenbanken würde ich mir vor allem PostgreSQL genauer ansehen. 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.

Firebird ist für die kleinen Installationen IMHO eine gute Lösung. Es kann unter Linux installiert werden und ist wartungsarm.
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von Daniela.S
Daniela.S

Registriert seit: 1. Mär 2008
Ort: Niederösterreich
224 Beiträge
 
Delphi XE4 Enterprise
 
#4

AW: Welche Server-DB bei großer Datenmenge

  Alt 4. Apr 2013, 11:27
Zitat:
- Welche DB-Techniken würdet Ihr verwenden/empfehlen um Auswertungen
auf diesen Datenmengen zeitnah durchführen zu können ?
- Table Partitioning ?
Vielleicht wäre es auch eine Idee darüber nachzudenken die Daten der Großen Tabelle mit 60% aufzuteilen? Wenn Berechnungen nicht alle Felder benötigten, könnte man die Tabellen aufteilen und somit die Geschwindigkeit der Berechnungen etwas erhöhen.

Anhand der Größe würde ich auch eher zu MSSQL greifen. Bei der Größe bedarf es natürlich einer Lizenz, da die Express Version nur (korrigiert mich) max. 2GB und eine CPU unterstützt. Eventuell wäre auch Oracle interessant...
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#5

AW: Welche Server-DB bei großer Datenmenge

  Alt 4. Apr 2013, 11:46
Imho ist das ein klassisches DWH (Datawarehouse): Tägliche Bewegungsdaten => ETL. Sehr wenig Tabellen => Star-Design.

Die Frage, die sich hier stellt ist: Müssen alle Daten als quasi Rohdaten vorliegen? Kann man sinnvoll verdichten? Wenn ja, wird das alles schon viel einfacher. Wenn nein, auch egal.

Über PostGres habe ich nur Gutes gehört, ein (Ex-)Kollege hat das mal eingesetzt und mit der Zunge geschnalzt (täglich).

Google mal nach "PostGres DWH" und "Postgres ETL", da findest Du reichlich Stoff.
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.592 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Welche Server-DB bei großer Datenmenge

  Alt 4. Apr 2013, 11:46
MongoDB wäre ein gutes NoSQL-Exemplar.
Sven Harazim
--
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#7

AW: Welche Server-DB bei großer Datenmenge

  Alt 4. Apr 2013, 11:47
Um Die MySQL Problematik mal zu entspannen hier ein Fork von MYSQL läuft ohne Probleme mit UNIDac
http://de.wikipedia.org/wiki/MariaDB
und ist GPL
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Welche Server-DB bei großer Datenmenge

  Alt 4. Apr 2013, 11:55
Eigentlich jede die aktuell weiterentwickelt wird.
....
Also wenn man keine eigene fehler in der Logik gemacht hat spielt der MS SQL-Server in der ersten Liga mit.
Dem ist eigentlich nichts hinzuzufügen.
Du brauchst
a) ein vernünftiges Design
Eine Datenbank ist nun mal keine Blackbox in die sinnlos Daten hinein schaufelt und auf mysteriöse Weise werden diese dann geordnet und platz und zeitsparend wieder zur Verfügung gestellt.

b) einen Admin, der weiß was er tut.

Was hast Du von einer Oracle DB wenn der Admin damit nicht umgehen kann.

Selbst ein CD-Verzeichnis ist mit 3 Tabellen wahrscheinlich nicht optimal designed. Da steht Dir wohl noch etwas Arbeit bevor.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Patito

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

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
mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#10

AW: Welche Server-DB bei großer Datenmenge

  Alt 4. Apr 2013, 12:06
Bekannte Beispiele für spaltenorientierte (statt dokumentenorientierte) NoSQL Datenbanken sind laut Wikipedia diese Erweiterungen von Hadoop, einer in Java geschriebenen Datenbank:

HBase

HBase ist eine skalierbare, einfache Datenbank zur Verwaltung sehr großer Datenmengen innerhalb eines Hadoop-Clusters. Die HBase-Datenbank basiert auf einer freien Implementierung von Google BigTable. Diese Datenstruktur ist für Daten geeignet, die selten verändert, dafür aber sehr häufig ergänzt werden. Mit HBase lassen sich Milliarden von Zeilen verteilt und effizient verwalten. (Hervorhebung durch mich)

Hive
Hive erweitert Hadoop um Data-Warehouse-Funktionalitäten, namentlich die Anfragesprache HQL und Indizes. (Die von Facebook verwendete Hadoop-Datenbank gehört mit etwas mehr als 100 Petabyte (Stand: August 2012) zu den größten der Welt.)


Ein nicht auf Hadoop basiertes NoSQL System der Apache Foundation ist

Apache Cassandra
Cassandra ist ein einfaches, verteiltes Datenbankverwaltungssystem für sehr große strukturierte Datenbanken. Cassandra wird bei Twitter, Digg und Reddit genutzt. Auch bei Facebook bediente es bis Mitte 2011 hunderte Millionen von Mitgliedern. (Es ist ebenfalls in Java geschrieben.)


p.s. sind in der Kalkulationen nur die Rohdaten enthalten oder sind Indexdateien schon berücksichtigt?
Michael Justin

Geändert von mjustin ( 4. Apr 2013 um 12:08 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz