Ein knackiger und kompakter Überblick auf die...

Read more

Auch am dritten Tag gab es interessante...

Read more

Die großen Ankündigungen aus dem ersten Tag...

Read more

Keynote - Stand der Integration - Jon Fancey:...

Read more

Integrieren Sie noch oder managen Sie bereits den...

Read more

Inwieweit lassen sich vorhandene BizTalk Lösungen...

Read more

Wie kann ein Prozess Monitoring einfach und...

Read more

Führende Veranstaltung rund um Connectivity auf...

Read more

Stellenanzeige: Wir suchen dringend an unserem...

Read more

How-to: Unzip Big Data auf dem Azure Fileshare –Part 1

Anforderung: Vor kurzem hatte ich die Anforderung 7z-Archive auf dem Azure Fileshare zu unzippen. Es gab also ein Source-Folder, in dem alle zu entpackenden 7z-Archive und auch andere Dateien lagen.

Um den Überblick nicht zu verlieren waren die Archive unter bestimmten Kundenordnern abgelegt.

Source-Folder Struktur: Data\Kunde

Es sollten nun also alle Archive aus den Dateien gefiltert, entpackt und in den Target Folder gespeichert werden.

TargetFolder Struktur: Unzipped\Kunde

Ebenfalls wichtig zu wissen ist, dass es sehr große Archive waren, die in mehrere Teile aufgeteilt wurden und manchmal mit Passwörtern gesichert waren.

Entpackvorgang, wenn alle Dateien vorhanden:

Entpackvorgang, wenn Dateien fehlen:

Also suchte ich nach einem Framework, das mir genau diese Funktionen bietet…
Ich stieß auf das Framework „SevenZipSharp“ von SquidBox.
Mein erster Test bestand daraus, dass ich versucht lokal einzelnes Archiv, so wie ein großes Archiv das in Teile gesplittet war zu entpacken. Das funktioniert ohne Probleme!

Es wurde also ein SevenZipExtractor erzeugt. Als Übergabeparameter musste der Pfad des Archivs und das Passwort übergeben werden. Beim ExtractArchive werden alle zugehörigen Dateien in den Zielpfad extrahiert.
Im nächsten Schritt sollten also die Dateien vom einen Fileshare-Ordner in den anderen entpackt werden. Um Zugriff auf den Fileshare zu bekommen, nutzte ich das Azure Storage Files Shares Framework. Da man an die Dateien des Fileshares nur anhand eines Streams herankommt, suchte ich im SevenZipSharp Framework nach einer Methode, die genau die gleichen Funktionen bietet, wie beim lokalen Extrahieren.
Ich suchte und suchte und suchte…
Also war Testing angesagt…
Wir versuchten einige Dinge, wie z. B. den UNC Pfad der Datei zu nutzen, oder den Fileshare als Netzlaufwerk einzubinden. Doch nichts funktionierte.
Wir kamen zu dem Entschluss, dass nichts daran vorbeiführt, die Dateien herunterzuladen und diese lokal auf der Maschine, auf der die Azure Function ausgeführt wird, zu entpacken und wieder hochzuladen. Der Workaround sah also folgendermaßen aus:


Als die Funktionalität der Azure Function dafür fertiggestellt war, wurde sie zum finalen Test Deployed und ausgeführt.
Nach fünf Minuten endete die Function im Timeout…
Auch das Erhöhen des Timeouts auf 10 Minuten änderte nichts.
Wie wir das Problem mit dem Timeout gelöst haben, könnt ihr im nächsten Part lesen.
 

Dieser quiTeq-Tipp ist von Nico, QUIBIQ Stuttgart.

© QUIBIQ GmbH · Imprint · Data protection