Partage via


Parité des API OneLake et Azure Data Lake Storage (ADLS) Gen2

OneLake prend en charge les mêmes API qu’Azure Data Lake Storage (ADLS) Gen2, ce qui permet aux utilisateurs de lire, d’écrire et de gérer leurs données dans OneLake avec les outils dont ils se servent déjà. Étant donné que OneLake est un lac de données logique managé, certaines fonctionnalités sont gérées différemment que dans le Stockage Azure, et les comportements ne sont pas tous pris en charge sur OneLake. Cette page détaille ces différences, notamment les dossiers managés OneLake, les différences d’API et la compatibilité open source.

Dossiers OneLake managés

Les espaces de travail et les éléments de données de votre locataire Fabric définissent la structure de OneLake. La gestion des espaces de travail et des éléments est effectuée via les expériences Fabric - OneLake ne prend pas en charge la création, la mise à jour ou la suppression d’espaces de travail ou d’éléments via les API ADLS Gen2. OneLake autorise uniquement les appels HEAD au niveau de l’espace de travail (conteneur) et du locataire (compte), car vous devez apporter des modifications au locataire et aux espaces de travail dans le portail d’administration Fabric.

OneLake applique également une structure de dossiers pour les éléments Fabric, protégeant les éléments et leurs sous-dossiers managés de la création, de la suppression ou du renommage par le biais des API ADLS Gen2. Les dossiers gérés par Fabric incluent le dossier de niveau supérieur dans un élément (par exemple, /MyLakehouse.lakehouse) et le premier niveau de dossiers qu’il contient (par exemple, /MyLakehouse.lakehouse/Files et /MyLakehouse.lakehouse/Tables).

Vous pouvez effectuer des opérations CRUD sur n'importe quel dossier ou fichier créé dans ces dossiers gérés, et effectuer des opérations en lecture seule sur les dossiers de l'espace de travail et des éléments.

En-têtes et paramètres de requête non pris en charge

Même dans les fichiers et dossiers créés par l'utilisateur, OneLake restreint certaines opérations de gestion de la structure par le biais des API ADLS Gen2. Vous devez utiliser les expériences Fabric pour mettre à jour les autorisations ou modifier des éléments et des espaces de travail. Fabric gère les autres options telles que les niveaux d’accès.

OneLake accepte presque tous les mêmes en-têtes qu’ADLS Gen2 et ignore uniquement certains en-têtes relatifs aux actions non autorisées sur OneLake. Étant donné que ces en-têtes ne modifient pas le comportement de l’appel tout entier, OneLake ignore les en-têtes interdits, les retourne dans un nouvel en-tête de réponse « x-ms-rejected-headers » et autorise le reste de l’appel. Par exemple, OneLake ignore le paramètre « x-ms-owner » dans un appel PUT, car Fabric et OneLake n’ont pas le même concept de propriété d’utilisateurs que le Stockage Azure.

OneLake rejette les requêtes contenant des paramètres de requête non autorisés, car les paramètres de requête modifient le comportement de l’appel tout entier. Par exemple, les appels UPDATE avec le paramètre « setAccessControl » sont bloqués, car OneLake ne prend jamais en charge la définition du contrôle d’accès via les API du Stockage Azure.

OneLake n’autorise pas les comportements suivants, ni les en-têtes de requête et les paramètres d’URI associés :

  • Définir un contrôle d’accès
    • Paramètre d’URI :
      • action : setAccessControl (requête rejetée)
      • action : setAccessControlRecursive (requête rejetée)
    • En-têtes de requête :
      • x-ms-owner (en-tête ignoré)
      • x-ms-group (en-tête ignoré)
      • x-ms-permissions (en-tête ignoré)
      • x-ms-group (en-tête ignoré)
      • x-ms-acls (en-tête ignoré)
  • Définir l’étendue du chiffrement
    • En-têtes de requête :
      • x-ms-encryption-key (en-tête ignoré)
      • x-ms-encryption-key (en-tête ignoré)
      • x-ms-encryption-algorithm:AES256 (en-tête ignoré)
  • Définir le niveau d’accès
    • En-têtes de requête :
      • x-ms-access-tier (en-tête ignoré)

Différences d’en-tête de réponse

Étant donné que OneLake utilise un modèle de permission différent de celui d'ADLS Gen2, les en-têtes de réponse relatifs aux permissions sont traités différemment :

  • « x-ms-owner » et « x-ms-group » retournent toujours « $superuser », car OneLake n’a pas d’utilisateurs ni de groupes propriétaires
  • « x-ms-permissions » retourne toujours « --------- », car OneLake n’a pas d’utilisateurs ni de groupes propriétaires ni d’autorisations d’accès public
  • « x-ms-acl » retourne les autorisations Fabric pour l’utilisateur appelant converti en liste de contrôle d’accès (ACL) POSIX sous la forme « 'rwx »

Intégration open source

Étant donné que OneLake prend en charge les mêmes API qu’ADLS Gen2, un grand nombre de bibliothèques et de packages open source compatibles avec ADLS Gen2 fonctionnent de façon fluide avec OneLake. D’autres bibliothèques peuvent demander de petites mises à jour pour prendre en charge les points de terminaison OneLake ou d’autres problèmes de compatibilité. Les bibliothèques suivantes sont confirmées compatibles avec OneLake suite à des changements récents. Cette liste n’est pas exhaustive :

Exemples

Répertorier les éléments d’un espace de travail

GET https://onelake.dfs.fabric.microsoft.com/myWorkspace?resource=filesystem&recursive=false

Créer un dossier dans lakehouse

PUT https://onelake.dfs.fabric.microsoft.com/myWorkspace/myLakehouse.Lakehouse/Files/newFolder/?resource=directory