![]() |
LOG Auswertung Top 100 Listen welche Datenstrukturen ?
Hallo,
ich habe ja im Zusammenhang meiner LOG auswertung schon ein paar fragen gestellt ... nun geht es mir um die erstellung von top 100 listen der zugriffe etc. .. ich frage mich grad welche datentypen bzw strukturen ich nehme ... zum beispiel records in einer tlist .... oder records in einem dynamischen array ? ... was ist schneller ? was benötigt weniger speicher ? ... das problem ist für mich das ich im schlimmsten fall ein log habe mit sagen wir mal 1000000 einträgen und ich müsste daraus trotzdem eine vernünftige top 100 der zugriffe erstellen .... da bi ich etwas ratlos wie ich das im speicher schnell handeln soll Vielleicht habt ihr dort erfahrunge mit großen datenmengen ... Grüße, Andreas |
Re: LOG Auswertung Top 100 Listen welche Datenstrukturen ?
Z.B. eine Datenbank
|
Re: LOG Auswertung Top 100 Listen welche Datenstrukturen ?
Hallo... :hi:
ich werfe mal spontan bei dieser Menge ein DBMS in den Raum. Firebird :thumb: roter Kasten: och nöööö.... :( edit: @Markus mein Post sieht schöner aus :mrgreen: |
Re: LOG Auswertung Top 100 Listen welche Datenstrukturen ?
Zitat:
|
Re: LOG Auswertung Top 100 Listen welche Datenstrukturen ?
Zitat:
|
Re: LOG Auswertung Top 100 Listen welche Datenstrukturen ?
mit 1000000 Datensätzen und dem richtigen Index ist die Top 100 Liste in Millisekunden fertig sortiert im Dataset.
:gruebel: Warum hacken alle auf Speicher rum, Arbeitsspeicher im GB Format... Terrabyteplatten. Zum Vergleich ich habe eine Firebird Datenbank, 59 Tabellen, insgesamt über 300 Felder, 100000 Datensätze ... macht 8,5 MB Plattenplatz. So und jetzt du... :zwinker: |
Re: LOG Auswertung Top 100 Listen welche Datenstrukturen ?
Zitat:
dann wäre es doch am sinnvollsten wenn ich direkt alle daten des logs in eine db schaufele und die dann antsprechend auswerte .... oder ? |
Re: LOG Auswertung Top 100 Listen welche Datenstrukturen ?
Ja, so war meine Antwort gemeint
|
Re: LOG Auswertung Top 100 Listen welche Datenstrukturen ?
Zitat:
dann versuche ich das mal .... any idea ... normale delphi compos verwenden und dann welchen datenbanktyp nutzen ? |
Re: LOG Auswertung Top 100 Listen welche Datenstrukturen ?
Es wurde schon FireBird embedded vorgeschlagen oder SQLite ...
|
Re: LOG Auswertung Top 100 Listen welche Datenstrukturen ?
Zitat:
Grüße, Andreas |
Re: LOG Auswertung Top 100 Listen welche Datenstrukturen ?
Nein, weder fireBird embedded noch SQLite musst du installieren, sind je nur eine Dll
|
Re: LOG Auswertung Top 100 Listen welche Datenstrukturen ?
Zitat:
|
Re: LOG Auswertung Top 100 Listen welche Datenstrukturen ?
Ja und ja.
Lokal wird ein ClientDataSet als XML Datei gecacht. Die Möglicheiten eines DBMS gehen aber weit darüber hinaus und sind imho besser geeignet |
Re: LOG Auswertung Top 100 Listen welche Datenstrukturen ?
Zitat:
also firebird dll laden und schauen ... bin mal gespannt ob ich das hinbekomme |
Re: LOG Auswertung Top 100 Listen welche Datenstrukturen ?
Wo finde ich denn die aktuelle SQLite und ein INterface dafür ? ... finde hier alles mögliche aber nichts was sich auf die schnelle nutzen läßt ... unter anderem eine dbmsqlite3 .... oder ist es das unter sqlite.org ?
|
Re: LOG Auswertung Top 100 Listen welche Datenstrukturen ?
Hi,
ich schreibe mal ein wenig über SQLite. für die Verwendung mit einer Komponente musst Du in der Regel immer die SQLite.dll (bekommst Du auf ![]() eine einfache Wrapperklasse für SQLite findest Du hier: ![]() oder Du nimmst die Zeos-Komponenten: ![]() oder die Personal-Version von DiSQLite (diese braucht keine externe DLL!): ![]() Gruß Patrick |
Re: LOG Auswertung Top 100 Listen welche Datenstrukturen ?
Ich glaube, das man sich einen Wolf wartet, bis 1 Mio Datensätze in einer DB abgelegt sind.
Ich machs mir einfach und verwende eine StringList und eine Hashmap (TStringDictionary gibts hier im Forum). Ich extrahiere mit RegEx die Informationen aus der LOG-Zeile, suche mir in in meiner Hashmap die Daten, überarbeite sie und fertig. Auf jeden Fall schneller umgesetzt, schneller in der Ausführung, und schneller fertig. DAS war es glaube ich, worum es dem Threadersteller ging. Wenn ich allerdings vorher nicht weiss, wonach ich in den Log-Dateien suche, dann würde natürlich eine kleine Tabelle in einer DB Sinn machen, weil die durch SQL zur Verfügung stehenden allgemeinen Recherchemöglichkeiten einfach nicht zu topppen sind. Wobei mir einfällt, das es SQL auch für In-Memory Tabellen gibt (TjanSQL heißt das Teil) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:56 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