Unity Catalog でマネージドストレージロケーションを指定する
マネージドストレージロケーションは、マネージドテーブルとマネージドボリュームのデータを格納するためのクラウドオブジェクトストレージ内のロケーションを指定します。
マネージドストレージロケーションは、メタストア、カタログ、またはスキーマに関連付けることができます。 階層の下位レベルにあるマネージドストレージロケーションは、マネージドテーブルまたはマネージドボリュームの作成時に、上位レベルで定義されたストレージのロケーションを上書きします。
Databricks では、論理的なデータ分離のために、マネージド ストレージをカタログ レベルで割り当て、オプションとしてメタストア レベルとスキーマ レベルを使用することをお勧めします。
Unity Catalog に対して自動的に有効になっている新しいワークスペースは、メタストア レベルの管理されたストレージの場所なしで作成されます。 ただし、Databricks パートナーとして個人のステージング場所を使用するなど、一部の機能にはメタストア レベルのストレージが必要です。 Unity Catalog、 データガバナンス、およびデータ分離ビルディングブロック の自動有効化 および Unity Catalogメタストアの作成 を参照してください。
マネージドストレージロケーションとは何ですか?
マネージドストレージロケーションには、次の特性があります。
マネージドテーブルとマネージドボリュームは、データとメタデータファイルをマネージドストレージロケーションに保存します。
マネージドストレージロケーションは、外部テーブルまたは外部ボリュームと重複することはできません。
次の表では、マネージドストレージロケーションが宣言され、Unity Catalog オブジェクトに関連付けられる方法について説明します。
関連付けられた Unity Catalog オブジェクト |
設定方法 |
外部ロケーションとの関係 |
---|---|---|
METASTORE |
メタストアの作成時にアカウント管理者によって構成されます。 |
外部ロケーションと重なることはできません。 |
CATALOG |
カタログの作成時に |
外部ロケーションに含まれている必要があります。 |
SCHEMA |
スキーマの作成時に |
外部ロケーションに含まれている必要があります。 |
マネージドテーブルとマネージドボリュームのデータとメタデータを保存するマネージドストレージロケーションでは、次のルールを使用します。
データを格納するスキーマにマネージドロケーションがある場合、データはスキーマのマネージドロケーションに格納されます。
データを格納するスキーマにマネージドロケーションがなく、カタログにマネージドロケーションがある場合、データはカタログのマネージドロケーションに格納されます。
データを格納するスキーマとカタログのどちらもマネージドロケーションを持たない場合、データはメタストアのマネージドロケーションに格納されます。
Unity Catalog は、ロケーションに対するガバナンスの重複を防ぎます。 「 Unity Catalogによって管理されるデータのパスのしくみ」を参照してください。
マネージドストレージロケーション、ストレージのルート、およびストレージの場所
カタログまたはスキーマでMANAGED LOCATION
を指定すると、指定されたロケーションはUnity Catalogにおける ストレージルート として追跡されます。すべてのマネージド エンティティが一意のロケーションを持つように、Unity Catalog は、次の形式を使用して、ハッシュ化されたサブディレクトリを指定されたロケーションに追加します。
オブジェクト |
パス |
---|---|
SCHEMA |
|
CATALOG |
|
マネージドストレージロケーションの完全修飾パスは、Unity Catalog の ストレージロケーション として追跡されます。
複数のスキーマとカタログに対して同じマネージドストレージロケーションを指定できます。
必要な権限
外部ロケーションに対する CREATE MANAGED STORAGE
権限を持つユーザーは、カタログまたはスキーマの作成時にマネージドストレージロケーションを構成できます。
アカウント管理者は、メタストア レベルでオプションのマネージドストレージロケーションを追加できます。
メタストアのマネージドストレージロケーションを設定する
メタストアのマネージドストレージロケーションを設定するには、「 既存のメタストアにマネージドストレージを追加する」を参照してください。
カタログのマネージドストレージロケーションを設定する
カタログのマネージドストレージロケーションを設定するには、次の例のように、カタログの作成時に MANAGED LOCATION
キーワードを使用します。
CREATE CATALOG <catalog-name>
MANAGED LOCATION 's3://<external-location-bucket-path>/<directory>';
カタログエクスプローラーを使用して、カタログのマネージドストレージロケーションを設定することもできます。 カタログの作成を参照してください。
スキーマのマネージドストレージロケーションを設定する
スキーマの作成中に MANAGED LOCATION
キーワードを使用して、スキーマのマネージドストレージロケーションを設定します (次の例を参照)。
CREATE SCHEMA <catalog>.<schema-name>
MANAGED LOCATION 's3://<external-location-bucket-path>/<directory>';
カタログエクスプローラーを使用して、スキーマのマネージドストレージロケーションを設定することもできます。 スキーマの作成を参照してください。
次のステップ
Unity Catalog は、マネージドテーブルとマネージドボリュームを作成するときに、マネージドストレージロケーションを自動的に使用します。 マネージドテーブルの操作およびUnity Catalogボリュームとはを参照してください。