Welche DB /DBS für Messwertdatenerfassung

Blackakito

Grünschnabel
Hallo zusammen, ich programmiere in meiner Firma verschiedene Appl. in "Powerbasic" und "VBasic for Appl."
mit Datenbanken hatte ich bis jetzt nur mit Access und manchmal mit MySQL zutun.

Zu meinen Problem:
An sechs unseren Maschinen sind ca. 50 Fühler/Lichtschranken u.Ä. für umfangreichere Messwertdatenerfassung
angebracht die bissher nur für den Produktnachweiss benötigt wurde.
Mein Chef will nun daraus auch eine umfangreichere Produktionsanaylse durchführen, um Prozesse und Produkte optimieren zukönnen.
Das Datenaufkommen liegt bei ca. 200.000 (bei 54 Spalten) neuen Datensätzen pro Tag -> ca. 66MB/Tag.
Die momentane Größe liegt bei: 273.001.020 Datensätze bei 88 Gbyte, die Daten liegen als CSV-Dateien vor.

Meine Frage: Mit welcher Datenbank/DB-System realisiere ich das am besten?
1. Die DB darf keine 2GB-Beschränkung (wie Access) haben
2. Die DB muß rasend schnell sein -> auch bei diesen Datenmengen
3. Die DB braucht keine Multiuser/Netzwerk - fähigkeiten besitzten

Ich habe mich schon umfangreich über mehreren DB-Syteme informiert (MySQl,PostGre,Firebird usw.) aber ich weiss immer noch nicht
welche ich wirklich einsetzten soll. Auf der einen Seite (rein Theroretisch) würde mir ein Embedded-System wie z.b. Firebird_Embededd, SQLite, PowerTree die ich über die DLL-Schnittstelle ansprechen kann reichen,
aber brechen die nicht bei so einer Datenmenge zusammen? Muß es eine Server-DB sein, wenn ja..... welche?:confused:
 
Zuletzt bearbeitet:
Sers,

also was brauchst du da genau?

1. Hochlast/verfügbarkeit?
2. Cluster möglich gewünscht?
3. Transaktions sicher?
4. Backuplösung build in oder Seperat?
5. Datenspeicher zentral oder geclustert?
6. gewünschte durschnittliche Abfrage dauer?
7. Netzwerkaufbau? Verbindung der Messstationen zur DB?
8. Grundlast Netzwerk?
9. Cluster in eigenem Netzwerkzweig mit Hochlastverbindung?
10. Erwartetes Transfervolumen an Ausgabe Clients? (Eingabevolumen haste ja schon geschrieben)
11. Betriebssystem?
12. Speicherdauer?
13. Rotation der Datenbanken (z.B. Jährlich Datenbestand älter als 1 Jahr wird aus Produktiv-DB rausgenommen und in eine "Archiv" DB verschoben => bessere Performance auf Produktiv-DB)

So des sind die Punkt die mir mal so spontan einfallen.

Als DB-Engine empfehlung würde ich bei solchen Projekten ORACLE, MaxDB u. MySQL 5 nennen. Allerdings MySQL 5 nur eingeschränkt. Optimal wäre MaxDB oder ORACLE.

Dabei ist ORACLE allerdings kostenpflichtig MaxDB ist kostenlos. (MaxDB ist die alte SAP-DB!) MaxDB ist via ODBC ansprechbar und somit ohne probleme einsetzbar.

Filebased DB´s kannste bei diesen Datenmengen üblicherweise vergessen (SQLlite & Co.)!

Gruss
MixTer
 
Zuletzt bearbeitet:
Hi

Bei diesen Datenmenge kommst du an einer größeren Ausgabe nicht vorbei.
Oracle wäre hier mein Favorit.
Alternativ SQL Server 2005 oder DB2
MySQL wird bei diesen Mengen auch schnell an seine Grenzen stoßen (meine Behauptung)

Wie von ps-mixter schon geschrieben:
KleinDBMS wie Firebird, SQLite, oder die Express Editions von Oracle, DB2 oder SQL Server sind hier kein Thema
 
Also, zu den Details:
Es werden in erster linie Statistiken mit anschließendem Charts ausgewertet.
Also: Tag/Wochen/Monats/Jahresstatistiken über die jeweiligen Fühler/Lichtschranken in Verbindung mit dem jeweiligen Produkt/Maschine.

Dann sind uns mehrere Dinge aufgefallen die wir grafisch erfassen möchten ->z.b. wenn ein Temperaturfühler eine bestimmte Temperatur unter/überschreitet, wie verhalten sich dann die anderen Sensoren?
Wie oft werden bestimmtet Sensoren geschaltet. usw

Damit soll unter anderem beantwortet werden ob es sinvoll ist bestimmte
Produkte nur an ein und der selben Maschine produzieren zulassen. Ob der Einsatz/Investition einer Klimaanlage sinvoll wäre und da wären noch ein haufen anderer Dinge die wir damit klären könnten.

Wie von ps-mixter schon geschrieben:
KleinDBMS wie Firebird, SQLite, oder die Express Editions von Oracle, DB2 oder SQL Server sind hier kein Thema

