Parita rozhraní ONELake API se službou Azure Storage

OneLake podporuje stejná rozhraní API jako Azure Data Lake Storage (ADLS) a Azure Blob Storage. Tato parita rozhraní API umožňuje uživatelům číst, zapisovat a spravovat svá data ve OneLake pomocí nástrojů, které už dnes používají. Vzhledem k tomu, že OneLake je spravované logické datové jezero, některé funkce se spravují jinak než ve službě Azure Storage, a ne všechna chování se podporují přes OneLake. Tato stránka podrobně popisuje tyto rozdíly, včetně spravovaných složek OneLake, rozdílů rozhraní API a kompatibility open source.

Spravované složky OneLake

Pracovní prostory a datové položky ve vašem tenantovi Fabric definují strukturu OneLake. Správa pracovních prostorů a položek probíhá prostřednictvím prostředí Infrastruktury – OneLake nepodporuje vytváření, aktualizaci nebo odstraňování pracovních prostorů nebo položek prostřednictvím rozhraní API ADLS. OneLake umožňuje pouze volání HEAD na úrovni pracovního prostoru (kontejneru) a na úrovni tenanta (účtu), jelikož je nutné provádět změny tenanta a pracovních prostorů na portálu pro správu Fabric.

OneLake také vynucuje strukturu složek pro položky Fabric, chrání položky a jejich spravované podsložky před vytvořením, odstraněním nebo přejmenováním prostřednictvím rozhraní API ADLS a Blob. Fabric-managed folders include the top-level folder in an item (for example, /MyLakehouse.lakehouse) and the first level of folders within it (for example, /MyLakehouse.lakehouse/Files and /MyLakehouse.lakehouse/Tables).

Operace CRUD můžete provádět s libovolnou složkou nebo souborem vytvořenými v rámci těchto spravovaných složek a operace jen pro čtení lze provádět u pracovních prostor a složek položek.

Nepodporované hlavičky a parametry požadavku

I v uživatelem vytvořených souborech a složkách OneLake omezuje některé operace správy Fabric prostřednictvím rozhraní ADLS API. Musíte použít prostředí Fabric k aktualizaci oprávnění nebo úpravě položek a pracovních prostorů a Fabric spravuje další možnosti, jako jsou úrovně přístupu.

OneLake přijímá téměř všechny stejné hlavičky jako Storage, přičemž ignoruje jenom některé hlavičky, které se vztahují k nepotvrzeným akcím na OneLake. Vzhledem k tomu, že tyto hlavičky nemění chování celého volání, OneLake ignoruje zakázané hlavičky, vrátí je do nové hlavičky odpovědi x-ms-rejected-headers a povolí zbytek volání. Například OneLake ignoruje parametr 'x-ms-owner' při volání PUT, protože Fabric a OneLake nemají stejný koncept vlastnictví uživatelů jako Azure Storage.

OneLake odmítne požadavky obsahující nepovolené parametry dotazu, protože parametry dotazu mění chování celého volání. Například volání UPDATE s parametrem setAccessControl jsou blokovaná, protože OneLake nikdy nepodporuje nastavení řízení přístupu prostřednictvím rozhraní API služby Azure Storage.

OneLake neumožňuje následující chování a jejich přidružené hlavičky požadavků a parametry identifikátoru URI:

  • Nastavení řízení přístupu
    • Parametr URI:
      • action: setAccessControl (Požadavek odmítnut)
      • action: setAccessControlRecursive (Požadavek odmítnut)
    • Request headers:
      • x-ms-owner (Header ignored)
      • x-ms-group (záhlaví ignorováno)
      • x-ms-permissions (Header ignored)
      • x-ms-group (záhlaví ignorováno)
      • x-ms-acls (záhlaví ignorováno)
  • Nastavení rozsahu šifrování
    • Request headers:
      • x-ms-encryption-key (Header ignored)
      • x-ms-encryption-key (Header ignored)
      • x-ms-encryption-algorithm:AES256 (hlavička ignorována)
  • Nastavení úrovně přístupu
    • Request headers:
      • x-ms-access-tier (Header ignored)

Rozdíly v hlavičce odpovědi

Vzhledem k tomu, že OneLake používá jiný model oprávnění než ADLS, zpracovávají se hlavičky odpovědí související s oprávněními odlišně:

  • Výraz x-ms-owner a x-ms-group vždy vrátí hodnotu $superuser, protože OneLake nemá uživatele ani skupiny.
  • X-ms-permissions vždy vrátí hodnotu ---------, protože OneLake nemá vlastnící uživatele, skupiny ani veřejná přístupová oprávnění.
  • 'x-ms-acl' returns the Fabric permissions for the calling user converted to a POSIX access control list (ACL), in the form 'rwx'

Open source integration

Vzhledem k tomu, že OneLake podporuje stejná rozhraní API jako ADLS a Blob Storage, mnoho opensourcových knihoven a balíčků kompatibilních s ADLS a Blob Storage bez problémů funguje s OneLake (například Průzkumník služby Azure Storage). Jiné knihovny můžou vyžadovat malé aktualizace, aby vyhovovaly koncovým bodům OneLake nebo jiným problémům s kompatibilitou. Následující knihovny jsou potvrzeny, že jsou kompatibilní s OneLake kvůli nedávným změnám. Tento seznam není vyčerpávající:

Příklady

Výpis položek v pracovním prostoru (ADLS)

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

List items within a workspace (Blob)

GET  https://onelake.blob.fabric.microsoft.com/myWorkspace?restype=container&comp=list&delimiter=%2F

Create a folder within a lakehouse (ADLS)

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

Get blob properties (Blob)

HEAD  https://onelake.blob.fabric.microsoft.com/myWorkspace/myLakehouse.Lakehouse/Files/file.txt