次の方法で共有


CREATE SCHEMA

適用対象: 「はい」チェックマークがオン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 } [ , ... ] ) ] [...]

パラメーター

  • schema_name

    作成するスキーマの名前。

    hive_metastore カタログで作成されたスキーマには、英数字の ASCII 文字とアンダースコアのみを使用できます (INVALID_SCHEMA_OR_RELATION_NAME)。

  • 存在しない場合

    指定した名前のスキーマが存在しない場合は、作成します。 同じ名前のスキーマが既に存在する場合は、何も行いません。

  • 場所 schema_directory

    LOCATION は、Unity カタログでサポートされません。 Unity カタログでスキーマの保存場所を指定する場合は、MANAGED LOCATION を使用します。

    schema_directory は、STRING リテラルです。 指定したスキーマの作成先となるファイル システムのパス。 指定したパスが基になるファイル システムに存在しない場合は、そのパスでディレクトリを作成します。 場所を指定しない場合、スキーマの作成先は既定のウェアハウス ディレクトリとなり、そのパスは、静的構成 spark.sql.warehouse.dir で設定されます。

    警告

    スキーマ (データベース) がワークスペース レベルの Hive メタストアに登録されている場合、CASCADE オプションを使用してそのスキーマを削除すると、テーブルの種類 (マネージドまたは外部) に関係なく、そのスキーマの場所にあるすべてのファイルが再帰的に削除されます。

    スキーマが Unity Catalog メタストアに登録されている場合、Unity Catalog マネージド テーブルのファイルは再帰的に削除されます。 ただし、外部テーブルのファイルは削除されません。 これらのファイルを、クラウド ストレージ プロバイダーを使用して直接管理する必要があります。

    そのため、誤ってデータが失われるのを防ぐために、Hive メタストア内のスキーマを既存のデータを含む場所に登録しないでください。 また、Hive メタストア スキーマによって管理される場所、または Unity Catalog マネージド テーブルを含む場所に新しい外部テーブルを作成する必要もありません。

  • コメント schema_comment

    STRING リテラル。 スキーマの説明。

  • デフォルトの照合順序 default_collation_name

    適用対象:はい Databricks SQL チェックが Databricks Runtime 17.1 以降" とマークされているチェック

    必要に応じて、スキーマ内で定義されたオブジェクトの既定の照合順序を定義します。 指定しない場合、既定の照合順序はカタログから継承されます。

  • 管理された場所 location_path

    MANAGED 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 } [ , ... ] )

    スキーマのプロパティ。キーと値のペアで指定します。

  • オプション

    接続でカタログを識別するために必要な接続の種類固有のパラメーターを設定します。

    • option

      オプション キー。 キーは、ドットで区切られた 1 つまたは複数の識別子、あるいは STRING リテラルで構成できます。

      オプション キーは一意である必要があり、大文字と小文字が区別されます。

    • value

      オプションの値。 値は、BOOLEANSTRINGINTEGER、またはDECIMAL定数式でなければなりません。 値は、SECRET SQL 関数の呼び出しである場合もあります。 たとえば、valuepassword は、リテラル パスワードを入力するのではなく、secret('secrets.r.us', 'postgresPassword') で構成します。

  -- 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))