Functions Parser GenericParser CSVParser - SmartEnviroSystem/SmartDataPorter GitHub Wiki
Der CSVParser dient der Verarbeitung aller CSV basierten Datendateien.
Die CSV-Dateien können über den FileImporter, HTTPImporter oder FTPImporter importiert werden.
Import-Tabelle
Die Import-Tabelle muss entsprechend der zu importierenden Daten gestaltet werden. Es gibt keine festen Vorgaben.
Import-Konfiguration
| Parameter | Bedeutung | Standard | optional |
|---|---|---|---|
| csv.format | Angabe des CSV Unterformats (DEFAULT, EXCEL) | DEFAULT | yes |
| csv.delimiter | Spalten-Trennzeichen | ; | yes |
| csv.headers | Array mit den Spaltennamen wie in der Kopfzeile | no | |
| csv.mapping | Mapping der CSV-Spalten zu Tabellen-Spalten(siehe Bsp.) | no | |
| csv.skipbeginlines | Skip this number of lines | 0 | yes |
| csv.ignoreemptysets | Do not import sets without measured data | false | yes |
| flatten | Datensätze der CSV als einen DB-Datensatz zusammenfassen | false | yes |
| time_correcture | Parameter im Mapping eines Wertes, Zeitkorr. in Stunden | 0 | yes |
Bei csv.headers müssen immer alle header angegeben werden, wie sie in der Datei zu finden sind, unabhängig davon, ob diese importiert werden sollen.
Das Mapping besteht aus einem Objekt mit den Angaben csv_column (Name oer Nummer der Spalte in der CSV), db_column (Name der Spalte in der DB) und type (Datentyp des Wertes).
Einfaches Beispiel mit minimaler Konfiguration
{
"importer": "HTTPImporter",
"parser": "CSVParser",
"url": "http://meinetolledatenquelle.de/onlinedaten.csv",
"server": "http://epigraf01.ad.fh-bielefeld.de:8080",
"smartdata": "SmartDataTest",
"storage": "test",
"collection": "importtable"
}
Beispiel Konfiguration Laborhellkennlinien
{
"importer": "HTTPImporter",
"parser": "CSVParser",
"url": "http://localhost/test.json",
"server": "http://smardata.server.de",
"smartdata": "SmartData",
"storage": "test",
"collection": "kennlinien",
"csv.format": "EXCEL",
"csv.delimiter": ";",
"csv.headers": [
"U_mes", "I_mes", "U_L", "I_L", "U_LT", "I_LT", "U_ref", "E_ref"
],
"csv.mapping": [
{
"csv_column": "U_mes",
"db_column": "U",
"type": "double"
},
{
"csv_column": "I_mes",
"db_column": "I",
"type": "double"
}
],
"flatten": true
}
Beispiel Konfiguration DWD Einstrahlungsdaten
{
"importer":"HTTPImporter",
"parser":"CSVParser",
"url":"http://localhost:8080/SmartDataPorter/testfiles/irradiance_test.csv",
"server":"http://127.0.0.1:8080/",
"smartdata":"SmartData",
"storage":"test",
"collection":"irradiation_germany",
"csv.format":"EXCEL",
"csv.delimiter":",",
"csv.headers":[
"lat","lon","time","SIS","SID"
],
"csv.mapping":[
{"csv_column":"lat","db_column":"lat","type":"double"},
{"csv_column":"lon","db_column":"lon","type":"double"},
{"csv_column":"time","db_column":"time","type":"string"},
{"csv_column":"SIS","db_column":"gesamt_strahlung","type":"double"},
{"csv_column":"SID","db_column":"direkt_strahlung","type":"double"}
],
"flatten":false,
"geo.transform":true,
"geo.latAttr":"lat",
"geo.lonAttr":"lon",
"geo.srid":"4326",
"geo.dbattr":"location"
}
Hinweis: geo.* Konfigurationen gehören zu den Basis-Konfigurationen. Siehe "[Konfiguration des Imports](anwendung/Importer/Konfiguration des Imports)"
Datei-Erkennung
Dieser Parser hat noch keine Datei-Erkennung implementiert, er wird jede Datei akzeptieren und versuchen als CSV zu interpretieren.