OneLake und Azure Data Lake Storage (ADLS) Gen2-API-Parität
OneLake unterstützt dieselben APIs wie Azure Data Lake Storage (ADLS) Gen2, sodass Benutzer ihre Daten in OneLake mit den Tools lesen, schreiben und verwalten können, die sie heute schon verwenden. Da OneLake ein verwalteter, logischer Data Lake ist, werden einige Features anders verwaltet als in Azure Storage, und nicht alle Verhaltensweisen werden über OneLake unterstützt. Auf dieser Seite werden diese Unterschiede erläutert, einschließlich verwalteter OneLake-Ordner, API-Unterschiede und Open Source-Kompatibilität.
Verwaltete OneLake-Ordner
Die Arbeitsbereiche und Datenelemente in Ihrem Fabric-Mandanten definieren die Struktur von OneLake. Das Verwalten von Arbeitsbereichen und Elementen erfolgt über Fabric-Erfahrungen – OneLake unterstützt nicht das Erstellen, Aktualisieren oder Löschen von Arbeitsbereichen oder Elementen über die ADLS Gen2-APIs. OneLake lässt HEAD-Aufrufe nur auf Ebene des Arbeitsbereichs (Container) und des Mandanten (Konto) zu, da Sie Änderungen an den Mandanten und Arbeitsbereichen im Fabric-Verwaltungsportal vornehmen müssen.
OneLake erzwingt auch eine Ordnerstruktur für Fabric-Elemente und schützt Elemente und ihre verwalteten Unterordner vor dem Erstellen, Löschen oder Umbenennen über ADLS Gen2-APIs. Von Fabric verwaltete Ordner umfassen den Ordner auf oberster Ebene in einem Element (z. B. /MyLakehouse.lakehouse) und die erste Ordnerebene darin (z. B. /MyLakehouse.lakehouse/Files und /MyLakehouse.lakehouse/Tables).
Sie können CRUD-Vorgänge für alle Ordner oder Dateien ausführen, die in diesen verwalteten Ordnern erstellt wurden, und schreibgeschützte Vorgänge für Arbeitsbereichs- und Elementordner ausführen.
Nicht unterstützte Anforderungsheader und -parameter
Selbst in vom Benutzer erstellten Dateien und Ordnern schränkt OneLake einige Fabric-Verwaltungsvorgänge über ADLS Gen2-APIs ein. Sie müssen Fabric-Erfahrungen verwenden, um Berechtigungen zu aktualisieren oder Elemente und Arbeitsbereiche zu bearbeiten, und Fabric verwaltet andere Optionen wie z. B. Zugriffsebenen.
OneLake akzeptiert fast alle gleichen Header wie ADLS Gen2, wobei nur einige Header ignoriert werden, die sich auf nicht zugelassene Aktionen in OneLake beziehen. Da diese Header nicht das Verhalten des gesamten Aufrufs ändern, ignoriert OneLake die gesperrten Header, gibt sie in einem neuen Antwortheader „x-ms-rejected-headers“ zurück und lässt den Rest des Aufrufs zu. Beispielsweise ignoriert OneLake den Parameter „x-ms-owner“ in einem PUT-Aufruf, da Fabric und OneLake nicht dasselbe Konzept für den Besitz von Benutzern haben wie Azure Storage.
OneLake lehnt Anforderungen ab, die nicht zulässige Abfrageparameter enthalten, da Abfrageparameter das Verhalten des gesamten Aufrufs ändern. Beispielsweise werden UPDATE-Aufrufe mit dem Parameter „setAccessControl“ blockiert, da OneLake nie das Festlegen der Zugriffssteuerung über Azure Storage-APIs unterstützt.
OneLake lässt die folgenden Verhaltensweisen und die zugehörigen Anforderungsheader und URI-Parameter nicht zu:
- Festlegen der Zugriffssteuerung
- URI-Parameter:
- action: setAccessControl (Anforderung abgelehnt)
- action: setAccessControlRecursive (Anforderung abgelehnt)
- Anforderungsheader:
- x-ms-owner (Header ignoriert)
- x-ms-group (Header ignoriert)
- x-ms-permissions (Header ignoriert)
- x-ms-group (Header ignoriert)
- x-ms-acls (Header ignoriert)
- URI-Parameter:
- Festlegen des Verschlüsselungsbereichs
- Anforderungsheader:
- x-ms-encryption-key (Header ignoriert)
- x-ms-encryption-key (Header ignoriert)
- x-ms-encryption-algorithm:AES256 (Header ignoriert)
- Anforderungsheader:
- Festlegen der Zugriffsebene
- Anforderungsheader:
- x-ms-access-tier (Header ignoriert)
- Anforderungsheader:
Unterschiede hinsichtlich des Antwortheaders
Da OneLake ein anderes Berechtigungsmodell als ADLS Gen2 verwendet, werden Antwortheader im Zusammenhang mit Berechtigungen unterschiedlich behandelt:
- „x-ms-owner“ und „x-ms-group“ geben immer „$superuser“ zurück, da es in OneLake keine besitzenden Benutzer oder Gruppen gibt
- "x-ms-permissions" gibt immer "---------" zurück, da OneLake keine eigenen Benutzer, Gruppen oder öffentliche Zugriffsberechtigungen besitzt
- „x-ms-acl“ gibt die Fabric-Berechtigungen für die aufrufenden Benutzer zurück, die in eine POSIX-Zugriffssteuerungsliste (Access Control List, ACL) im Format „rwx“ konvertiert wurden
Open-Source-Integration
Da OneLake dieselben APIs wie ADLS Gen2 unterstützt, funktionieren viele Open-Source-Bibliotheken und -Pakete, die mit ADLS Gen2 kompatibel sind, nahtlos mit OneLake. Andere Bibliotheken erfordern möglicherweise kleine Updates, um OneLake-Endpunkte oder andere Kompatibilitätsprobleme zu berücksichtigen. Die folgenden Bibliotheken sind aufgrund aktueller Änderungen als kompatibel mit OneLake bestätigt. Die Liste ist nicht vollständig:
Beispiele
Auflisten von Elementen in einem Arbeitsbereich
GET https://onelake.dfs.fabric.microsoft.com/myWorkspace?resource=filesystem&recursive=false
Erstellen eines Ordners in einem Lakehouse
PUT https://onelake.dfs.fabric.microsoft.com/myWorkspace/myLakehouse.Lakehouse/Files/newFolder/?resource=directory