メインコンテンツまでスキップ

ストレージ・パスの競合を解決する

ストレージ パスの競合は、外部の場所が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 サポートでサポート チケットを開きます。サポート チームは、マネージド データを新しい場所に移行し、メタストアを競合しない状態に復元するのに役立ちます。