Hallo, Gast!

- Anmelden
- Registrieren

Neuigkeiten!
Willkommen zum ersten deutschspachigen Forum rund um die Open Source Softwarelösungen der Firma Talend. Dieses Forum ist fü alle Anwender die Fragen und/oder Antworten zum Thema Talend haben oder suchen.


Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Importieren von Daten
14.04.2010, 11:55
Beitrag: #1
Importieren von Daten
Hallo Zusammen,

ich bin Neuling auf dem Gebiet und ich/wir wollen unsere Prozesse gerne durch talend vereinfachen und automatisieren.

Was ich möchte:
Zuerst einmal möchte ich ein .bz2-Archiv in talend importieren ... dieses soll zudem in regelmäßigen (am Besten automatisiert) Abständen aus dem Internet heruntergeladen werden. Aus dem entpackten Archiv ergeben sich einige csv und xml-Dateien, mit denen talend dann weiterarbeiten soll.
Ist so etwas grundsätzlich möglich? Wenn ja mit welchen Talend-Begriffen sollte ich mich auseinandersetzen?

Liebe Grüße & Vielen Dank!
Alex
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.04.2010, 08:06
Beitrag: #2
RE: Importieren von Daten
Hallo Alex,
vorab kann ich sagen, dass es sich bei der Anforderung um einen „fast“ Standard-Workflow handelt. D.h. es ist mit Talend umsetzbar.
1. Für den Internet-Zugriff entweder mittels tFTPGet oder tFileFetch das Archiv in ein Verzeichnis laden.
2. Den Namen des Archivs an tFileUnarchive weitergeben und in ein Verzeichnis extrahieren lassen.
3. Den Inhalt des entpackten Directoires mittels tFileList an einen tFileInputDelimited oder tFileInputXML weitergeben(Iterativ) und z.B. über einen t<DB>Input in die Datenbank schreiben.
Das Scheduling muss bei TOS aber über einen CRON oder den Windows-Scheduler autark(manuell) erfolgen. Alternativ kann der Prozess aber auch in einzelne SubProzess aufgeteilt und über einen Gesamt-Job aufgerufen werden.

Martin


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.04.2010, 12:04 (Dieser Beitrag wurde zuletzt bearbeitet: 16.04.2010 16:15 von Alexander_.)
Beitrag: #3
RE: Importieren von Daten
Hallo Martin,

erstmal vielen Dank für die Antwort - das hört sich schonmal sehr gut an. Bin gerade dabei das umzusetzen, nur wie kann ich denn nur bestimmte Dateien des entpackten Archives auswählen? Also das Archiv enthält 10 dateien, ich benötige aber nur 2 die ich an eine DB weitergeben will.

Ich hab diese beiden Dateien schonmal manuell mit einer tFileInputdelimted und tFileInputXML importiert - allerdings hab ich ein problem mit dem schema der XML-Datei - der gibt mir nur ein Schema wenn ich das Feld Limit von 0 hochsetze, aber dann überspringt er mir den 3.Arbeitsschritt und kann so nichts auswählen ...

Update:
Und jetzt bekomm ich beim ersten Schritt Fetch -> Unarchive immer diesen Fehler: http://www.talendforge.org/forum/viewtopic.php?id=1359 - dort steht, dass der wohl in der Version 2.2 oder so verbessert wurde - aber ich benutz 3.2.3 und der kommt...

LG
alex
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.04.2010, 14:45
Beitrag: #4
RE: Importieren von Daten
Vom Ablauf muss das Archiv erst komplett extrahiert werden. Diese geschieht über den tFileUnarchive. Nachdem dieser Prozess abgeschlossen ist, kann über einen tFileList eine Einschränkung auf die relevanten Dateien vorgenommen werden. Die Dateinamen werden anschliessend inkl. Pfad dann an eine FileInput-Komponente weitergeben. Vermutlich hat in der Entwicklungsabteilung wieder jemmand geschlafen!?

Der anhängende Prozess holt sich die Datei http://talendforum.de/uploads/DemoFileFetch.tar.gz, extrahiert den Inhalt komplett in ein Verzeichnis und führt anschliessend eine Vertrabeitung mittels tFileList durch.
   

Der Prozess wurde mit 4.0 erstellt und kann über Import-Items (dritter Button-Menuleiste) importiert werden. !Der Prozess verwendet Kontext-Variablen! Ich habe zur Einfachheit diese über einen Prompt realisiert.

Beim XML-Input bitte den Wert -1 verwenden. Dieser hebt die Limitierung komplett auf. ;-) Der Wert kann aber auch anschliessend im Prozess selbst umgesetzt werden.


