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