externe Log-Daten importieren

Hallo in die Runde,

ich habe vor meiner IPS-Zeit über mehrere Jahre ein paar Wetterdaten aufgezeichnet und als .csv-Daten vorliegen. nun würde ich diese gern in IPS importieren, und zwar so das die .csv-Daten nur bis zu dem Zeitpunkt importiert und der jeweiligen Variable zugeordnet werden wo die IPS-eigene Aufzeichnung beginnt. Es müssten als die Werte und die dazugehörigen Timestamps importiert werden.

Hat jemand ne Idee wie man das bewerkstelligen kann?

Datei einlesen, deinen Timestamp raussuchen und rückwärtssuchen.

Rainer,

ich habs befürchtet: kurz, knapp und treffsicher :smiley:

Die große Frage ist aber: wie?:wink:

Ich kenn die Datei nicht. :smiley:

Denke aber mal, Semikolon getrennt.

Mit expolde kommst hier weiter. In eine Schleife verpacken und wenn Timestamp kleiner deines gewünschten, Daten einlesen. So in der Art.:eek:

Hi Rainer,

die Daten liegen Komma-separiert vor:


01.01.2011,00:00,22.0,2.0,16.7,20.6,21.6,0.0,1.3,0.0,0.0,0.0,36,95,35,37,36,0,1016.8,0.000,0.0,360,0.0,1.3,2.0,0.0,3
01.01.2011,00:10,21.9,2.1,16.7,20.6,21.6,0.0,1.4,0.0,0.0,0.0,36,95,35,37,36,0,1016.6,0.000,0.0,360,0.0,1.4,2.1,0.0,11
usw.

die Anfügedaten bis zu dem Zeitpunkt vor dem ersten IPS.Timestamp würde ich zur Not noch selbst raussuchen und die Daten im .csv händisch bereinigen. Die spannende Frage ist für mich derzeit: wie schreibt man solche Daten in die IPS-DB?

Die spannende Frage ist für mich derzeit: wie schreibt man solche Daten in die IPS-DB?

Offiziell gar nicht. Um das zu machen müsstest Du direkt mit Befehlen in die DB schreiben. Dazu musst Du aber die Struktur kennen, was man rausfinden kann, ansonsten gibt es Bruch.

Da hast Du das selbe Problem wie ich.

Ich überlege auch gerade wie ich meine 2.5Mio Datensätze von MySQL in Richtung IPS-DB bringe. (hoffentlich überlebt das die SQLite-DB überhaupt)

Das IPS kein AC_Set*_Befehlsatz mitbringt muß ich mir mal ein paar Management-Programme für Datenbanken ansehen.

ich denke, ich bin da noch zu weit weg. Ich hab in den letzten Wochen immer mal wieder in die IPS-DB geschaut und hab versucht Strukturen zu erkennnen, aber ganz ehrlich: ich schaue da réin wie ein Schwein ins Uhrwerk…:confused:

Hallo zusammen,

ich steh gerade vor einem ähnlichen Problem.
Ich würde gerne die Daten der letzen 4 Jahre aus den WIIPS-RRD-DBs in die IPS-DB importieren.

Bin aber leider auch noch nicht so richtig hinter die IPS-DB-Struktur gekommen…

Wär klasse wenn es dafür eine Import-Funktion in IPS geben würde.

Diesbezüglich benötige ich einmal eine Unterstützung durch das IPS-HQ.

Wie wird die DB in IPS überhaupt befüllt.

Wird seitens IPS nur der Tabelle

[ul]
[li]ips_float[/li][li]ips_integer[/li][li]ips_boolean[/li][/ul]
befüllt und die entsprechenden Zeittabellen

[ul]
[li]_hour[/li][li]_day[/li][li]_week[/li][li]_month[/li][li]_year[/li][/ul]automatisch aggregiert oder werden die vorher genannten Wert durch IPS in bestimmten Zyklen errechnet und ebenfalls in die DB geschrieben.

[ol]
[li]Deshalb meine abschließende Frage. Muss ich nur die eigentliche ips_float mit den fremden Daten füllen und IPS bzw. die DB aggregiert die Daten selbstständig[/li][li]oder müßte ich auch die entsprechenden Nebentabellen _hour, _day, usw. selbst befüllen?[/li][/ol]Hoffentlich nur Option 1, dann könnte ich mir selbst behelfen und die Daten aus meiner MySQL-DB (8.6Mio Datensätze) in die SQLite-DB migrieren.

Bin mir nicht sicher ob in einer RRD-DB noch alle Daten vorhanden sind da RRD soviel ich noch weiß nur die wichtigsten Daten behält und den Rest verabschiedet.

Kann mich aber auch Irren.

Hatte die DBs damals für 5 Jahre angelget.
Sollte also noch alles da sein… Hoffe ich…

Schwieriger wirds aber anscheinend die Daten lesbar aus der DB raus zu kriegen.
Nen Export in ein xml hab ich geschafft, nur keine Ahnung wie ich die Daten dort rauskrieg…
Ein Export in ein csv wär am besten…
Wenn da jemand nen Tipp dazu hat, wär ich dankbar :o

Hallo paresy,

da meine Frage sich auf der ersten Seite versteckt hier vielleicht nocheinmal ein Hinweis für Dich.

Deine 1. Annahme ist soweit korrekt. Jedoch musst du eine Reaggregation hinterher manuell anschubsen, die dann alle Daten dieser Variable komplett neu aggregiert. (Geht im Dialog, in dem man das Logging allgemein aktiviert)

paresy

das wäre super klasse, wenn Ihr einen brauchbaren Weg findet den man auch als Nichtdatenbankexperte nachvollziehen kann. Werner, bin gespannt ob das klappt und drück Dir die Daumen;)

Danke Paresy. Dann kann ich heute Abend mal weitertesten.

@RS: die Drücke ich mir auch :wink:

Hi Werner,

wie schauts denn aus, bist Du hier weitergekommen? ich hoffe, das Daumendrücken war erfolgreich :wink:

Hi RS,

ja, bin schon ein Stück weiter.

Da meine Werte derzeit in eine MySQL liegen mußte ich erst einmal eine Möglichkeit finden verwertbare CSV-Dateien zu bekommen.

Es gäbe zwar auch einen direkten Weg von MySQL -> SQLite aber diese sind alle kostenpflichtig.

Also habe ich mir im ersten Step eine SQL-Abfrage gebastelt um eine Variable (800.000 Datensätze) in eine CSV-Datei zu bekommen. Dies ist mir gestern Abend gelungen und ich kann nun den zweiten Schritt in Richtung CSV -> SQLite gehen.

Denke bis zum Wochenende werde ich schon eine Lösung finden um CSV per Batch in die SQLite zu bekommen.

das hört sich schon sehr gut an - danke für’s Feedback. ich drücke weiter die Daumen, diesmal aber alle 10 :smiley:

RS,

ich werde das Thema mal ein wenig weiter nach hinten schieben.

Das importieren der Daten gestaltet sich ein wenig schwieriger als gedacht.

In meiner MySQL-DB sind die Werte punktuell, also zu einem bestimmten Zeitpunkt gespeichert, in der IPS-internen DB werden die Datensätze mit der Zeitdifferenz gepeichert.

Werde das Projekt vielleicht später wieder einmal aufgreifen. Sorry, aber die Daten laufen ja nicht davon :rolleyes:

Muss ich erst mal um die aufwärtskompatibilität für V2.5 kümmern, das ist schon eine Menge Arbeit. :confused: