Important
この機能は ベータ版です。
このページでは、外部の場所を使用して OneLake に接続する方法について説明します。 接続を使用すると、Unity カタログ オブジェクト (テーブル、ボリューム、ビュー、具体化されたビュー、ストリーミング テーブル) を作成し、Unity カタログを使用してデータを管理できます。 Azure Databricksから既存の OneLake データを書き込まずに読み取る場合は、「OneLake カタログのフェデレーションを有効にする」を参照してください。
OneLake パスに接続するには、次の 2 つの Unity カタログセキュリティ保護可能オブジェクトが必要です。
- OneLake ストレージへのアクセスを許可するマネージド ID またはサービス プリンシパルを指定するストレージ資格情報。
- OneLake ストレージへの ID ベースの ABFSS パスを定義し、ストレージ資格情報を参照する外部の場所。
必要条件
- Databricks Runtime 18.1 以降、またはサーバーレス コンピューティング
- 容量が割り当てられているアクティブなMicrosoft Fabric ワークスペース
- Unity Catalog メタストアに対する
CREATE STORAGE CREDENTIAL権限、およびメタストアとストレージ資格情報の両方に対するCREATE EXTERNAL LOCATION権限 - Azure Databricks ワークスペースが Unity カタログに対して有効になっている必要がある
- Fabric管理者は、ユーザーがで>必要があります
- 対象の Fabric ワークスペースでは、>で OneLake のユーザー委任型SASトークンを使用して認証を行うが有効になっている必要があります。
Warning
Fabric ワークスペース内の Azure Databricks Storage 項目へのアクセスは、割り当てられたマネージド ID に制限されません。 Fabric ワークスペースのビューアー以外のロール (メンバー、共同作成者、管理者) を持つプリンシパルは、Unity カタログを介してアクセス権が付与されたかどうかにかかわらず、Azure Databricks Storage アイテムのデータの読み取り、書き込み、削除を行うことができます。
この制限に対処するまでは、Azure Databricks Storage 項目を含む Fabric ワークスペースを特権のある制限付きワークスペースとして扱います。
- その Fabric ワークスペースで Member、Contributor、または Administrator ロールが割り当てられているプリンシパルの数を制限します。
- 厳密に必要な場合を除き、エンド ユーザーまたは広範なサービス プリンシパルをこのワークスペースに追加しないでください。
- Azure Databricks Storage 項目にのみ専用のFabric ワークスペースを使用します。 他のFabricアセットやユーザー向けのワークスペースと組み合わせないでください。
手順 1: AzureとFabricで ID とアクセスを構成する
- Azure ポータルで、マネージド ID またはサービス プリンシパルを持つAzure Databricks用の Access Connector を作成または識別します。
- Microsoft Fabricで、ターゲット ワークスペースに移動します。
- [ ワークスペース設定 ] 歯車ボタンをクリックし、[ アクセスの管理] をクリックします。
- [ ユーザーまたはグループの追加 ] をクリックし、マネージド ID またはサービス プリンシパルを検索します。
- マネージド ID またはサービス プリンシパルに 管理者、 メンバー、または 共同作成者 ロールを割り当てます。
手順 2: Fabricでストレージをプロビジョニングし、パスを取得する
Fabric ワークスペースで、Azure Databricks Storage 項目を作成します。
項目が作成されたら、ID ベースの ABFSS パスを作成します。
abfss://<WorkspaceID>@onelake.dfs.fabric.microsoft.com/<DatabricksStorageID>/Files/ワークスペース ID と Azure Databricks Storage アイテム ID は、アイテムが Fabric で開いているときにブラウザーの URL で使用できます。
Note
外部の場所には、表示名ではなく、ID ベースのパス形式 (GUID) が必要です。 名前ベースのパスは、作成時に拒否されます。
このパスを保存します。 手順 4 で使用します。
手順 3: Unity カタログ ストレージ資格情報を作成する
Unity カタログ対応の Azure Databricks ワークスペースにサインインします。
サイドバーで、[データ] アイコンをクリック
カタログ。
[
をクリックし、[ 資格情報の作成] をクリックします。[資格情報の種類]としてAzure Managed Identityを選びます。
ストレージ資格情報名とオプションのコメントを入力します。
Access Connector ID (マネージド ID に関連付けられているアクセス コネクタのリソース ID) を入力します。
リソース ID の形式は次のとおりです。
/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>(省略可能)ユーザー割り当てマネージド ID を使用してアクセス コネクタを作成した場合は、 マネージド ID を入力します。
Create をクリックしてください。
手順 4: OneLake 外部の場所を作成する
サイドバーで、[データ] アイコンをクリック
カタログ。
[
をクリックし、[ 外部の場所の作成] をクリックします。外部の場所の名前を入力します。
[ ストレージの種類] で [ OneLake] を選択します。
[ ストレージ資格情報] で、手順 3 で作成した資格情報を選択します。
[ URL] に、手順 2 の ID ベースの ABFSS パスを入力します。 例えば次が挙げられます。
abfss://<WorkspaceID>@onelake.dfs.fabric.microsoft.com/<DatabricksStorageID>/Files/Create をクリックしてください。
[ 接続のテスト ] をクリックして、外部の場所を確認します。
Note
接続テスト中に表示される「スキップされたファイルイベントの読み取り」警告は、想定内の動作です。 OneLake パスでは、ファイル イベント通知はまだサポートされていません。 外部の場所が正しく機能しています。
手順 5: OneLake 外部の場所に Unity カタログ オブジェクトを作成する
外部の場所を作成したら、それをマネージド ストレージとして使用するカタログを作成できます。 OneLake は、そのカタログに作成したすべてのマネージド テーブルを格納します。
-- Create a catalog with the OneLake external location as managed storage
CREATE CATALOG my_onelake_catalog
MANAGED LOCATION '<onelake_external_location_path>';
-- Create a managed table
CREATE TABLE my_onelake_catalog.default.my_table (
id INT,
name STRING,
created_at TIMESTAMP
);
-- Insert data
INSERT INTO my_onelake_catalog.default.my_table
VALUES (1, 'example', current_timestamp());
<onelake_external_location_path>を外部の場所の URL またはその中のサブパスに置き換えます。
OneLake 外部の場所では、マネージド テーブル (Delta と Iceberg)、ボリューム、ビュー、具体化されたビュー、ストリーミング テーブルの Unity カタログ オブジェクトの種類がサポートされます。
Troubleshoot
| エラー | Resolution |
|---|---|
403 Forbidden OneLake パスにアクセスする場合 |
(1) マネージド ID またはサービス プリンシパルがFabricで適切なワークスペース ロールを持ち、(2) Fabric ワークスペースにアクティブな容量の割り当てがあることを確認します。 |
| 接続テスト中のスキップされたファイルイベントの読み取り警告 | この警告は正常です。 OneLake パスでは、ファイル イベント通知はまだ有効になっていません。 外部の場所が正しく機能しています。 |
| ストレージ資格情報の作成またはテストが失敗する | (1) マネージド ID リソース ID が正しいことを確認します。(2) マネージド ID に、ターゲット Fabric ワークスペースの管理者、メンバー、または共同作成者が付与されていること。(3) パスは正しい ID ベースの形式 (abfss://<WorkspaceID>@onelake.dfs.fabric.microsoft.com/<DatabricksStorageID>/Files/) を使用します。(4) パスは、/Files フォルダーを指定します。 |
次のステップ
- 外部の場所を使用するためのアクセス許可を他のユーザーに付与します。 「外部の場所を管理する」を参照してください。
- カタログ レベルまたはスキーマ レベルでマネージド ストレージの場所を定義します。 「Unity Catalog の管理されたストレージの場所の指定」を参照してください。
- 書き込まずに、Azure Databricksから既存の OneLake データを読み取る。 OneLake カタログフェデレーションを有効にするを参照してください。