MySQL zu CSV – Aber richtig.

Die freie Verwaltungsoberfläche PHPMyAdmin beinhaltet für den einfachen “1zu1″-Export in CSV-Dateien eine simple Möglichkeit . Diese Möglichkeit wird oft dann genutzt, wenn die Daten oder ein Teil davon in eine weitere Datenbank, z.B. einer lokalen Softwarelösung, eingespielt werden müssen. Die Konfigurationen hierbei sind jedoch eingeschränkt und der CSV-Export über das PHPMyAdmin reicht mit dessen wenigen Parametern meist nicht aus.

Die Gründe dafür sind oft die selben, hier ein paar Beispiele: Spaltenbezeichnungen müssen anders lauten. Werte einzelner Datenfelder müssen syntaktisch oder logisch verändert werden. Boolische Werte wie 1 (wahr) und 0 (falsch) müssen zu J und N übersetzt werden. Es müssen neue Spalten in Abhängigkeit bestehender Werte erzeugt werden. Manche Datensätze sollen aufgrund eines Merkmals nicht mit exportiert werden. Der kurze Auszug zeigt, dass die Gründe hierfür nicht nur weitreichend sondern absolut individuell sind.

Ein weiterer Grund, auf den ich in einem zukünftigen Artikel noch näher eingehen möchte, sind Plattformen wie zum Beispiel Amazon, Google-Base, Yatego, Billiger.de etc. welche alle einen Import von CSV-Dateien anbieten. Diese Plattformen erwarten eine exakte Einhaltung der vorgegebenen CSV-Struktur. Diese Struktur ist bei allen Plattform unterschiedlich und ein einfacher Export der Dateien über das PHPmyAdmin hilft hier nicht mehr aus. Viele Web-Applikationen wie z.B. CMS-Systeme oder Onlineshops bieten hierfür selbst oder durch Dritte vereinzelt Module an, um CSV-Dateien für eben solche Plattformen zu generieren.

Wer jedoch die Möglichkeit haben möchte alle Plattformen zu beliefern und vielleicht sogar eine individuelle Web-Applikation betreibt, für den gibt es auch hier eine geeignete Softwarelösung welche ich bereits in diesem Artikel angesprochen habe. Alle Anforderungen, die im zweiten Abschnitt dieses Artikels beispielhaft aufgezählt sind, werden damit damit erfüllt.

Nur noch eine Zentrale zum Verwalten aller Daten

Die Erfahrung zeigt es, dass viele Unternehmen und Privatpersonen Ihre Daten doppelt und teilweise sogar dreifach Pflegen. Diese Begebenheit und die damit verbundenen Schwierigkeiten möchten wir an einem einfachen Beispiel darstellen:

Herr Mustermann ist Antiquitätenhändler. Sein Kerngeschäft ist es antike Möbelstücke über seine Online-Verkaufsplattform, welche eigens für ihn entwickelt wurde, zu verkaufen. Seine Artikel mit den Basis-Informationen über den Bestand, Hersteller, Preis und den brachenspezifischen Daten wie Zustand sowie Produktionsjahr pflegt er in einer Warenwirtschafts-Software an seinem Computer. Hier schreibt Herr Mustermann ebenso seine Angebote sowie Rechnungen. Viele der Informationen zu seinem Artikelsortiment möchte er ebenfalls seinen Kunden und Interessenten auf seiner individuellen Verkaufsplattform im Internet anbieten. Der Antiquitätenhändler pflegt somit seine Daten doppelt, denn Bestandsveränderungen, Rabatte und Informationen über die Lieferbarkeit muss er sowohl in der Warenwirtschaftssoftware als auch in seinem Web-Portal für jeden Artikel pflegen. Das nimmt nicht nur viel Zeit in Anspruch, sondern verursacht Fehler und führt zu Differenzen zwischen seinen beiden Datenbanken auf seinem Computer und im Internet. Herr Mustermann hat sich erkundigt und weiß nun, dass seine lokale Software den Daten-Export in CSV-Dateien unterstützt. Mit der Datenschnittstelle „Navagio” (www.navagio.de) muss er sich nun nur noch um die Pflege der Daten auf seinem Computer kümmern. Der Datenabgleich mit seinem Web-Portal findet automatisiert im Hintergrund statt.

Dieses Beispiel lässt sich auf nahezu alle Bereiche anwenden in denen Daten, egal welcher Art, mehrfach für das Web gepflegt werden. Dabei spielt es keine Rolle ob die Daten im Internet in einer aufbereiteten und modifizierten Weise bereitstehen müssen oder die Daten mit unterschiedlichen Informationen interagieren sollen, sodass neue Daten entstehen. Mit einer individualisierbaren Schnittstelle ist all das kein Problem. Bei Navagio, dem Anbieter der individuellen Web-Schnittstelle, haben Sie stets einen zuverlässigen Partner sowie eine verständliche und dynamische Software die auch Ihr Internet-Portal anbindet.

Wann lohnt sich eine Schnittstelle für mein Web-Projekt?

