OneLake és Azure Data Lake Storage (ADLS) API paritása
A OneLake ugyanazokat az API-kat támogatja, mint az Azure Data Lake Storage (ADLS) és az Azure Blob Storage, lehetővé téve a felhasználók számára az adataik olvasását, írását és kezelését a OneLake-ben a ma már használt eszközökkel. Mivel a OneLake egy felügyelt, logikai adattó, egyes funkciók kezelése másként történik, mint az Azure Storage-ban, és nem minden viselkedés támogatott a OneLake-en keresztül. Ez a lap részletesen ismerteti ezeket a különbségeket, beleértve a OneLake által felügyelt mappákat, az API-különbségeket és a nyílt forráskód kompatibilitást.
Felügyelt OneLake-mappák
A Fabric-bérlő munkaterületei és adatelemei határozzák meg a OneLake struktúráját. A munkaterületek és elemek kezelése a Fabric-szolgáltatásokon keresztül történik – a OneLake nem támogatja munkaterületek vagy elemek létrehozását, frissítését vagy törlését az ADLS API-kon keresztül. A OneLake csak a munkaterület (tároló) és a bérlő (fiók) szintjén engedélyezi a HEAD-hívásokat, mivel módosítania kell a bérlőt és a munkaterületeket a Háló felügyeleti portálján.
A OneLake emellett a Fabric-elemek mappastruktúráját is kikényszeríti, így védi az elemeket és a felügyelt almappákat az ADLS és Blob API-k használatával történő létrehozástól, törléstől vagy átnevezéstől. A hálóval felügyelt mappák közé tartozik egy elem legfelső szintű mappája (például /MyLakehouse.lakehouse) és a benne lévő mappák első szintje (például /MyLakehouse.lakehouse/Files és /MyLakehouse.lakehouse/Tables).
A CRUD-műveleteket az ezekben a felügyelt mappákban létrehozott bármely mappán vagy fájlon végrehajthatja, és írásvédett műveleteket hajthat végre a munkaterületen és az elemmappákon.
Nem támogatott kérelemfejlécek és paraméterek
A OneLake még a felhasználó által létrehozott fájlokban és mappákban is korlátozza a Fabric felügyeleti műveleteit az ADLS API-kkal. Az engedélyek frissítéséhez vagy az elemek és munkaterületek szerkesztéséhez Fabric-szolgáltatásokat kell használnia, a Fabric pedig más beállításokat, például hozzáférési szinteket kezel.
A OneLake szinte az összes fejlécet elfogadja a Storage-tal, figyelmen kívül hagyva a OneLake nem engedélyezett műveleteihez kapcsolódó fejléceket. Mivel ezek az élőfejek nem változtatják meg a teljes hívás viselkedését, a OneLake figyelmen kívül hagyja a tiltott fejléceket, visszaadja őket egy új "x-ms-rejected-headers" válaszfejlécben, és engedélyezi a hívás többi részét. A OneLake például figyelmen kívül hagyja az "x-ms-owner" paramétert egy PUT-hívásban, mivel a Fabric és a OneLake nem ugyanazzal a koncepcióval rendelkezik, mint az Azure Storage.
A OneLake elutasítja a nem engedélyezett lekérdezési paramétereket tartalmazó kérelmeket, mivel a lekérdezési paraméterek megváltoztatják a teljes hívás viselkedését. Például a setAccessControl paraméterrel rendelkező UPDATE-hívások le vannak tiltva, mivel a OneLake soha nem támogatja a hozzáférés-vezérlés beállítását az Azure Storage API-kkal.
A OneLake nem engedélyezi a következő viselkedéseket, valamint a hozzájuk tartozó kérésfejléceket és URI-paramétereket:
- Hozzáférés-vezérlés beállítása
- URI-paraméter:
- művelet: setAccessControl (Elutasított kérelem)
- művelet: setAccessControlRecursive (Elutasított kérelem)
- Kérelemfejlécek:
- x-ms-owner (a fejléc figyelmen kívül hagyva)
- x-ms-group (a fejléc figyelmen kívül hagyva)
- x-ms-permissions (Fejléc figyelmen kívül hagyva)
- x-ms-group (a fejléc figyelmen kívül hagyva)
- x-ms-acls (Fejléc figyelmen kívül hagyva)
- URI-paraméter:
- Titkosítási hatókör beállítása
- Kérelemfejlécek:
- x-ms-encryption-key (Fejléc figyelmen kívül hagyva)
- x-ms-encryption-key (Fejléc figyelmen kívül hagyva)
- x-ms-encryption-algorithm:AES256 (Fejléc figyelmen kívül hagyva)
- Kérelemfejlécek:
- Hozzáférési szint beállítása
- Kérelemfejlécek:
- x-ms-access-tier (Fejléc figyelmen kívül hagyva)
- Kérelemfejlécek:
Válaszfejléc eltérései
Mivel a OneLake az ADLS-től eltérő engedélymodellt használ, az engedélyekhez kapcsolódó válaszfejlécek kezelése eltérő:
- Az "x-ms-owner" és az "x-ms-group" mindig a "$superuser" értéket adja vissza, mivel a OneLake nem rendelkezik tulajdonos felhasználók vagy csoportok
- Az "x-ms-permissions" mindig "---------" értéket ad vissza, mivel a OneLake nem rendelkezik felhasználói, csoport- vagy nyilvános hozzáférési engedélyekkel
- Az "x-ms-acl" a POSIX hozzáférés-vezérlési listává (ACL) konvertált hívó felhasználó hálóengedélyeit adja vissza "rwx" formátumban
Nyílt forráskódú integráció
Mivel a OneLake ugyanazokat az API-kat támogatja, mint az ADLS és a Blob Storage, számos nyílt forráskódú kódtár és csomag, amelyek kompatibilisek az ADLS-sel és a Blob Storage-tal, zökkenőmentesen működnek a OneLake-vel (például Azure Storage Explorer). Más kódtárak kis frissítéseket igényelhetnek a OneLake-végpontok vagy más kompatibilitási problémák megoldásához. A legutóbbi módosítások miatt a következő kódtárak kompatibilisek lesznek a OneLake-lel. Ez a lista nem teljes:
Példák
Munkaterületen belüli elemek listázása (ADLS)
GET https://onelake.dfs.fabric.microsoft.com/myWorkspace?resource=filesystem&recursive=false
Elemek listázása egy munkaterületen (Blob)
GET https://onelake.blob.fabric.microsoft.com/myWorkspace?restype=container&comp=list&delimiter=%2F
Mappa létrehozása egy tóházban (ADLS)
PUT https://onelake.dfs.fabric.microsoft.com/myWorkspace/myLakehouse.Lakehouse/Files/newFolder/?resource=directory
Blob tulajdonságainak lekérdezése (Blob)
HEAD https://onelake.blob.fabric.microsoft.com/myWorkspace/myLakehouse.Lakehouse/Files/file.txt