Udostępnij za pomocą


CREATE SCHEMA

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime

Tworzy schemat (bazę danych) o określonej nazwie. Jeśli schemat o tej samej nazwie już istnieje, zgłaszany jest wyjątek.

Składnia

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

Parametry

  • schema_name

    Nazwa schematu, który ma zostać utworzony.

    Schematy utworzone w katalogu hive_metastore mogą zawierać tylko znaki alfanumeryczne ASCII i podkreślenia (INVALID_SCHEMA_OR_RELATION_NAME).

  • JEŚLI NIE ISTNIEJE

    Tworzy schemat o podanej nazwie, jeśli nie istnieje. Jeśli schemat o tej samej nazwie już istnieje, nic się nie stanie.

  • LOKALIZACJA schema_directory

    LOCATION nie jest obsługiwany w katalogu Unity. Jeśli chcesz określić lokalizację przechowywania schematu w Unity Catalog, użyj MANAGED LOCATION.

    schema_directory jest literałem STRING. Ścieżka systemu plików, w którym ma zostać utworzony określony schemat. Jeśli określona ścieżka nie istnieje w bazowym systemie plików, tworzy katalog ze ścieżką. Jeśli lokalizacja nie zostanie określona, schemat zostanie utworzony w domyślnym katalogu magazynu, którego ścieżka jest skonfigurowana przez konfigurację spark.sql.warehouse.dirstatyczną .

    Ostrzeżenie

    Jeśli schemat (baza danych) jest zarejestrowany w magazynie metadanych programu Hive na poziomie obszaru roboczego, usunięcie tego schematu przy użyciu CASCADE opcji powoduje ponowne usunięcie wszystkich plików w tej lokalizacji schematu niezależnie od typu tabeli (zarządzanego lub zewnętrznego).

    Jeśli schemat jest zarejestrowany w katalogu metastore Unity Catalog, pliki zarządzanych tabel Unity Catalog są usuwane rekursywnie. Pliki tabel zewnętrznych nie są jednak usuwane. Te pliki należy zarządzać bezpośrednio przy użyciu dostawcy magazynu w chmurze.

    W związku z tym, aby uniknąć przypadkowej utraty danych, nigdy nie należy rejestrować schematu w magazynie metadanych Hive w lokalizacji z istniejącymi danymi. Nie należy również tworzyć nowych tabel zewnętrznych w lokalizacji zarządzanej przez schematy magazynu metadanych Hive ani zawierającej tabele zarządzane przez katalog Unity Catalog.

  • KOMENTARZ schema_comment

    Literał STRING . Opis schematu.

  • DOMYŚLNE SORTOWANIE default_collation_name

    Dotyczy:sprawdź, czy zaznaczono tak, sprawdź, czy usługa SQL databricks została oznaczona jako tak Databricks Runtime 17.1 lub nowsza

    Opcjonalnie definiuje domyślne sortowanie obiektów zdefiniowanych w schemacie. Jeśli nie określono ustawień sortowania, będą one dziedziczone z wykazu.

  • ZARZĄDZANA LOKALIZACJA location_path

    MANAGED LOCATION jest opcjonalny i wymaga Unity Catalog. Jeśli chcesz określić lokalizację przechowywania schematu zarejestrowanego w programie Hive na poziomie obszaru roboczego lub magazynie metadanych innej firmy, użyj LOCATION zamiast tego.

    location_path musi być STRING literałem. Określa ścieżkę do głównej lokalizacji przechowywania schematu, która różni się od lokalizacji przechowywania katalogu lub metadanych. Ta ścieżka musi być zdefiniowana w konfiguracji lokalizacji zewnętrznej, i musisz mieć CREATE MANAGED STORAGE uprawnienia do konfiguracji lokalizacji zewnętrznej. Możesz użyć ścieżki zdefiniowanej w konfiguracji lokalizacji zewnętrznej lub ścieżki podrzędnej (innymi słowy 'abfss://container@storageaccount.dfs.core.windows.net/finance' lub 'abfss://container@storageaccount.dfs.core.windows.net/finance/product'). Obsługiwane w usłudze Databricks SQL lub w klastrach z uruchomionym środowiskiem Databricks Runtime 11.3 LTS lub nowszym.

    Zobacz również tabele zarządzane w Unity Catalog w usłudze Azure Databricks dla Delta Lake i Apache Iceberg oraz Tworzenie metasklepu Unity Catalog.

  • WITH DBPROPERTIES ( { property_name = property_value } [ , ... ] )

    Właściwości schematu w parach klucz-wartość.

  • OPCJE

    Ustawia parametry specyficzne dla typu połączenia potrzebne do zidentyfikowania wykazu w połączeniu.

    • option

      Klucz opcji. Klucz może składać się z co najmniej jednego identyfikatora oddzielonego kropką lub literałem STRING .

      Klucze opcji muszą być unikatowe i uwzględniają wielkość liter.

    • value

      Wartość opcji. Wartość musi być BOOLEANSTRING stałym , INTEGER, DECIMALlub . Wartość może być również wywołaniem SECRET funkcji SQL. Na przykład element value dotyczący password może składać się z secret('secrets.r.us', 'postgresPassword') zamiast wpisywania dosłownego hasła.

Przykłady

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