Problèmes connus avec Azure Data Lake Storage

Cet article décrit les problèmes connus et les limitations de Azure Data Lake Storage pour les comptes sur utilisant la fonctionnalité d’espace de noms hiérarchique activée. Utilisez ces informations pour gérer vos flux de travail de données et éviter les pièges potentiels lors de l’utilisation de diverses API et intégrations.

Remarque

Certaines des fonctionnalités décrites dans cet article peuvent ne pas être prises en charge dans les comptes pour lesquels la prise en charge du Système de fichiers réseau (NFS) 3.0 est activée. Pour afficher un tableau indiquant l’incidence de la prise en charge des fonctionnalités lorsque différentes capacités sont activées, consultez Prise en charge des fonctionnalités de Stockage Blob dans les comptes de stockage Azure.

Prise en charge des fonctionnalités, des services et de la plateforme

La plupart des fonctionnalités de stockage d’objets blob, des intégrations de service Azure et des plateformes open source sont prises en charge dans les comptes qui ont un espace de noms hiérarchique. Pour obtenir des listes complètes, consultez :

APIs de stockage Blob

Les API Data Lake Storage, NFS 3.0 et les API d’objets Blob peuvent utiliser les mêmes données.

Cette section décrit les problèmes et les limitations liés à l’utilisation des API d’objets Blob, de NFS 3.0 et des API Data Lake Storage pour fonctionner sur les mêmes données.

  • Vous ne pouvez pas utiliser les API d’objet Blob, NFS 3.0 et les API Data Lake Storage pour écrire dans la même instance d’un fichier. Si vous écrivez dans un fichier à l'aide de Data Lake Storage API ou NFS 3.0, les blocs de ce fichier ne sont pas visibles pour les appels à l'API d'objet blob Get Block List. La seule exception est quand vous effectuez un remplacement. Vous pouvez remplacer un fichier ou un objet blob en utilisant l’API ou NFS 3.0 avec l’option de troncation à zéro (une opération de type POSIX qui tronque le fichier à zéro octet avant l’écriture).

    Vous ne pouvez pas remplacer les objets blob créés à l'aide d'une opération de Data Lake Storage telle que l'opération Path - Create à l'aide des opérations PutBlock ou PutBlockList. Toutefois, vous pouvez remplacer ces objets blob à l’aide d’une opération PutBlob , sous réserve de la taille maximale autorisée d’objet blob imposée par la version d’API correspondante utilisée par PutBlob.

  • Quand vous utilisez l’opération Lister les objets Blob sans spécifier de délimiteur, les résultats incluent à la fois des répertoires et des objets Blob. Si vous choisissez d’utiliser un délimiteur, utilisez uniquement une barre oblique droite (/). Il s’agit du seul délimiteur pris en charge.

  • Si vous utilisez l’API Delete Blob pour supprimer un répertoire, le répertoire est supprimé uniquement s’il est vide. Cette condition signifie que vous ne pouvez pas utiliser l’API Blob pour supprimer des répertoires de manière récursive.

Ces API REST BLOB ne sont pas prises en charge :

Les disques de machine virtuelle non managés ne sont pas pris en charge dans les comptes qui ont un espace de noms hiérarchique. Si vous souhaitez activer un espace de noms hiérarchique sur un compte de stockage, placez les disques de machine virtuelle non gérés dans un compte de stockage pour lequel la fonctionnalité espace de noms hiérarchique n’est pas activée.

Prise en charge de la définition des listes de contrôle d’accès (ACL) de manière récursive dans Azure Data Lake Storage

La possibilité d’appliquer de façon récursive les modifications d’ACL d’un répertoire parent à ses éléments enfants est désormais disponible de manière générale. Dans la version actuelle de cette fonctionnalité, vous pouvez appliquer des modifications de liste de contrôle d’accès à l’aide de kits sdk Explorateur Stockage Azure, PowerShell, Azure CLI et .NET, Java, Python et Node.js. La prise en charge n’est pas encore disponible pour le portail Azure.

Listes de contrôle d’accès (ACL) et accès en lecture anonyme

Si l’accès en lecture anonyme est accordé à un conteneur, les listes de contrôle d’accès n’ont aucun effet sur ce conteneur ou les fichiers de ce conteneur. Cette restriction affecte uniquement les demandes de lecture. Les demandes d’écriture continuent de respecter les listes de contrôle d’accès. Exiger une autorisation pour toutes les requêtes adressées aux données blob.

