マネージドテーブルと連携する
Databricks は、マネージドテーブルのライフサイクルとファイル レイアウトを管理します。 マネージドテーブルは、テーブルを作成するデフォルトの方法です。
Databricks では、 Databricksで管理されるすべての表形式データにマネージドテーブルを使用することをお勧めします。 予測的最適化は、デフォルトによってすべてのマネージドテーブルで有効になります Unity Catalog 。 予測的最適化 は、データメンテナンスオペレーションの実行、統計の収集、およびテーブルのクラスタリングキーの選択(オプション)により、テーブルを自動的に最適化します。 Unity Catalog マネージドテーブルの予測的最適化を参照してください。
マネージドテーブルのデータファイルは、含まれているスキーマに関連付けられた管理されたストレージの場所に保存されます。 「Unity Catalog で管理されたストレージの場所を指定する」を参照してください。
マネージドテーブルは、 Databricksでサポートされているすべての言語と製品で操作できます。 マネージドテーブルを作成、更新、削除、またはクエリするには、特定の権限が必要です。 「Unity Catalog での特権の管理」を参照してください。
マネージドテーブルへのすべての読み取りと書き込みは、 Unity Catalog を経由し、テーブル名を使用する必要があります。 マネージドテーブルで外部クライアントを利用する方法についてはUnity Catalog外部システムを利用したDatabricksデータへのアクセスをご覧ください。
この記事では、マネージドテーブル Unity Catalog に焦点を当てています。 レガシー Hive metastore のマネージドテーブルは、異なる動作をします。 レガシーHive metastoreのデータベースオブジェクトを参照してください。
マネージドテーブルを作成する
デフォルトでは、SQL Sparkの コマンド、Databricks 、またはその他のツールを使用してテーブルを作成するたびに、テーブルが管理されます。
次の SQL 構文は、SQL を使用して空のマネージドテーブルを作成する方法を示しています。 プレースホルダーの値を置き換えます。
<catalog-name>
:テーブルを格納するカタログの名前。<schema-name>
:テーブルを格納するスキーマの名前。<table-name>
:テーブルの名前。<column-specification>
:各列の名前とデータ型。
CREATE TABLE <catalog-name>.<schema-name>.<table-name>
(
<column-specification>
);
多くのユーザーは、クエリ結果または データフレーム 書き込み操作からマネージドテーブルを作成します。 次の記事では、Databricks でマネージド テーブルを作成するために使用できる多くのパターンの一部を示します。
必要な権限
マネージドテーブルを作成するには、次のものが必要です。
- テーブルの親スキーマに対する
USE SCHEMA
権限。 - テーブルの親カタログに対する
USE CATALOG
権限。 - テーブルの親スキーマに対する
CREATE TABLE
権限。
マネージドテーブルをドロップする
テーブルを削除するには、テーブルの所有者であるか、テーブルに対する MANAGE
権限を持っている必要があります。 マネージドテーブルを削除するには、次の SQL コマンドを実行します。
DROP TABLE IF EXISTS catalog_name.schema_name.table_name;
Unity Catalog は、ドロップされたマネージドテーブルを7日間回復するUNDROP TABLE
コマンドをサポートしています。 7 日後、基になるデータは、通常のテーブル メンテナンス操作中にクラウド テナントからの削除としてマークされます。「UNDROP」を参照してください。