CSV-JDBC-Treiber
| Beitragsseiten |
|---|
| CSV-JDBC-Treiber |
| Implementierung |
| Alle Seiten |
CSV
Die Abkürzung CSV heißt ausgeschrieben Comma Separated Value. Das bedeutete im Urspung "durch Komma getrennte Werte". Solche Dateien wurden und werden zum Im- und Export von Daten zwischen verschiedenen Anwendungen benutzt. Inzwischen werden alle Arten von Dateien oder Daten, die einzelne Datensätze in jeweils einer Zeile enthalten, und bei denen die einzelnen Daten durch ein festgelegtes Zeichen voneinander getrennt sind, als csv-Dateien bezeichnet.
JDBC
JDBC ist ein Standard zum Zugriff auf SQL-Datenbanken aus Programmen, die mit der Sprache Java geschrieben wurden. Dabei handelt es sich um die Beschreibung einer Schnittstelle, die Datenbank-Hersteller implementieren müssen, damit ihre Produkte mit Java-Programmen zusammenarbeiten können.
Die Idee
Nun ist es so, daß JDBC eine Schnittstelle zum Datenzugriff darstellt, die natürlich nicht nur den Kontakt zu SQL-Datenbanken darzustellen braucht. Vielmehr ist es so, daß sich eigentlich beliebige Datenquellen hinter einer solchen Schnittstelle verbergen können, die lediglich für die Anwendung auf der anderen Seite der Schnittstelle aussehen wie eine Datenbank.
Damit heißt das, mit einer bestimmten Komponente, die die JDBC-Schnittstelle implementiert, kann man CSV-Dateien wie Datenbank-Tabellen behandeln.
Andere Tools
Es existieren bereits Werkzeuge, die die Bearbeitung von CSV-Dateien als Datenbank-Tabellen erlauben:
Diese Werkzeuge unterscheiden sich alle in der Art und Weise der Behandlung der Dateien, da sie alle unterschiedlichen Zwecken dienen sollte. Beispielsweise existieren Varianten, die lediglich rudimentäre Read-Only-Funktionalität anbieten, andere wiederum gehen so weit, daß die Dateien als wirkliche Tabellen aufgefaßt werden und sogar Daten in ihnen verändert und die Daten in ihnen per Join in SELECT-Anweisungen verknüpft werden können. Keines der Tools jedoch stellt genau die Funktionalität zur Verfügung, die für unsere Zwecke ideal war.
Szenario/Features
Das vorliegende Problemfeld läßt sich mit einfachen Worten zusammenfassen: In unserem Hause wurde eine Anwendung entwickelt, die es unter anderem erlaubt, Datenbanken von einem DBMS in ein anderes zu überführen.
Da die Behandlung von CSV-Dateien trotz der breiten Tool-Palette den Umfang der SQL-Unterstützung betreffend immer unvollständig ist, entstand die Idee, einen JDBC-Treiber zu benutzen, um die Dateien zunächst in die Anwendung einzubinden. Anschließen kann ein Export durchgeführt werden und dieser Export in ein echtes SQL-DBMS importiert werden. In diesem DBMS können die Daten dann mit der vollen Palette der SQL-Sprache bearbeitet werden.
Um dieses Export/Import-Szenario realisieren zu können, ist es nötig, Namen und Typen für die Spalten in einer CSV-Datei festlegen zu können. Dies kann mit Einschränkungen auch bei den anderen genannten Tools erfolgen, jedoch ist es sehr umständlich, un besonders das Festlegen von Spaltentypen geschieht meist durch SQL-Anweisungen und ist nicht durch die Datei getrieben.