Mal eine SuperDAU frage:
Wo sind denn da die genauen unterschiede von Server und Filedbase DBMS :confused:
Die Server speichern die Daten doch auch in einer/mehrere Datei/en auf der Festplatte ab.
Ich sehe da eher unterschiede in der Netzwerk/Mehrbenutzer Fähigkeiten.
Die brauch ich aber überhaupt nicht.

Als DB-Engine empfehlung würde ich bei solchen Projekten ORACLE, MaxDB u. MySQL 5 nennen. Allerdings MySQL 5 nur eingeschränkt. Optimal wäre MaxDB oder ORACLE.
Oracle wäre hier mein Favorit.
Alternativ SQL Server 2005 oder DB2

Warum wären Oracle, SQL-Server, MaxDB optimal für solche Sachen und warum MySQL5 nur eingeschränkt? Was wäre mit PostGre oder Firebird? Ich habe mir schon einen Wolf über diese Systeme gelesen (Internet/Herstellerseiten) aber ich weiss immer noch nicht welche Stärken und schwächen die einzeln System haben. Komischerweise konnte mir das bisher auch noch keiner genaue Anworten dazu geben. Wie zb.:

"Für Internet, Foren nimmste besser MySQL, weil MySQL dieses und dieses besser kann"
"Einen grossen Inet.Shop oder Produktdatenbank baust du besser auf Oracle aus, weil.........."
"Für Wissenschaftliche / Geometrische Sachen wäre PostGre erste Sahne, weil.........."
 
Die Gründe warum man hier keine klaren Antworten geben kann sind:
- Es kommt auf die Anwendung an die du betreiben möchtest
- Persönliche Vorlieben
- Hardware auf der das ganze laufen soll
- erwartetes Abfragevolumen

MySQL ist mehr so für Low- bis Mid-Range Projekte gedacht (bis 500 User; 400 000 Abfragen am Tag)
ORACLE bzw. MaxDB sind Datenbanken welche für den Massiven Hochlastbetrieb entwickelt wurden. Sie verfügen über eine wesentlich performantere interne Struktur und bieten auch wesendlich mehr Möglichkeiten für Feintunings um die optimale Performance herauszukitzeln. Ferne sind Sie im gegensatz zu MySQL für wesentlich größere Datenmengen ausgelegt.

Ein kleines Beispiel:
Eine Tabelle mit 6 Mio Zeilen (3 Spalten => PK(int(11)), artikelnummer (varchar(20)), Beschreibung (text); artikelnummer hat nen Index) ist gegeben.

Unter MySQL braucht er für einen Random Seek (irgendeine Artikelnummer direkt Treffer) auf meiner Testmaschine (ein 600 MHz PC unter Debian) ca. 6,4 sec.
Unter MaxDB auf der selben Maschine braucht er nur 1,2 sec.
Unter ORACLE 4,2 sec (allerdings ist hier zu beachten, dass meine Oracle version 10i nicht mehr für so "kleine" Maschinen ausgelegt ist!)

Ich persönliche entwickle große Reiseportale bei welchen durch aus pro Tag ca 2 -3 Mio Abfragen durch die DB´s gehen. (Backoffice + diverse Schnittstellen + Buchungsseiten etc)

Wir verwenden ausschließlich die Datenbanken ORACLE und MaxDB. Lediglich die Webserver führen eine MySQL Datenbank mit in welcher sich die Dynamsichen Seiteninhalte und der kurz-Zeit-Cache befindet.

Also in deinem Fall würde ich mich mal mit den Vor- u. Nachteilen von ORACLE u. MaxDB beschäftigen und dann entscheiden. Leider kann keiner dir diese Entscheidung abnehmen. Da ist sehr viel persönliche Erfahrung u. auch das persönliche Fachwissen entscheidungsträger. (die einen mögen ORACLE die anderen MaxDB...)

Filed-Based Databases kannste knicken weil die Datenbankengine bei weitem mit diesen Anforderungen überfordert ist. Die Gründe sind auch ganz einfach, hier wird lediglich so eine "Art" Excelliste geführt welche z.B. bei Auswertungen und Suchen immer von vorne bis hinten durchgelesen werden muss. Bei großen Datenmengen erzeugt das eine riesen Last auf der Maschine und ist richtig langsam.

Für die Vorschläge von niggo:
MSSQL bzw. DB2 würde ich weniger empfehlen. Dies sind ausgesprochene Profi Datenbanken welche auch noch so manche Eigenheit an Bord haben. Ich schätze sie, vorallem DB2, auch sehr, allerdings ist diese nicht immer ganz einfach einsetzbar. Hier sind ORACLE bzw. MaxDB etwas leichter einsetzbar. (Stichwort: SQL-Sicherheit, Key´s u. Usermanagment)
Allerdings ist das wieder meine persönliche Meinung. Fragst du jemanden der regelmäßig DB2 macht wird er dir genau das gegenteil erzählen ^^

Ich hatte mal irgendwo in der Firma ne Aufstellung über Vor- u. Nachteile der verschiedenen DB´s. Muss mal danach suchen wenn ich es finde kopier ich es dir hier rein.

Ich hoffe ich konnte dir etwas weiterhelfen

Gruss
MixTer
 
Zuletzt bearbeitet:
Zurück