Dynamischer Daten Import / Export

datenbank

weil Einfach - produktiver ist
Mit der Freeware Version können bis zu 10.000 Datensätze verarbeitet werden!

CSV und Excel Daten über SQLite Datenbank zusammenführen

In diesem Beispiel werden wir aufzeigen wie Daten aus einer CSV Textdatei und einer Excel Liste zu einem „Großen" Export Textdatei Flat File Report zusammengeführt werden können.

Oft kommt es vor, dass Daten aus verschiedenen (Daten) Quellen vorliegen und diese in einer konsolidierten Liste (Export Datei) zusammengeführt werden sollen. Der Einfachheit verwenden wir hier nur zwei unterschiedliche Datenquellen CSV und Excel. Nach dem gleichen Schema können Sie aber beliebig viele und andere Datenquellen miteinander kombinieren.

Wir benötigen für jede Datenquelle eine separate FlowHeater Definition um die Daten zuerst in eine temporäre SQLite DB zwischen zu speichern. Sie fragen sich vielleicht warum SQLite? Es würde sich theoretisch auch jede andere Datenbank dafür eignen. SQLite hat den Vorteil, dass Sie dafür weiter keine anderen Datenbanktools benötigen. Der FlowHeater bringt für SQLite Datenbanken bereits alles mit was wir benötigen.

 

CSV Textdatei in SQLite Datenbank importieren

Wir starten mit dem CSV Import in die SQLite Datenbank. Erzeugen Sie dafür eine neue FlowHeater Definition und wählen als Adapter für die READ Seite den TextFile Adapter und auf der WRITE Seite den SQLite Adapter aus. Konfigurieren Sie den READ Adapter so dass die CSV Textdatei „text-daten.csv" gelesen werden kann und schließen Sie den Configurator für die CSV Datei.

CSV Feldnamen nach SQLite übernehmen
CSV Feldnamen nach SQLite übernehmen

Gehen Sie nun mit der Maus im Designer über den SQLite Adapter der WRITE Seite (noch nicht den Configurator öffnen) und wählen mit einem Rechtsklick die Option "READ Felder übernehmen" aus.

Öffnen Sie nun den Configurator für den SQLite Adapter auf der WRITE Seite. Geben Sie für den Datenbanknamen "Adressen.sqlite" an und aktivieren die Optionen:

  • Datenbank anlegen falls nicht existiert
  • Tabelle anlegen falls nicht existiert
  • Daten anfügen (Insert)
  • Tabelle vor dem Import löschen.

 

SQLite Tabellenname und PrimaryKey
SQLite Tabellenname und PrimaryKey

Wechseln Sie anschließend auf den Reiter "Felder / Datentypen" und geben für den Tabellennamen falls nicht existiert den Namen "t_Adressen" ein. Dies ist in diesem Fall notwendig, da unsere SQLite Datenbank noch nicht existiert und wir keine Tabelle auswählen können.
Jetzt müssen wir dem SQLite Adapter mitteilen welches Feld unserer CSV Datei als PrimaryKey angelegt werden soll. Klicken Sie hierzu in der Feldliste das Feld ID an, stellen den FlowHeater Datentypen auf Integer und aktivieren Sie für dieses Feld die Option "PrimaryKey". Beenden Sie den SQLite Adapter Configurator Dialog mit OK.

Jetzt müssen wir die Felder der CSV Textdatei (READ Seite) noch mit den Felder der SQLite Datenbank (WRITE Seite) verbinden. Anschließend können wir die CSV Datei in unsere SQLite Datenbank importieren. Führen Sie dazu die Definition einmalig aus und speichern diese unter den Namen "Import-CSV-nach-SQLite.fhd" ab.

 

Excel Arbeitsblatt in SQLite Datenbank importieren

SQLite Tabellenschema anpassenSQLite Tabellenschema anpassenWir legen eine weitere neue FlowHeater Definition an und wählen hierfür die Adapter Excel für die READ Seite und SQlite für die WRITE Seite aus. Anschließend konfigurieren wir den Excel Adapter so dass die Excel Arbeitsmappe "Excel-Daten.xls" gelesen werden kann.
Anschließend öffnen wir den Configurator für den SQLite Adapter auf der READ Seite und wählen unsere oben im ersten Schritt erzeugte SQLite Datenbank "adressen.sqlite" aus. Aktivieren Sie hier nur die Optionen

  • Fehlende Felder automatisch an Tabelle anfügen
  • Daten aktualisieren

