0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DatabricksにおけるINVALID_PARAMETER_VALUE.LOCATION_OVERLAPエラー

Posted at

INVALID_PARAMETER_VALUE.LOCATION_OVERLAP: overlaps with managed storage error - Databricksの翻訳です。

本書は著者が手動で翻訳したものであり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。

外部テーブルは、カタログやスキーマのストレージロケーションと重複させることはできません。そうではなく、サブディレクトリに作成すべきです。

問題

共有クラスターで、マネージドテーブルにマウントされた外部ロケーション(AWS | Azure | GCP)にアクセスするためにdbutilsを使用しています。そのロケーションのパスを一覧しようとした場合、INVALID_PARAMETER_VALUE.LOCATION_OVERLAPエラーメッセージで失敗します。

エラーは、指定されたパスがマネージドストレージと重複していると言っています。

dbutils.fs.ls("<storage-blob>://path/")

AnalysisException: [RequestId=96dd6185-e0dc-4fe0-94ad-bd8ab05fbd8e ErrorClass=INVALID_PARAMETER_VALUE.LOCATION_OVERLAP] Input path url '://path' overlaps with managed storage

原因

マネージドディレクトリに対するリストコマンドの実行はUnity Catalogではサポートされていません。カタログやスキーマのロケーションはマネージドストレージとして予約されています。

ソリューション

外部テーブルはカタログやスキーマのストレージロケーションと重複させることはできませんが、ルートロケーションのサブディレクトリ配下に作成することはできます。カタログやスキーマで使用されるルートロケーションやその上位ディレクトリに外部テーブルを作ってはいけません。

例えば、ルートロケーションが<storage-blob>://<some-root>だとします。対応するカタログやスキーマのロケーションは、<storage-blob>://<some-root>/__unitystorage/catalogs/<catalog-id>となるマネージドストレージロケーションと同じものになります。

マネージドテーブルと重複しない限り、some-root/配下に外部ロケーションを作成することができます。この例では、<storage-blob>://<some-root>/<some-path>/<external-table-path>は外部ロケーションとして適切なパスとなります。

この例のロケーションのコンテンツを一覧しようとした場合には、実行は成功します。

はじめてのDatabricks

はじめてのDatabricks

Databricks無料トライアル

Databricks無料トライアル

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?