Angehängte Datei(en)
.zip  FileFetchUnpackIterate.zip (Größe: 63,5 KB / Downloads: 46)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.04.2010, 11:26
Beitrag: #5
RE: Importieren von Daten
Hi Martin,

also ich bekomme immer bei tFileUnarchive folgenden Fehler:

Code:
Exception in component tFileUnarchive_1
java.io.IOException: Negative seek offset
    at java.io.RandomAccessFile.seek(Native Method)
    at org.apache.tools.zip.ZipFile.positionAtCentralDirectory(ZipFile.java:365)
    at org.apache.tools.zip.ZipFile.populateFromCentralDirectory(ZipFile.java:243)
    at org.apache.tools.zip.ZipFile.<init>(ZipFile.java:142)
    at org.apache.tools.zip.ZipFile.<init>(ZipFile.java:113)
    at simplewiki.simplewiki_import_0_1.simplewiki_import.tFileUnarchive_1Process(simplewiki_import.java:559)
    at simplewiki.simplewiki_import_0_1.simplewiki_import.tFileFetch_1Process(simplewiki_import.java:351)
    at simplewiki.simplewiki_import_0_1.simplewiki_import.runJobInTOS(simplewiki_import.java:797)
    at simplewiki.simplewiki_import_0_1.simplewiki_import.main(simplewiki_import.java:671)

Es gab wohl schon mal diesen Fehler http://www.talendforge.org/forum/viewtopic.php?id=1359 - aber bekomm ihn jetzt auch mit der 4.0 -Version.
Weiß aber nicht so Recht woran das liegt ...

lg
alex
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.04.2010, 07:41
Beitrag: #6
RE: Importieren von Daten
Hi Alex,

kannst Du mir bitte folgende Punkte beantworten?
1. Auf welchem OS läuft Talend (Linux, Solaris, Windows)?
2. Handelt es sich hierbei um den Demo-Job(vorhergehender Post)?
3. Gibt es die Notwendigkeit mit einem tFileList in den tFileUnarchive zu gehen?

Leider kann ich den Fehler nicht reproduzieren. Alternativ bitte versuchen ob evtl. ein Prozess mit einem Sub-Prozess funktionieren könnte. Hierbei ruft der tFileList nicht direkt den tFileUnarchive auf, sondern der tFileList startet einen weiteren Prozess (tRunJob) welcher über eine Kontext-Variable den Dateinamen mit Pfad übertragen bekommt und direkt den tFileUnarchive startet. Bitte auch testen ob der tFileList wirklich auch den richtigen Dateinamen überträgt (tFileList->tMsgBox oder tFileList->tJava).

Martin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.04.2010, 10:16
Beitrag: #7
RE: Importieren von Daten
Hi Martin,

1. Windows

2. Nein, es handelt sich um ein neu (lokal) erstelltes Projekt und Job, der eine vereinfachte und kleinere (der späteren) Datei herunterladen und extrahieren soll. Es handelt sich auch nicht um deine DemoFileFetch.tar.gz

3. Nein, es gibt dazu keine Notwendigkeit. Ich will eigentlich den Prozess von deinem ersten Post aufsetzen. Aufgrund der selben Fehlerbeschreibung habe ich nur diesen Link gesetzt.
Ich möchte von tFileFetch -> tFileUnarchive -> tFileList ... a.s.o.
Dieser im letzten Post erfolgte Fehler kommt aber schon bei Unarchive ... also der Subjob dorthin ist noch OK, danach erfolgt Error mit der im letzten Post zitierten Meldung.
Bei der Fehlersuche hab ich irgendwo mal gelesen, dass das mit zu großen history logs o.ä. zusammen hängen kann. Sagt dir das was?

lg
alex
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.04.2010, 13:32
Beitrag: #8
RE: Importieren von Daten
Hi Alex,

sieht so aus als ob die verwendete Apache-Library ein Problem mit großen *.tar.gz Dateien hat. In diesem Fall bleibt leider nur die Verwendung von tSystem im Prozess und das Extrahieren über die Command-Line durchzuführen. Ich habe hierfür den 7z verwendt. Leider konnte ich keinen einzelnen Aufruf für das Extrahieren finden, daher habe ich zwei tSystem hintereinander geschaltet. Der erste führt einen "unzip" und der zweite einen "untar" aus.

7z Unzip:
"cmd /c C:/Programme/7-Zip/7z e -tgzip h:/<name>.tar.gz -y -oh:/<temp>"

7z Untar:
"cmd /c C:/Programme/7-Zip/7z e -ttar h:/<temp>/<name>.tar -y -oh:/<temp>"

Sicherlich etwas Fummelei mit den jeweiligen Übergabeparametern aber der Prozess lässt sich hiermit umsetzen.

cu.
Martin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu: