スキーマの作成
この記事では、Unity Catalog とレガシ Hive メタストアでスキーマを作成する方法について説明します。
Unity Catalog と Hive メタストアでのスキーマ動作の比較など、Azure Databricks のスキーマの詳細については、「Azure Databricks のスキーマとは」を参照してください。
開始する前に
Unity Catalog でスキーマを作成するには:
- スキーマの作成を実行するワークスペースにリンクされている Unity Catalog のメタストアが必要です。
- スキーマの親カタログに対する
USE CATALOG
とCREATE SCHEMA
のデータのアクセス許可が必要です。 メタストア管理者またはカタログの所有者が、これらの権限を付与できます。 メタストア管理者の場合は、これらの権限を自分に付与できます。 - スキーマ内のテーブルとボリュームに対してオプションのマネージド ストレージの場所を指定するには、Unity Catalog で外部の場所を定義する必要があり、その外部の場所に対する
CREATE MANAGED STORAGE
特権を持っている必要があります。 「Unity Catalog の管理されたストレージの場所の指定」を参照してください。 - ノートブックを実行してスキーマを作成するために使うクラスターは、Unity Catalog 準拠のアクセス モードを使う必要があります。 「アクセス モード」を参照してください。 SQL ウェアハウスは常に Unity Catalog をサポートします。
Hive メタストアでスキーマを作成するには:
- 必要なアクセス許可は、テーブル アクセス制御を使用しているかどうかによって異なります。 「Hive メタストアの特権とセキュリティ保護可能なオブジェクト (レガシ)」を参照してください。
スキーマを作成する
Unity Catalog でスキーマを作成するには、カタログ エクスプローラーまたは SQL コマンドを使用できます。 Hive メタストアでスキーマを作成するには、SQL コマンドを使用する必要があります。
カタログ エクスプローラー
- Unity Catalog メタストアにリンクされているワークスペースにログインします。
- [カタログ] をクリックします。
- 左側の [カタログ] ペインで、スキーマを作成するカタログをクリックします。
- 詳細ペインで、[スキーマの作成] をクリックします。
- スキーマに名前を付け、ユーザーがスキーマの目的を理解するのに役立つコメントを追加します。
- (省略可能) マネージド保存場所を指定します。 ターゲットの外部の場所に対する
CREATE MANAGED STORAGE
特権が必要です。 「Unity Catalog のマネージド ストレージの場所を指定する」および「スキーマのマネージド ロケーション」を参照してください。 - Create をクリックしてください。
- スキーマに対する特権を付与します。 「Unity Catalog の特権の管理」を参照してください。
- [保存] をクリックします。
SQL
ノートブックまたは SQL クエリ エディターで次の SQL コマンドを実行します。 角かっこ内の項目は省略可能です。
SCHEMA
またはDATABASE
を使用できます。 プレースホルダー値を次のように置き換えます。<catalog-name>
: スキーマの親カタログの名前。 Hive メタストアでスキーマを作成していて、Unity Catalog 対応ワークスペースで作業している場合は、カタログ名としてhive_metastore
を使用します。 ご使用のワークスペースが Unity Catalog に対応していない場合は、カタログは指定しないでください。<schema-name>
: スキーマの名前。<location-path>
: マネージド ストレージの場所へのオプションのパス。 Unity Catalog の場合はMANAGED LOCATION
、Hive メタストアの場合はLOCATION
とともに使用します。 Unity Catalog では、指定したパスの外部の場所に対するCREATE MANAGED STORAGE
特権が必要です。 「Unity Catalog のマネージド ストレージの場所を指定する」および「スキーマのマネージド ロケーション」を参照してください。<comment>
: 省略可能な説明またはその他のコメントです。<property-key> = <property-value> [ , ... ]
:省略可能。 スキーマに設定する Spark SQL プロパティと値です。
パラメーターの詳細な説明については、「CREATE SCHEMA」を参照してください。
CREATE { DATABASE | SCHEMA } [ IF NOT EXISTS ] <catalog-name>.<schema-name> [ MANAGED LOCATION '<location-path>' | LOCATION '<location-path>'] [ COMMENT <comment> ] [ WITH DBPROPERTIES ( <property-key = property_value [ , ... ]> ) ];
スキーマに対する特権を付与します。 Unity Catalog の特権については、「Unity Catalog で特権を管理する」を参照してください。
また、Databricks Terraform プロバイダーと databricks_schema を使用してスキーマを作成することもできます。 databricks_schemas を使用して、スキーマ ID の一覧を取得できます
次のステップ
- テーブル、ビュー、ボリュームをスキーマに追加する方法については、「 テーブルとビューとは、 ビューとは何ですか?、 Unity カタログ ボリュームとはを参照してください。
- スキーマに AI モデルを追加する方法については、「Unity Catalog 内でモデル ライフサイクルを管理する」を参照してください。
- 既存のスキーマを表示、更新、削除する方法については、「スキーマの管理」を参照してください。