Share via


OneLake と Azure Data Lake Storage (ADLS) Gen2 API パリティ

OneLake では、Azure Data Lake Storage (ADLS) Gen2 と同じ API がサポートされており、ユーザーは現在すでに使用しているツールを使用して OneLake でデータの読み取り、書き込み、管理を行うことができます。 OneLake は管理された論理データ レイクであるため、一部の機能は Azure Storage とは異なる方法で管理され、すべての動作が OneLake 経由でサポートされるわけではありません。 このページでは、OneLake 管理フォルダー、API の違い、オープン ソースの互換性など、これらの違いについて詳しく説明します。

管理された OneLake フォルダー

Fabric テナント内のワークスペースとデータ アイテムによって OneLake の構造が定義されます。 ワークスペースとアイテムの管理は、Fabric エクスペリエンスを通じて行われます。OneLake では、ADLS Gen2 API を介したワークスペースまたはアイテムの作成、更新、削除はサポートされていません。 OneLake では、Fabric 管理ポータルでテナントとワークスペースに変更を加える必要があるため、ワークスペース (コンテナー) レベルとテナント (アカウント) レベルでの HEAD 呼び出しのみが許可されます。

OneLake では、Fabric アイテムのフォルダー構造も適用され、アイテムとそのマネージド サブフォルダーが ADLS Gen2 API によって作成、削除、または名前変更されないように保護します。 Fabric マネージド フォルダーには、アイテムの最上位フォルダー (たとえば、/MyLakehouse.lakehouse など) と、その中の第一レベル フォルダー (たとえば、/MyLakehouse.lakehouse/Files/MyLakehouse.lakehouse/Tables など) が含まれます。

これらの管理フォルダー内に作成された任意のフォルダーまたはファイルに対して CRUD 操作を実行し、ワークスペースおよびアイテム フォルダーに対して読み取り専用操作を実行できます。

サポートされていない要求ヘッダーとパラメーター

ユーザーが作成したファイルやフォルダーの中でも、OneLake は ADLS Gen2 API を通した Fabric 管理操作の一部を制限します。 アクセス許可を更新したり、アイテムやワークスペースを編集したりするには、Fabric エクスペリエンスを使用する必要があり、Fabric はアクセス層などの他のオプションを管理します。

OneLake は ADLS Gen2 と同じヘッダーをほぼすべて受け入れますが、OneLake で許可されていないアクションに関連する一部のヘッダーのみは無視します。 これらのヘッダーは呼び出し全体の動作を変更しないため、OneLake は禁止ヘッダーを無視し、新しい 'x-ms-rejected-headers' 応答ヘッダーで禁止ヘッダーを返して、呼び出しの他の部分を許可します。 たとえば、Fabric と OneLake には、Azure Storage のようにユーザーを所有するという概念がないため、OneLake は PUT 呼び出しの 'x-ms-owner' パラメーターを無視します。

クエリ パラメーターは呼び出し全体の動作を変更するため、OneLake は許可されていないクエリ パラメーターを含む要求を拒否します。 たとえば、OneLake は Azure Storage API を介したアクセス制御の設定をサポートしていないため、'setAccessControl' パラメーターを含む UPDATE 呼び出しはブロックされます。

OneLake は、次の動作とそれらに関連付けられている要求ヘッダーと URI パラメーターを許可しません。

  • アクセス制御の設定
    • URI パラメーター:
      • アクション: setAccessControl (要求は拒否)
      • アクション: setAccessControlRecursive (要求は拒否)
    • 要求ヘッダー:
      • x-ms-owner (ヘッダーは無視)
      • x-ms-group (ヘッダーは無視)
      • x-ms-permissions (ヘッダーは無視)
      • x-ms-group (ヘッダーは無視)
      • x-ms-acls (ヘッダーは無視)
  • 暗号化スコープを設定
    • 要求ヘッダー:
      • x-ms-encryption-key (ヘッダーは無視)
      • x-ms-encryption-key (ヘッダーは無視)
      • x-ms-encryption-algorithm:AES256 (ヘッダーは無視)
  • アクセス層を設定
    • 要求ヘッダー:
      • x-ms-access-tier (ヘッダーは無視)

応答ヘッダーの相違点

OneLake は ADLS Gen2 とは異なるアクセス許可モデルを使用するため、アクセス許可に関連する応答ヘッダーは次に示すように異なる方法で処理されます。

  • OneLake には所有するユーザーまたはグループがないため、'x-ms-owner' と 'x-ms-group' は常に '$superuser' を返します
  • OneLake には所有するユーザー、グループ、またはパブリック アクセス許可がないため、'x-ms-permissions' は常に '---------' を返します
  • 'x-ms-acl' は、POSIX アクセス制御リスト (ACL) に変換された呼び出し元ユーザーの Fabric アクセス許可を 'rwx' 形式で返します

オープンソースの統合

OneLake は ADLS Gen2 と同じ API をサポートしているため、ADLS Gen2 と互換性のある多くのオープン ソースのライブラリとパッケージは OneLake とシームレスに連携します。 他のライブラリでは、OneLake エンドポイントやその他の互換性の問題に対応するために小さい更新が必要になる場合があります。 最近の変更により、次のライブラリは OneLake との互換性が確認されています。 この一覧はすべてを網羅したものではありません。

ワークスペース内のアイテムを一覧表示する

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

レイクハウス内にフォルダーを作成する

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