Das Pflegen der Daten in einer Web-Datenbank kann mit der Hilfe des richtigen Werkzeugs sehr einfach sein und viel Zeit sparen. Mal eben 10000 Datensätze einlesen oder bestimmte Daten von mehreren tausend Datensätzen ändern – kein Problem. Wenn der zukünftige Einsatz einer Schnittstelle hinterfragt wird, so sollte man mindestens eine der folgenden drei Fragen mit ja beantworten können:

1. Werde ich in meinem Web-Projekt große Datenmengen pflegen?
2. Verwalte ich meine Daten ohnehin in einer externen Software?
3. Möchte ich bestimmten Benutzern anbieten Datensätze automatisiert einzulesen?

Handelt es sich bei Ihrem Web-Projekt um eine statische Webseite mit weniger als 25 Content-Seiten, so würde ich in Einzelfällen vom Einsatz einer Web-Schnittstelle abraten. Besonders dann, wenn der Inhalt sich nur geringfügung bzw. selten ändert, da eine solche Automatik ggf. überdimensioniert sein könnte. Ist das nicht der Fall, so stößt man spätestens dann, ohne eine Datenschnittstelle, recht schnell an seine Grenzen. Eine gute Software-Lösung haben wir im bereits kurz im Thema “Die eigene individuelle Web-Schnittstelle” vorgestellt.

Natürlich bietet der Einsatz einer solchen Software noch mehr. So kann man sich zum Beispiel individuell zusammengestellte Daten aus der Web-Datenbank heraus in eine CSV-Datei exportieren, um diese entweder händisch zu analysieren oder wiederrum in einer weiteren Software einzulesen. Wir werden diesen Vorteil in Zukunft in einem eigenen Thema näher beschreiben.

Die eigene individuelle Web-Schnittstelle

Amazon und eBay haben es, große Onlineshops auch. Wovon die Rede ist kann sich wohl jeder denken – eine Schnittstelle um automatisiert Daten an das Web-Portal oder den Onlineshop zu übermitteln. Auch den anderen Weg, nämlich große Datenmengen zu exportieren kann die Aufgabe einer solchen Schnittstelle sein. In den letzten Jahren haben Web-Schnittstellen stark an bedeutung zugenommen. Der Grund dafür ist ein immer vernetzteres Internet mit enormen Datenmengen. Firmen schließen Ihre Software-Lösungen direkt via. Online-Anbindung an Ihr eigens entwickeltes Webportal an.

Von “Individuallösungen” ist hier die Rede. Da kanns schonmal sehr schnell sehr teuer werden denkt man sich. Individual – das ist klar. Denn jedes Webportal, ob bekanntes System oder Eigenprogrammierung, besitzt eine andere Struktur. Dazu zählt die Datenbank-Struktur ebenso wie Funktionen und Prozesse die beim Einlesen oder Exportieren von Daten angesteuert werden. Doch seien Sie beruhigt: Eine individuelle Web-Schnittstelle muss nicht teuer sein, man muss nur wissen welche Software man einsetzt. Bei der Schnittstellen-Lösung “Navagio” z.B. lässt sich eine individuelle Web-Schnittstelle für jedes Web-Projekt realisieren. Die Software bietet eine vielseitige Schnittstellentechnik, die mit angepassten “Schablonen” an jede MySQL Datenbank angeschlossen werden kann. In späteren Artikeln werden wir genauer auf die Möglichkeiten und Funktionsweise dieser Software eingehen.

Als Resümee können wir festhalten, dass es heutzutage durchaus auch für kleinere Web-Projekte günstige, professionelle und unabhängige Schnittstellen-Lösungen gibt um komfortabel sowie schnell große Datenmengen auszutauschen.

Unterschied zwischen CSV- und XML-Dateien

Sowohl CSV als auch XML sind standartisierte Dateiformate die es ermöglichen Daten strukturiert zu speichern, weiterzugeben sowie in verschiedenen Software-Produkten einzulesen. Beide Formate werden plattformunabhängig unterstützt und sind sehr weit verbreitet.

Der primäre Unterschied besteht darin, dass eine XML-Datei die beinhalteten Daten strukturiert inklusive Abhängigkeiten darstellen kann. Somit kann jeder XML-Datensatz beliebig viele weitere abhängige und damit untergeordnete Datensätze enthalten. CSV-Dateien hingegen sind sehr simpel gestrickt, denn jeder Datensatz beherrscht innerhalb einer Datei keine Abhängigkeiten oder komplexe Zusammenhänge und trotzdem liegt CSV als Datei für den Datenaustausch ganz vorn.

CSV ist einfach, verständlich und die Speicherung der Daten belegt wenig Speicher. In allen Fällen, in denen die Struktur von CSV-Dateien ausreicht, ist das “(C)omma-(S)eparated (V)alues”-Format die richtige Wahl. Hierbei dürfen durchaus auch Abhängigkeiten zwischen ein oder mehreren unterschiedlichen CSV-Dateien via Verbindungsmermalen, z.B. über eine ID, existieren und in einem intelligenten Import berücksichtigt werden.