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

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

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