適用対象:
Databricks SQL
Databricks Runtime
指定した名前でスキーマ (データベース) を作成します。 同じ名前のスキーマが既に存在する場合は、例外がスローされます。
構文
CREATE SCHEMA [ IF NOT EXISTS ] schema_name
[ COMMENT schema_comment |
DEFAULT COLLATION default_collation_name |
{ LOCATION schema_directory | MANAGED LOCATION location_path } |
WITH DBPROPERTIES ( { property_name = property_value } [ , ... ] ) ] [...]
パラメーター
-
作成するスキーマの名前。
hive_metastoreカタログで作成されたスキーマには、英数字の ASCII 文字とアンダースコアのみを使用できます (INVALID_SCHEMA_OR_RELATION_NAME)。 存在しない場合
指定した名前のスキーマが存在しない場合は、作成します。 同じ名前のスキーマが既に存在する場合は、何も行いません。
場所
schema_directoryLOCATIONは、Unity カタログでサポートされません。 Unity カタログでスキーマの保存場所を指定する場合は、MANAGED LOCATIONを使用します。schema_directoryは、STRINGリテラルです。 指定したスキーマの作成先となるファイル システムのパス。 指定したパスが基になるファイル システムに存在しない場合は、そのパスでディレクトリを作成します。 場所を指定しない場合、スキーマの作成先は既定のウェアハウス ディレクトリとなり、そのパスは、静的構成spark.sql.warehouse.dirで設定されます。警告
スキーマ (データベース) がワークスペース レベルの Hive メタストアに登録されている場合、
CASCADEオプションを使用してそのスキーマを削除すると、テーブルの種類 (マネージドまたは外部) に関係なく、そのスキーマの場所にあるすべてのファイルが再帰的に削除されます。スキーマが Unity Catalog メタストアに登録されている場合、Unity Catalog マネージド テーブルのファイルは再帰的に削除されます。 ただし、外部テーブルのファイルは削除されません。 これらのファイルを、クラウド ストレージ プロバイダーを使用して直接管理する必要があります。
そのため、誤ってデータが失われるのを防ぐために、Hive メタストア内のスキーマを既存のデータを含む場所に登録しないでください。 また、Hive メタストア スキーマによって管理される場所、または Unity Catalog マネージド テーブルを含む場所に新しい外部テーブルを作成する必要もありません。
コメント
schema_commentSTRINGリテラル。 スキーマの説明。デフォルトの照合順序 default_collation_name
適用対象:
Databricks SQL
Databricks Runtime 17.1 以降" とマークされているチェック必要に応じて、スキーマ内で定義されたオブジェクトの既定の照合順序を定義します。 指定しない場合、既定の照合順序はカタログから継承されます。
管理された場所
location_pathMANAGED LOCATIONは省略可能であり、Unity カタログが必要です。 ワークスペースレベルの Hive またはサード パーティのメタストアに登録されているスキーマの保存場所を指定する場合は、代わりにLOCATIONを使用します。location_pathは、STRINGリテラルを指定する必要があります。 カタログやメタストアのストレージルートの場所とは異なるスキーマのストレージルートの場所を指定します。 このパスは外部の場所の構成で定義する必要があり、ユーザーにはその外部の場所の構成に対するCREATE MANAGED STORAGE特権が必要です。 外部の場所の構成またはサブパス (つまり、'abfss://container@storageaccount.dfs.core.windows.net/finance'または'abfss://container@storageaccount.dfs.core.windows.net/finance/product') で定義されているパスを使用できます。 Databricks SQL または Databricks Runtime 11.3 LTS 以上を実行しているクラスターでサポートされます。Delta Lake と Apache Iceberg の Azure Databricks の Unity カタログマネージド テーブルとUnity カタログ メタストアの作成も参照してください。
WITH DBPROPERTIES ( { property_name = property_value } [ , ... ] )
スキーマのプロパティ。キーと値のペアで指定します。
オプション
接続でカタログを識別するために必要な接続の種類固有のパラメーターを設定します。
例
-- Create schema `customer_sc`. This throws exception if schema with name customer_sc
-- already exists.
> CREATE SCHEMA customer_sc;
-- Create schema `customer_sc` only if schema with same name doesn't exist.
> CREATE SCHEMA IF NOT EXISTS customer_sc;
-- Create schema `experimental` with a case insensitive unicode default collation
> CREATE SCHEMA experimental DEFAULT COLLATION UNICODE_CI;
-- Create schema `customer_sc` only if schema with same name doesn't exist with
-- `Comments`,`Specific Location` and `Database properties`. LOCATION is not supported in Unity Catalog.
> CREATE SCHEMA IF NOT EXISTS customer_sc COMMENT 'This is customer schema' LOCATION '/samplepath'
WITH DBPROPERTIES (ID=001, Name='John');
-- Create schema with a different managed storage location than the metastore's. MANAGED LOCATION is supported only in Unity Catalog.
> CREATE SCHEMA customer_sc MANAGED LOCATION 'abfss://container@storageaccount.dfs.core.windows.net/finance';
-- Verify that properties are set.
> DESCRIBE SCHEMA EXTENDED customer_sc;
database_description_item database_description_value
------------------------- --------------------------
Database Name customer_sc
Description This is customer schema
Location hdfs://hacluster/samplepath
Properties ((ID,001), (Name,John))