2016-04-26 18 views
0

Ich möchte einen Job mit Talend erstellen, der mehrere xls-Dateien in eine MySQL-Datenbank importiert. Ich kenne das Schema dieser Dateien (Anzahl der Spalten und Namen) nicht, aber ich kann annehmen, dass die Kopfzeile den Spaltennamen entspricht. Meine Idee ist es, einen Ordner für jedes xls-Schema zu erstellen, das die xls-Dateien und eine Konfigurationsdatei enthält (beschreibt das Schema und die Zuordnung zur mySQL-Tabelle). Alle xls-Dateien müssen einer einzelnen Tabelle zugeordnet werden, die bereits existiert. Ich frage mich, ob dies mit Talend Open Studio machbar ist? Jede andere Lösung ist mehr als willkommen.dynamisches Schema xls-Datei in mysql-Datenbank

+0

Sind die Namen der Tabellenspalten die gleichen über das Schema. Ich mein, ist die Spalte "xxXXyyKK" auch die gleichen Daten in der Spalte "xxXXyyKK" von einem anderen Schema – user853710

+0

nicht unbedingt. –

Antwort

0

Es gibt eine Komponente auf der Talend Exchange, die Sie dafür verwenden könnten. Die Komponente ist für Excel spezifisch, weil sie nicht auf einem festen Schema basiert (wie Talend für verwendet wird) und funktioniert, indem sie Reihe für Reihe liest, aber es ist Zelle basiert und liest Zelle für Zelle.

Was ich tun würde, ist eine Arbeit zu haben, um das Schema zu identifizieren, und abhängig davon würde verschiedene einfügen Anfragen. Ich würde nicht für jedes Schema einen Job haben, sondern für alle denselben Job haben.

1. First job would go cell by cell through the first row (containing the header names) and populate them into a flow. (Row:1, Column:B, Value: "FullName") 
2. second part of the job would be to go through cell by cell for the values and get them in a Key-Value way (Row:3, Column:B, Value: "Peter Jackson") into another flow 
3. Denormalising the second flow could give you all of the values int the same Excel row. 
4. A tMap woud give you the possibility to exchange the Column B with the Fullname attribute and have a concatenation going on that would give you the insert statement. 

So würde ich es angehen. Es würde ungefähr eine Stunde oder zwei dauern, um es zu tun, aber sollte machbar sein

+0

Ok. Aber ich brauche eine externe Konfigurationsdatei, die die Eingabe- und Ausgabespalte spezifiziert. Zum Beispiel, wenn ich eine xls-Datei mit drei Spalten (Name, Alter, Geschlecht) und eine Konfigurationsdatei, die angibt, dass die "Name" Spalte dieser Datei "Benutzer" Spalte meiner Tabelle zugeordnet werden soll, kann die Tmap-Komponente lade das dynamisch? –

+0

Nun, der erste Schritt besteht darin, die Spaltennamen zu laden, dort könnte man irgendeine andere Konfiguration ziehen und sie nach Namen abgleichen und ändern, was immer Sie brauchen. Nennen Sie es Schritt 1.1. Wenn Sie keine Spalte verwenden möchten, würden Sie sie einfach aus der Konfiguration herauslassen und sie würde nicht mit dem Fluss in Schritt 1 übereinstimmen. Wenn Sie sich dem Fluss aus Schritt 2 anschließen, werden nur die gewünschten Daten aufgelöst wird verarbeitet. Ich sehe kein Problem. – user853710

+0

Wenn Sie irgendwelche Probleme haben, bitten Sie Ihren Chef, mich für ein paar Stunden als Berater einzustellen. ;) – user853710