Points de terminaison privés pour Azure Data Lake Storage

Si vous utilisez des points de terminaison privés pour accéder à Azure Data Lake Storage (un compte de stockage avec espace de noms hiérarchique activé), vous devez en créer un pour les sous-ressources blob et dfs. Les opérations qui ciblent le point de terminaison Data Lake Storage (dfs) peuvent être redirigées vers le point de terminaison Blob, et certaines opérations (telles que la gestion des ACL, la création de répertoires et la suppression de répertoires) nécessitent un point de terminaison privé DFS. La création de points de terminaison privés pour les deux sous-ressources garantit que toutes les opérations se terminent correctement. Pour plus d’informations, consultez Utiliser des points de terminaison privés pour stockage Azure.

AzCopy avec Azure Data Lake Storage

Lorsque vous utilisez AzCopy avec des comptes avec un espace de noms hiérarchique activé, seul AzCopy v10 prend en charge les API de Data Lake Storage requises. Utilisez uniquement la dernière version d’AzCopy (AzCopy v10). Les versions antérieures, telles que AzCopy v8.1, ne sont pas prises en charge.

Explorateur Stockage Azure avec Azure Data Lake Storage

Lorsque vous utilisez Explorateur Stockage Azure avec des comptes de stockage pour lesquels un espace de noms hiérarchique est activé, utilisez uniquement la version 1.6.0 ou une version ultérieure. Les versions antérieures ne prennent pas en charge les API d’espace de noms hiérarchiques requises pour gérer les fichiers et les répertoires.

Navigateur de stockage dans le portail Azure

Dans le navigateur de stockage qui apparaît dans le portail Azure, vous ne pouvez pas accéder à un fichier ou dossier en spécifiant un chemin. Vous devez plutôt parcourir les dossiers pour atteindre un fichier. Par conséquent, si une liste de contrôle d’accès utilisateur accorde à un utilisateur un accès en lecture à un fichier, mais pas l’accès en lecture à tous les dossiers menant au fichier, cet utilisateur ne peut pas afficher le fichier dans le navigateur de stockage.

Applications tierces

Les applications tierces qui utilisent des API REST fonctionnent toujours si vous les utilisez avec Data Lake Storage. Les applications qui appellent des API Blob sont susceptibles de fonctionner.

Pilote Windows stockage Azure Blob (WASB)

Actuellement, le pilote WASB, qui a été conçu pour fonctionner avec l’API Blob uniquement, rencontre des problèmes dans quelques scénarios courants. Plus précisément, lorsqu’il s’agit d’un client se connectant à un compte de stockage avec espace de noms hiérarchique activé. L'accès multi-protocole sur Data Lake Storage n'atténue pas ces problèmes.

L’utilisation du pilote WASB comme client pour un compte de stockage avec espace de noms hiérarchique activé n’est pas prise en charge. Utilisez plutôt le pilote Azure Blob File System (ABFS) dans votre environnement Hadoop. Si vous essayez de migrer hors d'un environnement Hadoop local avec une version antérieure à Hadoop Branch-3, ouvrez un ticket de support Azure pour déterminer le chemin d'accès approprié pour votre organisation.

Suppression réversible des blobs dans Azure Data Lake Storage

Dans les comptes de stockage disposant d’un espace de noms hiérarchique, si vous renommez des répertoires parents de fichiers ou de répertoires supprimés de manière réversible, le portail Azure risque de ne pas afficher correctement ces éléments supprimés de manière réversible. Dans ce cas, utilisez PowerShell ou Azure CLI pour restaurer les éléments supprimés de manière conditionnelle.

Abonnements aux événements dans Azure Data Lake Storage

Dans les comptes de stockage qui ont un espace de noms hiérarchique, si votre compte possède un abonnement aux événements, les opérations de lecture sur le point de terminaison secondaire (réplica en lecture seule dans les comptes de stockage géoredondants) entraînent une erreur. Pour résoudre ce problème, supprimez les abonnements aux événements. L’utilisation du point de terminaison Data Lake Storage (abfss://URI) pour les comptes avec espace de noms non hiérarchique activé ne génère pas d’événements, mais le point de terminaison Blob (wasb:// URI) en génère.

Conseil

L’accès en lecture au point de terminaison secondaire est disponible uniquement lorsque vous activez le stockage géo-redondant avec accès en lecture (RA-GRS) ou le stockage géo-zone-redondant avec accès en lecture (RA-GZRS).