Und wechseln anschließend auf den Reiter "Felder / Datentypen". Hier müssen Sie lediglich die Tabelle t_Adressen aus der SQLite Tabellenauflistung auswählen und einmalig den Button "Felder einlesen" klicken um das Tabellenschema zu laden. Verlassen Sie anschließend den SQLite Configurator Dialog mit OK.

Verbinden Sie nun das ID Feld der Excel Datei (READ Seite) mit dem ID Feld des SQLite Adapters (WRITE Seite). Für die 2 zusätzlichen Felder in der Excel Liste haben wird momentan noch keine passenden Felder in unserer SQLite Datenbank Tabelle. Da wir die Option "Fehlende Felder automatisch an Tabelle anfügen" aktiviert haben können wir diese Felder einfach in einen leeren Bereich des SQLite Adapters im Designer ziehen. Der SQLite Adapter fügt diese Felder dann automatisch an die Tabelle an und passt das Tabellenschema an die neuen Struktur an.

Wenn Sie jetzt die Definition ausführen wird die SQLite Tabelle um 2 Felder erweitert und der FlowHeater aktualisiert die Daten der Excel Datei anhand des Feldes ID (PrimaryKey) in der SQLite Datenbank. Speichern Sie die Definition unter den Namen "Import-Excel-nach-SQLite.fhd" ab.

 

SQLite Tabelle in FlatFile Report exportieren

Mit den zwei Definitionen haben wir die Daten der zwei Datenquellen (CSV und Excel) zu einer zusammengeführt. Jetzt müssen wir diese Daten noch als FlatFile Report exportieren. Legen Sie dazu ein neue Definition an und wählen auf der READ Seite den SQLite Adapter und auf der WRITE Seite den Textfile Adapter aus.
Öffnen Sie den SQLite Configurator und geben für die Datenbank die oben erzeugte SQLite Datenbank "adressen.sqlite" an. Wechseln Sie anschließend auf den Reiter "Felder / Datentypen" und wählen die Tabelle "t_Adressen" aus, lesen das Tabellenschema über den Button „Felder einlesen" ein und beenden den Dialog mit OK.

Öffnen Sie nun den TextFile Adapter Configurator der WRITE Seite. Geben Sie einen Dateinamen an und stellen Sie die Spaltenabgrenzung vom Standard "Mit Trennzeichen" auf "Feste Breite" um. Wechseln Sie nun auf den Reiter "Felder / Datentypen" und klicken auf den Button „Feldnamen von READ Adapter kopieren". Anschließend beenden Sie den Configurator Dialog mit OK. Jetzt müssen wir noch die Felder der SQLite Datenbank (READ Seite) mit den Feldern des TextFile Adapter (WRITE Seite) verbunden und können anschließend die Export starten. Speichern Sie die Definition unter den Namen "Export-SQLite-FlatFile.fhd" ab.

 

Automatisieren über das Batch Modul

Über das Batch Modul (FHBatch.exe) und folgenden Batch CMD Skript können Sie diese 3 Definitionen/Schritte automatisiert und ggf. auch zeitgesteuert über den Windows Aufgabenplaner ausführen.

@echo off

REM Hier ggf. den Installationspfad zur FHBatch.exe anpassen!
set FHBATCH="C:\\\Program Files\FlowHeater V2\BIN\FHBatch.exe"

REM 1. Schritt: Import CSV in SQLite Datenbank
%FHBATCH%  Import-CSV-nach-SQLite.fhd

REM 2. Schritt: Anreichern der SQLite Daten über Excel Arbeitmappe
%FHBATCH%  Import-Excel-nach-SQLite.fhd

REM 3. Schritt: Flat File Report aus SQLite DB exportieren
%FHBATCH% Export-SQLite-FlatFile.fhd