AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken .csv File durchsuchen oder andere Datenbank??
Thema durchsuchen
Ansicht
Themen-Optionen

.csv File durchsuchen oder andere Datenbank??

Ein Thema von Osse · begonnen am 26. Mai 2005 · letzter Beitrag vom 2. Jun 2005
Antwort Antwort
Seite 1 von 3  1 23      
Osse

Registriert seit: 25. Mär 2005
Ort: Hamburg
74 Beiträge
 
Delphi 5 Enterprise
 
#1

.csv File durchsuchen oder andere Datenbank??

  Alt 26. Mai 2005, 19:01
Datenbank: --- • Version: ---- • Zugriff über: -----
Hallo,

ich habe ein Programm geschrieben, mit dem es möglich sein soll, Daten von einem Bussystem zu analysieren. Zu diesem Zweck werden die Daten in Delphi eingelesen und in eine .csv Datei gespeichert. Das ganze Programm ist schon zu 70% fertig. Mittlerweile ist mir aufgefallen, dass die Datei sehr groß wird, da ich jede ms mit ca. 150 Telegrammen rechen. Naja, besser zu spät als nie merken. Wichtig ist, dass die ankommenden Daten schnell sichtbar. Des weitern soll es aber auch möglich sein einen Filter einzuschalten, oder nach bestimmten Einträgen zu suchen. Nun meine Frage, muss ich jede Zeile meiner Datenbank mit meinen Suchkriterien vergleichen??
Das wird wohl sehr lange Dauern. Doof!!!

Gibt es sonst eine andere Möglichkeit dies zu umgehen???
Es soll auf jeden Fall keine SQL Datenbank sein.

Hab so keinen Schimmer von den Delphi Datenbanken. Hört sich aber stark danach an.
Könntet ihr mir etwas empfehlen, oder habt ihr selber schon mal vor einem solchen Problem gestanden??
Gibt es in Delphi fertige Tolls??

Die Daten dienen nur zur Projektierung und sollen zur Not auch in Excel darstellbar sein.

Später soll mit den Sucheinträgen besondere Telegramme dokumentiert werden.

Bin für alle Vorschläge offen.

Vielen Dank.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: .csv File durchsuchen oder andere Datenbank??

  Alt 26. Mai 2005, 21:03
Erst eine Frage: Wieso keine SQL-Datenbank? Wobei SQL eine Sprache ist, die Access auch 'kann', aber Du meinst sicherlich eine richtige DB, wie MSSQL, FireBird, Postgres etc.

Du musst deine Werte ja abspeichern. da musst Du schon eine DB nehmen. Alles Andere ist IMHO Blödsinn.

Was das Filtern / Anzeigen etc. anbelangt, müsstest Du spezifizieren wie und vor Allen Dingen wann Du das machen willst. Eine MSDE z.B. ist, bei richtiger Indexierung, verdammt schnell, schneller als jedes selbstgeschriebene Programm wenn es darum geht, bereits gespeicherte Daten zu analyiseren bzw. zu filtern. Beim Speichern dagegen tut sich die MSDE schwer, weil sie eine 'echte' DB ist, die Dir garantiert, das deine Daten sicher wie in Fort Knox sind. Allerdings gibt es da Tricks (Stichwort 'Bulk Copy', BCP) womit man riesige Datenmengen en block sauschnell in die DB importieren kann.

Ich würde die Daten in einer Tabelle speichern mit dem Zeitpunkt als Primär-Index. Dann kannst Du -schnipps- sofort jedes beliebige Zeitfenster auswählen. Wenn Du dann noch weitere Filterkriterien hast, dann indexiere auch danach. Eventuell sogar kombiniert: Also Zeitpunkt-Unterkriterium als ein Index. Das ist dann auch saumäßig flink.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: .csv File durchsuchen oder andere Datenbank??

  Alt 26. Mai 2005, 21:44
Hallo Osse,

wenn du die Daten eines CAN-Bus in Echtzeit visualisieren willst, warum speicherst du die Daten dann überhaupt? Bei einer Rate von 150 Telegrammen pro Millisekunde hast du 10 Mio pro Minute. Sowas lässt sich nur gefiltert oder aggregiert darstellen. Ist ein Ringpuffer auf einem RAM-Boliden da nicht die beste Lösung? Wenn gespeichert werden muss, dann kommt es darauf an, was später gemacht werden soll. Bei Detailauswertungen auf Massendaten kommst du um eine relationale Datenbank nicht drum rum - aber das ist ja eigentlich auch eine andere Baustelle - dein Monitor kann die Daten ruhig in csv-chunks speichern, die von einem Bulk-Loader in die Datenbank gezogen werden. Wenn keine Detailauswertungen benötigt werden, dann könntest du dir etwas in Richtung Round Robin Datenbank ausdenken.

Grüße vom marabu
  Mit Zitat antworten Zitat
Osse

Registriert seit: 25. Mär 2005
Ort: Hamburg
74 Beiträge
 
Delphi 5 Enterprise
 
#4

Re: .csv File durchsuchen oder andere Datenbank??

  Alt 27. Mai 2005, 01:26
Hey marabu und alzaimar

Vielen Dank für die schnelle und doch wieder neue Auftragslage für mich. Muss mich nun mit der Baustelle Datenbanken und deren Suchalgorithmen auseinandersetzten.

