CREATE TABLE LIKE
Van toepassing op: Databricks SQL Databricks Runtime
Definieert een table met behulp van de definitie en metagegevens van een bestaande table of een weergave.
Delta Lake biedt ondersteuning CREATE TABLE LIKE
voor Databricks SQL en Databricks Runtime 13.3 LTS en hoger.
Gebruik in Databricks Runtime 12.2 LTS en lagere versies CREATE TABLE AS.
Syntaxis
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 }
Parameters
ALS DEZE NIET BESTAAT
Als deze optie is opgegeven, wordt de instructie genegeerd als de
table_name
instructie al bestaat.-
De naam van de table die u wilt maken. De naam mag geen tijdelijke specificatie of optiesspecificatie bevatten. Als de naam niet is gespecificeerd, wordt de table gemaakt in de huidige schema. Er mag nog geen table_name bestaan.
-
De naam van de table waarvan de definitie wordt gekopieerd.
source_table_name
entable_name
moeten beide zich in de Hive-metastore bevinden of beide zich in Unity Catalogbevinden. table_clauses
Geef desgewenst een gegevensbronindeling, locatie en door de gebruiker gedefinieerde eigenschappen op voor de nieuwe table. Elke subcomponent mag slechts eenmaal worden opgegeven.
LOCATIEpad
Het pad naar de map wheretable waar gegevens zijn opgeslagen, wat een pad kan zijn op gedistribueerde opslag. Als u een locatie opgeeft, wordt de nieuwe table een externe table. Als u geen locatie opgeeft, is de table een door beheerde table.
U kunt geen externe tables creëren op locaties die samenvallen met de locatie van beheerde tables.
-
U kunt desgewenst een of meer door de gebruiker gedefinieerde eigenschappen instellen.
DATA_SOURCE gebruiken
De bestandsindeling die moet worden gebruikt voor de table.
data_source
moet een van de volgende zijn:TEXT
CSV
JSON
JDBC
PARQUET
DELTA
De volgende aanvullende bestandsindelingen die moeten worden gebruikt voor de table worden ondersteund in Databricks Runtime:
ORC
HIVE
LIBSVM
- een volledig gekwalificeerde klassenaam van een aangepaste implementatie van
org.apache.spark.sql.sources.DataSourceRegister
.
Als u
USING
niet specificeert, wordt de indeling van de bron table overgenomen.Het volgende is van toepassing op: Databricks Runtime
HIVE
wordt ondersteund om een Hive-SerDe table te maken in Databricks Runtime. U kunt de Hive-specifiekefile_format
component opgeven enrow_format
deOPTIONS
component gebruiken. Dit is een niet hoofdlettergevoelige tekenreekstoewijzing. Deoption_keys
volgende zijn:FILEFORMAT
INPUTFORMAT
OUTPUTFORMAT
SERDE
FIELDDELIM
ESCAPEDELIM
MAPKEYDELIM
LINEDELIM
RIJOPMAAK row_format
Van toepassing op: Databricks Runtime
Als u een aangepaste SerDe wilt specificeren, ga naar set tot
SERDE
en voer de volledig gekwalificeerde klassenaam van een aangepaste SerDe en eventuele optionele SerDe-eigenschappen in. Gebruik de systeemeigen SerDe door set te doen totDELIMITED
en geef daarbij het scheidingsteken, het escapeteken, het null-teken, enzovoort op.SERDEPROPERTIES
Een set van list sleutel-waardeparen die worden gebruikt voor het taggen van de SerDe-definitie.
VELDEN BEËINDIGD DOOR
Definieer een column scheider.
ONTSNAPT DOOR
Definieer het escape-mechanisme.
VERZAMELINGSITEMS BEËINDIGD DOOR
Definieer een scheidingsteken voor verzamelingsitems.
KAARTSLEUTELS BEËINDIGD DOOR
Definieer een scheidingsteken voor kaartsleutels.
REGELS BEËINDIGD DOOR
Definieer een rijscheidingsteken.
NULL GEDEFINIEERD ALS
Definieer de specifieke waarde voor
NULL
.OPGESLAGEN ALS
De bestandsindeling voor de table. Beschikbare indelingen zijn onder andere , , , , en
TEXTFILE
SEQUENCEFILE
.RCFILE
ORC
PARQUET
AVRO
U kunt ook uw eigen indelingen voor invoer en uitvoer opgeven viaINPUTFORMAT
enOUTPUTFORMAT
. Alleen indelingenTEXTFILE
,SEQUENCEFILE
enRCFILE
kunnen worden gebruikt metROW FORMAT SERDE
en alleenTEXTFILE
metROW FORMAT DELIMITED
.
Opmerkingen
Afhankelijk van de gegevensbron en het doel kunnen niet alle eigenschappen van tables worden overgedragen.
CREATE TABLE LIKE
wanneer de bron een Delta Lake Tableis:
Functie/eigenschap | Het doel is geen Delta-Table | Het doel is een Delta Table |
---|---|---|
OPMERKING | Ja | Ja |
Columns | Ja | Ja |
Partition columns | Ja | Ja |
Configuratie | Nr. | Ja |
Table Constraint | Niet van toepassing | Ja |
Delta Protocol | Niet van toepassing | Ja |
CREATE TABLE LIKE
wanneer de bron geen Delta Lake-Tableis:
Functie/eigenschap | Het doelwit is geen Delta Table | Het doel is Delta Table |
---|---|---|
OPMERKING | Ja | Ja |
Columns | Ja | Ja |
Partition columns | Ja | Ja |
Configuratie | Ja | Ja |
Table Constraint | Nr. | Ja |
Delta Protocol | Nee (huidig standaardprotocol voor die sessie) | Ja |
Voorbeelden
-- 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';