ストレージ・パスの競合を解決する
ストレージパスの競合は、外部ロケーションが、ワークスペースのデフォルトUnity Catalogストレージに使用する内部パスと重複する場合Databricks発生します。この重複により、 Unity Catalog が特定の機能の内部処理にワークスペースのデフォルト ストレージを使用する方法が妨げられ、外部ロケーション設定を更新する必要があります。
競合の発生方法
外部ロケーションを作成すると、ワークスペースのデフォルト Unity Catalog ストレージパスと重複するパスを使用します。 ワークスペースのデフォルトストレージは、 ワークスペース作成ガイドに従ってストレージ構成オブジェクトを作成するときに、ワークスペースの作成時に指定されます。例えば:
- ワークスペースの作成に使用されるデフォルトのワークスペースストレージパス:
s3://<your-bucket>/<region>/
- 外部ロケーションの重複(競合):
s3://<your-bucket>/
この重複により、 Unity Catalog は内部処理にワークスペースのデフォルト保存場所を使用できず、 Unity Catalog の特定の機能がブロックされます。 これはまた、外部ロケーションが場所内のワークスペース内部データを公開するため、データガバナンスを弱めます。 その結果、外部ロケーション パスは、ワークスペース デフォルト Unity Catalog ストレージ パスと重複してはなりません。 ワークスペースの内部ストレージ ロケーションはワークスペースの内部ストレージ パスの兄弟であり、競合を引き起こさないため、DBFSDBFSルートの場所などのより具体的なパスに外部ロケーションを作成することは引き続き許可されます。
シナリオを特定する
Databricks UI の カタログエクスプローラー で外部ロケーションを確認し、外部ロケーションパスにワークスペースのデフォルトストレージパスが含まれているか、それよりも広いかどうかを確認します。
例:
- 外部ロケーション:
s3://<your-bucket>/
- ワークスペースのデフォルトのストレージパス:
s3://<your-bucket>/<region>/
続行方法を決定するために、次のシナリオを検討してください。
シナリオ A: データを移動せずに外部ロケーションを更新する
外部ロケーションは、広いパス ( s3://<customer-bucket>/
など) で定義しますが、 s3://<customer-bucket>/<region>/<workspace-id>/
に保存されているレガシー Databricks Filesystem データなど、より具体的な兄弟フォルダ内のデータにアクセスします。
処置: (推奨) 既存の外部ロケーションをより具体的なパスに更新します。この変更により、競合が解決され、すべてのデータへのアクセスが引き続き許可されます。たとえば、パスを s3://<your-bucket>/
から s3://<your-bucket>/<region>/<workspace-id>/
に更新します。これにより、ワークスペースの内部データの偶発的なデータ漏洩も防止されます。
シナリオ B: ルートバケットの場所に格納されているマネージドテーブル
バケットのルートに外部ロケーション ( s3://<your-bucket>/
など) を定義し、その直下にマネージドテーブル ( s3://<your-bucket>/__unity_storage/catalogs/<catalog_id>/tables/<table_id>
など) を作成します。
この場合、パスを更新することはできず、データを移動する必要があります。
アクション: Databricks サポートでサポート チケットを開きます。サポート チームは、マネージド データを新しい場所に移行し、メタストアを競合しない状態に復元するのに役立ちます。