ukulele
Datenbank-Guru
- Beiträge
- 5.306
Ich tue mich ein bisschen schwer mit dem Thema. Im Prinzip baue ich eine Art Data Warehouse für CSV-Dateien (mit verschiedenen Formaten). Grundsätzlich sind das alles Tabellen, allerdings kündigen sich hier verschiedene Formate und Besonderheiten an. Daher möchte ich eigentlich Schritt für Schritt folgendes tun können:
1) Liste von Dateien im Zielverzeichnis holen
2) Dateien als Ganzes importieren
3) ggf. einzelne Datensätze in der Datei manipulieren
4) Daten aus der Datei in eine Tabelle importieren
5) Die Datei auf dem Dateisystem löschen
6) Die Datei in der DB irgendwann löschen
Eins ist soweit kein Problem. Bei Zweitens wird es komplizierter, ich hab schon kleine Dateien mit max ~100kb als VARCHAR(MAX) importiert und dann im Text irgendwelche Manipulationen vorgenommen. Jetzt sind das aber csv-Dateien mit bestimmt mal 100 MB. Wenn ich das jetzt als VARBINARY(MAX) speichere könnte das vielleicht gehen aber dann kann ich natürlich keine Zeichenketten finden und verändern.
Ist es überhaupt sinnvoll möglich diese Datei für einen kurzen Zeitraum als ganzes in der DB zu halten oder macht es einfach keinen Sinn und die Dateien sollten auf dem Dateisystem verbleiben?
Es handelt sich leider um Daten die nur mit ; getrennt sind und Zeichenketten nicht vernünftig kennzeichnen. Ich werde also bei einem direkten Import auch ständige Probleme mit Sonderzeichen kriegen. Auch gibt es teilweise Zeilen die verworfen werden müssen (2te Überschrift).
1) Liste von Dateien im Zielverzeichnis holen
2) Dateien als Ganzes importieren
3) ggf. einzelne Datensätze in der Datei manipulieren
4) Daten aus der Datei in eine Tabelle importieren
5) Die Datei auf dem Dateisystem löschen
6) Die Datei in der DB irgendwann löschen
Eins ist soweit kein Problem. Bei Zweitens wird es komplizierter, ich hab schon kleine Dateien mit max ~100kb als VARCHAR(MAX) importiert und dann im Text irgendwelche Manipulationen vorgenommen. Jetzt sind das aber csv-Dateien mit bestimmt mal 100 MB. Wenn ich das jetzt als VARBINARY(MAX) speichere könnte das vielleicht gehen aber dann kann ich natürlich keine Zeichenketten finden und verändern.
Ist es überhaupt sinnvoll möglich diese Datei für einen kurzen Zeitraum als ganzes in der DB zu halten oder macht es einfach keinen Sinn und die Dateien sollten auf dem Dateisystem verbleiben?
Es handelt sich leider um Daten die nur mit ; getrennt sind und Zeichenketten nicht vernünftig kennzeichnen. Ich werde also bei einem direkten Import auch ständige Probleme mit Sonderzeichen kriegen. Auch gibt es teilweise Zeilen die verworfen werden müssen (2te Überschrift).