Marabu dein Round Robin Ansatz ist nicht schlecht, aber ich brauche alle Daten mit den ganzen einzelheiten, da sie als Sicherungsprotkoll dienen. Es werden alle Daten gespeichert um auch später nochmal die Daten analysieren zu können. In der Inbetriebnahme kommt es auf die Schnelligkeit an und das alle Telegramme auch angekommen sind. Später kann man dann nochmal nach Auffälligkeiten suchen.
Somit brauch ich also alle Daten.

Die Datenbank versuche ich hier zu dikutieren:
Hier im Forum suchen Suche AND Schnelle AND Offline AND Datenbank

(Wie schreibt man einen link in diesem Forum auf diesen Thread??)

Würd mich sehr über weitere Anregungen freuen und nochmal Danke für die flinke Antwort.

Gruß aus HH
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#5

Re: .csv File durchsuchen oder andere Datenbank??

  Alt 27. Mai 2005, 06:44
Zitat von Osse:
... (Wie schreibt man einen link in diesem Forum auf diesen Thread??)
Hai Osse,

benutze dafür einfach den URL-Tag

[*url=http://www.delphipraxis.net/internal_redirect.php?t=54903]Klicke hier zum neuen Thread[/url]

ergibt (ohne den * am Anfang)

Klicke hier zum neuen Thread
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Domo Sokrat
Domo Sokrat

Registriert seit: 14. Mai 2003
Ort: Wehrheim / Ts.
235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: .csv File durchsuchen oder andere Datenbank??

  Alt 27. Mai 2005, 06:55
Moin Osse,

auch wenn Du nichts mit Datenbanken am Hut hast (haben willst), hätte ich da noch einen kleinen Tip für Dich: TjanSQL. Eine Library, die eine Klasse zur verfügung stellt, mir der Du z. B. CSV-Files wie Datenbanktabellen behandeln kannst und das mit SQL-Befehlen! So könntest Du über einfache SELECT-Statements z. B. Deine Filter realisieren. Lies Dir's einfach mal durch und dann entscheide, ob das etwas für Dich ist. Achja: Ein Demoprogramm ist auch dabei.

Grüße!
Michael Seeger
Vergesst nicht: Es wird überall nur mit Wasser gekocht
ZEOSLib - Admin-Team
ZeosLib-Forum
  Mit Zitat antworten Zitat
Benutzerbild von Domo Sokrat
Domo Sokrat

Registriert seit: 14. Mai 2003
Ort: Wehrheim / Ts.
235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: .csv File durchsuchen oder andere Datenbank??

  Alt 27. Mai 2005, 20:36
Hi,

ich nochmal. Hab' eben gerade einen kleinen "Erfahrungbericht" zu TjanSQL in diesem Thread hier entdeckt Da wird auch kurz auf die Geschwindigkeit eingegangen...
Michael Seeger
Vergesst nicht: Es wird überall nur mit Wasser gekocht
ZEOSLib - Admin-Team
ZeosLib-Forum
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: .csv File durchsuchen oder andere Datenbank??

  Alt 27. Mai 2005, 21:10
@Domo Sokrat: Ich bezweifle, das eine sequentielle Suche auf einer 10GB Datei schnell geht. Es fallen doch pro Sekunde 2MB Daten an. Die 4 Sekunden in dem Beitrag in Bezug auf TjanSQL bei gerade mal 15000 Zeilen sind niedlich, aber nicht schnell.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von Domo Sokrat
Domo Sokrat

Registriert seit: 14. Mai 2003
Ort: Wehrheim / Ts.
235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: .csv File durchsuchen oder andere Datenbank??

  Alt 27. Mai 2005, 22:37
Hi alzaimar,

ich kann mir nicht vorstellen, daß die CSV'n von Osse 10 GB groß sind. Aber wer weiß ... Von daher kann ich auch nur darüber spekulieren, ob die erwähnte Performance (15000 Zeilen in 4 sec.) nicht doch akzeptabel ist Aber ich denke, das sollte Osse selbst entscheiden

@Osse: Gib doch bitte mal Laut, ob Du die TjanSQL-Library überhaupt in Betracht ziehen würdest ... War ja nur mal ein Tip bzw. Vorschlag von mir.

Grüße und gute Nacht!
Michael Seeger
Vergesst nicht: Es wird überall nur mit Wasser gekocht
ZEOSLib - Admin-Team
ZeosLib-Forum
  Mit Zitat antworten Zitat
Osse

Registriert seit: 25. Mär 2005
Ort: Hamburg
74 Beiträge
 
Delphi 5 Enterprise
 
#10

Re: .csv File durchsuchen oder andere Datenbank??

  Alt 28. Mai 2005, 02:00
Hey Domo Sokrat

habs mir die TjanSQL angeschaut und ich Denke,damit kann ich mal rumspielen. Ist aber recht umfangreich das Demoprojekt. Da muss ich mich mal richtig son Tag damit beschäftigen und orentlich .

Hab das demo Progrämmlein so lala zum Laufen gebracht irgendwas stimmt da noch nicht, da ich keine qstrings in jansqlstrings einbinden kann und auch keien janSQLWhere.pas. Habs dann auskommentiert, konnte aber keine .csv Dateien auswählen, sondern nur *.sql. Hast du schon "zufällig" mit TjanSQL ein kleines tool geschrieben um .csv Dateien zu bearbeiten??


Werde mir mal die schreib und öffnenroutinen sowie die Filter angucken. Sicherlich kann ich dabei viel lernen. Es ist auf jeden fall eine große bereicherung.

Danke

Einen schönen Gruß aus dem warmen HH und eine gute Nacht
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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:56 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