Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :
Databricks SQL
Databricks Runtime
Définit une table à l’aide de la définition et des métadonnées d’une table existante.
Delta Lake prend en charge CREATE TABLE LIKE dans Databricks SQL et Databricks Runtime 13.3 LTS et versions ultérieures.
Dans Databricks Runtime 12.2 LTS et ci-dessous, utilisez CREATE TABLE AS.
Syntaxe
CREATE TABLE [ IF NOT EXISTS ] table_name LIKE source_table_name [table_clauses]
table_clauses
{ USING data_source |
LOCATION path |
TBLPROPERTIES clause |
ROW FORMAT row_format |
STORED AS file_format } [...]
row_format
{ SERDE serde_class [ WITH SERDEPROPERTIES (serde_key = serde_val [, ...] ) ] |
{ DELIMITED [ FIELDS TERMINATED BY fields_terminated_char [ ESCAPED BY escaped_char ] ]
[ COLLECTION ITEMS TERMINATED BY collection_items_terminated_char ]
[ MAP KEYS TERMINATED BY map_key_terminated_char ]
[ LINES TERMINATED BY row_terminated_char ]
[ NULL DEFINED AS null_char ] } }
property_key
{ identifier [. ...] | string_literal }
Paramètres
SI N'EXISTE PAS
S’il est spécifié, l’instruction est ignorée si
table_nameexiste déjà.-
Nom de la table à créer. Le nom ne doit pas inclure de spécification temporelle ou de spécification d’options. Si le nom n’est pas qualifié, la table est créée dans le schéma actuel. Il ne doit pas y avoir de table_name existant.
-
Nom de la table dont la définition est copiée.
source_table_nameettable_namedoivent se trouver sur le metastore Hive ou les deux sur Unity Catalog. table_clauses
Vous pouvez spécifier un format de source de données, un emplacement et des propriétés définies par l’utilisateur pour la nouvelle table. Chaque sous-clause ne peut être spécifiée qu’une seule fois.
LOCATION chemin d’accès
Chemin d’accès au répertoire sous lequel les données de table sont stockées, qui peut être un chemin d’accès sur le stockage distribué. Si vous spécifiez un emplacement, la nouvelle table devient une table externe. Si vous ne spécifiez aucun emplacement, la table est une table managée.
Vous ne pouvez créer aucune table externe dans des emplacements qui chevauchent l’emplacement des tables managées.
-
(Facultatif) Définit une ou plusieurs propriétés définies par l’utilisateur.
UTILISATION de data_source
Format de fichier à utiliser pour la table.
data_sourcedoit faire partie de :TEXTCSVJSONJDBCPARQUETDELTA
Les formats de fichiers supplémentaires suivants à utiliser pour la table sont pris en charge dans Databricks Runtime :
ORCHIVELIBSVM- un nom de classe complet d’une implémentation personnalisée de
org.apache.spark.sql.sources.DataSourceRegister.
Si vous ne spécifiez pas
USING, le format de la table source sera hérité.Les éléments suivants s’appliquent à : Databricks Runtime
HIVEest pris en charge pour créer une table Hive SerDe dans Databricks Runtime. Vous pouvez spécifier la clause spécifique à Hivefile_formatetrow_formatà l'aide de la clauseOPTIONS, qui est un mappage de chaînes indépendant de la casse. Lesoption_keyssont les suivants :FILEFORMATINPUTFORMATOUTPUTFORMATSERDEFIELDDELIMESCAPEDELIMMAPKEYDELIMLINEDELIM
FORMAT DE LIGNE row_format
S’applique à :
Databricks RuntimePour spécifier une SerDe personnalisée, définissez la valeur
SERDEet spécifiez le nom de classe complet d’une SerDe personnalisée et des propriétés de SerDe facultatives. Pour utiliser la SerDe native, définissez la valeurDELIMITEDet spécifiez le délimiteur, un caractère d’échappement, un caractère null, etc.SERDEPROPERTIES
Liste de paires clé-valeur utilisées pour étiqueter la définition de SerDe.
CHAMPS TERMINÉS PAR
Définissez un séparateur de colonnes.
ÉCHAPÉE PAR
Définissez le mécanisme d’échappement.
ÉLÉMENTS DE COLLECTION ARRÊTÉS PAR
Définissez un séparateur d'éléments de collection.
CLÉS DE MAP TERMINÉES PAR
Définissez un séparateur de clés de mappage.
LIGNES TERMINÉES PAR
Définissez un séparateur de lignes.
NULL DÉFINI COMME
Définissez la valeur spécifique pour
NULL.STOCKÉ COMME
Format de fichier pour la table. Les formats disponibles sont
TEXTFILE,SEQUENCEFILE,RCFILE,ORC,PARQUETetAVRO. Vous pouvez également spécifier vos propres formats d’entrée et de sortie à l’aide deINPUTFORMATetOUTPUTFORMAT. Seuls les formatsTEXTFILE,SEQUENCEFILEetRCFILEpeuvent être utilisés avecROW FORMAT SERDE, et seul le formatTEXTFILEpeut être utilisé avecROW FORMAT DELIMITED.
Notes
Selon la source de données et de la cible, les propriétés des tables ne peuvent pas toutes être transférées.
CREATE TABLE LIKE lorsque la source est une table Delta Lake :
| Fonctionnalité/propriété | La cible est une table non Delta | La cible est une table Delta |
|---|---|---|
| COMMENTAIRE | Oui | Oui |
| Colonnes | Oui | Oui |
| Colonnes de partition | Oui | Oui |
| Configuration | Non | Oui |
| Contrainte de table | Non applicable | Oui |
| Protocole Delta | Non applicable | Oui |
CREATE TABLE LIKE lorsque la source n’est pas une table Delta Lake :
| Fonctionnalité/propriété | La cible est une table non Delta | La cible est une table Delta |
|---|---|---|
| COMMENTAIRE | Oui | Oui |
| Colonnes | Oui | Oui |
| Colonnes de partition | Oui | Oui |
| Configuration | Oui | Oui |
| Contrainte de table | Non | Oui |
| Protocole Delta | Non (protocole par défaut actuel pour cette session) | Oui |
Exemples
-- Create table using a new location
> CREATE TABLE Student_Dupli LIKE Student LOCATION '/path/to/data_files';
-- Create table like using a data source
> CREATE TABLE Student_Dupli LIKE Student USING CSV LOCATION '/path/to/csv_files';