CREATE SCHEMA

S’applique à :case marquée oui Databricks SQL oui coché Databricks Runtime

Crée un schéma (base de données) du nom spécifié. S’il existe déjà un schéma du même nom, une exception est levée.

Syntaxe

CREATE SCHEMA [ IF NOT EXISTS ] schema_name
    [ COMMENT schema_comment |
      DEFAULT COLLATION default_collation_name |
      { LOCATION schema_directory | MANAGED LOCATION location_path } |
      RETAIN DROPPED FOR number { HOUR | HOURS | DAY | DAYS | WEEK | WEEKS } |
      WITH DBPROPERTIES ( { property_name = property_value } [ , ... ] ) ] [...]

Paramètres

  • schema_name

    Nom du schéma à créer.

    Les schémas créés dans le catalogue hive_metastore peuvent uniquement contenir des caractères ASCII alphanumériques et des traits de soulignement (INVALID_SCHEMA_OR_RELATION_NAME).

  • SI N'EXISTE PAS

    Crée un schéma du nom spécifié s’il n’en existe pas. S’il existe déjà un schéma du même nom, rien ne se produit.

  • EMPLACEMENT schema_directory

    LOCATION n’est pas pris en charge dans Unity Catalog. Utilisez MANAGED LOCATION si vous souhaitez spécifier un emplacement de stockage pour un schéma dans Unity Catalog.

    schema_directory est un littéral STRING. Le chemin du système de fichiers dans lequel le schéma spécifié doit être créé. Si le chemin spécifié n’existe pas dans le système de fichiers sous-jacent, crée un répertoire avec le chemin. Si l’emplacement n’est pas spécifié, le schéma est créé dans le répertoire par défaut de l’entrepôt, dont le chemin est défini par la configuration statique spark.sql.warehouse.dir.

    Avertissement

    Si un schéma (base de données) est inscrit dans votre metastore Hive au niveau de l’espace de travail, la suppression de ce schéma à l’aide de l’option CASCADE entraîne la suppression récursive de tous les fichiers de cet emplacement de schéma, quel que soit le type de table (managé ou externe).

    Si le schéma est inscrit dans un metastore Unity Catalog, les fichiers des tables managées Unity Catalog sont supprimés de manière récursive. Toutefois, les fichiers des tables externes ne sont pas supprimés. Vous devez gérer ces fichiers directement à l’aide du fournisseur de stockage cloud.

    Par conséquent, pour éviter toute perte accidentelle de données, vous ne devez jamais inscrire un schéma dans un metastore Hive à un emplacement contenant des données existantes. Vous ne devez pas non plus créer de tables externes dans un emplacement géré par des schémas de metastore Hive ou contenant des tables managées Unity Catalog.

  • COMMENTAIRE schema_comment

    Un littéral STRING. Description du schéma.

  • COLLATION PAR DÉFAUT default_collation_name

    S’applique à :check marqué oui Databricks SQL vérifié marqué oui Databricks Runtime 17.1 et versions ultérieures

    Définit éventuellement le classement par défaut pour les objets définis dans le schéma. S’il n’est pas spécifié, le classement par défaut est hérité du catalogue.

  • EMPLACEMENT MANAGÉ location_path

    MANAGED LOCATION est facultatif et nécessite Unity Catalog. Si vous souhaitez spécifier un emplacement de stockage pour un schéma inscrit dans votre Hive au niveau de l’espace de travail ou dans un metastore tiers, utilisez plutôt LOCATION.

    location_path doit être un littéral STRING. Spécifie le chemin d’accès à un emplacement racine de stockage pour le schéma différent de l’emplacement racine de stockage du catalogue ou du metastore. Ce chemin doit être défini dans une configuration d’emplacement externe, et vous devez disposer du privilège CREATE MANAGED STORAGE sur la configuration d’emplacement externe. Vous pouvez utiliser le chemin défini dans la configuration de l’emplacement externe ou un sous-chemin (en d’autres termes, 'abfss://container@storageaccount.dfs.core.windows.net/finance' ou 'abfss://container@storageaccount.dfs.core.windows.net/finance/product'). Pris en charge dans Databricks SQL ou sur les clusters exécutant Databricks Runtime 11.3 LTS et versions ultérieures.

    Consultez également les tables managées du Unity Catalog dans Azure Databricks pour Delta Lake et Apache Iceberg et Créer un metastore Unity Catalog.

  • CONSERVER SUPPRIMÉ POUR le nombre { HEURE | HEURES | JOUR | JOURS | SEMAINE | WEEKS }

    S’applique à :check marqué oui Databricks Runtime 17.3 et versions ultérieures , cochez uniquement le catalogue Unity oui

    Important

    Cette fonctionnalité est disponible en préversion publique.

    Si vous le souhaitez, définissez la période de récupération pour les tables gérées supprimées dans le schéma, la période pendant laquelle les tables supprimées peuvent être récupérées à l’aide de la UNDROP TABLE commande. S’il n’est pas spécifié, le schéma hérite de la période de récupération de son catalogue parent (par défaut, 7 jours). La valeur doit être de 0 heures (pour désactiver la récupération) ou comprise entre 7 et 30 jours, inclus.

    La définition de la période de récupération sur 0 signifie que les tables supprimées ne sont pas récupérables à l’aide UNDROP et que les fichiers de données sont supprimés du stockage cloud dans les 48 heures.

    La période de récupération au niveau du schéma est prioritaire sur n’importe quel paramètre au niveau du catalogue pour les tables du schéma. Ce paramètre s’applique uniquement aux tables supprimées après la configuration de la période de récupération. Une fois la période de récupération terminée, les fichiers de données des tables managées sont supprimés de votre stockage cloud dans les 48 heures.

    Voir aussi Supprimer une table managée.

  • WITH DBPROPERTIES ( property_name = property_value [ , … ] )

    Propriétés du schéma sous forme de paires clé-valeur.

  • OPTIONS

    Définit les paramètres spécifiques au type de connexion nécessaires à l’identification du catalogue au niveau de la connexion.

    • option

      La clé d’option. La clé peut comporter un ou plusieurs identificateurs séparés par un point, ou un littéral STRING.

      Les clés d’option doivent être uniques et respectent la casse.

    • value

      Valeur de l’option. La valeur doit être une BOOLEANSTRING , INTEGERDECIMALou constante. La valeur peut également être un appel à la fonction SQL SECRET. Par exemple, le value pour password peut comprendre secret('secrets.r.us', 'postgresPassword') au lieu d’entrer le mot de passe littéral.

Exemples

  -- 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';

-- Create a schema with a 14-day recovery period for dropped managed tables.
> CREATE SCHEMA customer_sc RETAIN DROPPED FOR 14 DAYS;

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