2017-06-28 4 views
1

J'utilise Azure Data Lake Store (ADLS), ciblé par un pipeline Azure Data Factory (ADF) qui lit à partir de Blob Storage et écrit dans ADLS. Au cours de l'exécution, je remarque qu'il existe un dossier créé dans l'ADLS de sortie qui n'existe pas dans les données sources. Le dossier contient un GUID pour un nom et de nombreux fichiers, ainsi que des GUID. Le dossier est temporaire et après environ 30 secondes il disparaît.Azure Data Lake Storage et Data Factory - dossiers et fichiers GUID temporaires

Est-ce que cela fait partie de l'indexation des métadonnées ADLS? Est-ce quelque chose utilisé par ADF pendant le traitement? Bien qu'il apparaisse dans l'Explorateur de données du portail, est-il visible dans l'API? Je crains que cela ne crée des problèmes, même si c'est une structure temporaire.

Un aperçu apprécié - un Google a peu augmenté.

Picture of the transient folder

Répondre

1

Alors, que votre voyant ici est quelque chose qui Azure lac de stockage des données ne quelle que soit la méthode utilisée pour télécharger et copier des données en elle. Ce n'est pas spécifique à Data Factory et pas quelque chose que vous pouvez contrôler.

Pour les fichiers volumineux, il s'agit essentiellement de paralléliser l'opération de lecture/écriture pour un seul fichier. Vous obtenez ensuite plusieurs fichiers plus petits apparaissant dans le répertoire temporaire pour chaque thread de l'opération parallèle. Une fois terminé, le processus concatène les threads dans le fichier de destination unique attendu.

Comparaison: ceci est similaire à ce que PolyBase fait dans SQLDW avec ses 8 lecteurs externes qui atteignent un fichier en blocs de 512 Mo.

Je comprends vos préoccupations ici. J'ai également fait la bataille avec ceci où par l'opération échoue et ne nettoie pas les fichiers temporaires. Mon conseil serait d'être explicite avec vous les services en aval lors de la spécification du chemin du fichier cible.

Une autre chose, j'ai eu des problèmes lors de l'utilisation de l'outil d'exploration de fichiers Visual Studio Data Lake pour faire des téléchargements de fichiers volumineux. Parfois, les threads parallèles n'ont pas concaténé correctement dans le single et ont causé une corruption dans mon jeu de données structuré. C'était avec des fichiers dans la région 4 - 8GB. Être averti!

Note latérale. J'ai trouvé PowerShell plus fiable pour gérer les téléchargements dans Data Lake Store.

Espérons que cela aide.

+0

Merci Paul - J'ai creusé plus profondément et testé avec une charge élevée et moi aussi je vois des fichiers temporaires qui ne sont pas nettoyés. Je suis explicite lorsque cela est possible, mais cela n'est pas possible avec un travail Azure Data Factory (sans créer d'activité personnalisée). –

+1

En effet, j'ai envisagé d'écrire moi-même une activité nettoyeuse personnalisée plusieurs fois pour gérer cela. Comme je ne suis plus seul, je l'ai créé en tant qu'article de commentaires vocaux, s'il vous plaît, votez. Merci https://feedback.azure.com/forums/327234-data-lake/suggestions/19799794-orphaned-temporary-file-auto-clean-up-operation –

+0

J'ai aussi eu exactement la même pensée (pour créer un activité de nettoyage) mais construit la solution idempotent à la place. Peut-être qu'une petite activité personnalisée de nettoyage qui nuke juste des dossiers de GUID serait idéale ... –