SCHEMA MAKEN

Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime 9.1 en hoger

Hiermee maakt u een schema (database) met de opgegeven naam. Als er al een schema met dezelfde naam bestaat, wordt er een uitzondering gegenereerd.

Syntaxis

CREATE SCHEMA [ IF NOT EXISTS ] schema_name
    [ COMMENT schema_comment ]
    [ LOCATION schema_directory | MANAGED LOCATION location_path ]
    [ WITH DBPROPERTIES ( { property_name = property_value } [ , ... ] ) ]

Parameters

  • schema_name

    De naam van het schema dat moet worden gemaakt.

    Schema's die in de hive_metastore catalogus zijn gemaakt, kunnen alleen alfanumerieke ASCII-tekens en onderstrepingstekens (INVALID_SCHEMA_OR_RELATION_NAME) bevatten.

  • ALS DEZE NIET BESTAAT

    Hiermee maakt u een schema met de opgegeven naam als het niet bestaat. Als er al een schema met dezelfde naam bestaat, gebeurt er niets.

  • LOCATIE schema_directory

    LOCATION wordt niet ondersteund in Unity Catalog. Als u een opslaglocatie wilt opgeven voor een schema in Unity Catalog, gebruikt u MANAGED LOCATION.

    schema_directory is een STRING letterlijke. Het pad van het bestandssysteem waarin het opgegeven schema moet worden gemaakt. Als het opgegeven pad niet bestaat in het onderliggende bestandssysteem, maakt u een map met het pad. Als de locatie niet is opgegeven, wordt het schema gemaakt in de standaardmap van het magazijn, waarvan het pad is geconfigureerd door de statische configuratie spark.sql.warehouse.dir.

    Waarschuwing

    Als een schema (database) is geregistreerd in de Hive-metastore op werkruimteniveau, wordt dat schema verwijderd met behulp van de CASCADE optie, waardoor alle bestanden op die schemalocatie recursief worden verwijderd, ongeacht het tabeltype (beheerd of extern).

    Als het schema is geregistreerd bij een Unity Catalog-metastore, worden de bestanden voor beheerde tabellen in Unity Catalog recursief verwijderd. De bestanden voor externe tabellen worden echter niet verwijderd. U moet deze bestanden rechtstreeks beheren met behulp van de cloudopslagprovider.

    Om onbedoeld gegevensverlies te voorkomen, moet u daarom nooit een schema registreren in een Hive-metastore op een locatie met bestaande gegevens. U moet ook geen nieuwe externe tabellen maken op een locatie die wordt beheerd door Hive-metastoreschema's of die beheerde tabellen van Unity Catalog bevatten.

  • schema_comment

    Een STRING letterlijke. De beschrijving voor het schema.

  • BEHEERDE LOCATIE location_path

    MANAGED LOCATION is optioneel en vereist Unity Catalog. Als u een opslaglocatie wilt opgeven voor een schema dat is geregistreerd in de Hive- of metastore van derden op werkruimteniveau, gebruikt LOCATION u in plaats daarvan.

    location_path moet een STRING letterlijke naam zijn. Hiermee geeft u het pad naar een opslaghoofdlocatie voor het schema dat verschilt van de opslaghoofdlocatie van de catalogus of metastore. Dit pad moet worden gedefinieerd in een configuratie van een externe locatie en u moet de CREATE MANAGED STORAGE bevoegdheid hebben voor de configuratie van de externe locatie. U kunt het pad gebruiken dat is gedefinieerd in de configuratie van de externe locatie of een subpad (met andere woorden, 'abfss://container@storageaccount.dfs.core.windows.net/finance' of 'abfss://container@storageaccount.dfs.core.windows.net/finance/product'). Ondersteund in Databricks SQL of in clusters met Databricks Runtime 11.3 en hoger.

    Zie ook Beheerde tabellen en Een Unity Catalog-metastore maken.

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

    De eigenschappen voor het schema in sleutel-waardeparen.

  • OPTIES

    Hiermee stelt u specifieke parameters voor het verbindingstype in die nodig zijn om de catalogus bij de verbinding te identificeren.

    • option

      De optietoets. De sleutel kan bestaan uit een of meer id's , gescheiden door een punt of een STRING letterlijke aanduiding.

      Optietoetsen moeten uniek zijn en hoofdlettergevoelig zijn.

    • value

      De waarde voor de optie. De waarde moet een BOOLEAN, STRINGof INTEGERDECIMAL constante expressie zijn. De waarde kan ook een aanroep van de SECRET SQL-functie zijn. De for password kan bijvoorbeeld value bestaan secret('secrets.r.us', 'postgresPassword') uit het invoeren van het letterlijke wachtwoord.

Voorbeelden

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