CREATE TABLE LIKE
Van toepassing op: Databricks SQL
Databricks Runtime
Definieert een tabel met behulp van de definitie en metagegevens van een bestaande tabel of 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 tabel die u wilt maken. De naam mag geen tijdelijke specificatie of optiesspecificatie bevatten. Als de naam niet is gekwalificeerd, wordt de tabel gemaakt in het huidige schema. Er mag nog geen table_name bestaan.
-
De naam van de tabel waarvan de definitie wordt gekopieerd.
source_table_name
entable_name
moeten beide zich in de Hive-metastore bevinden of beide in de Unity-catalogus. table_clauses
Geef desgewenst een gegevensbronindeling, locatie en door de gebruiker gedefinieerde eigenschappen voor de nieuwe tabel op. Elke subcomponent mag slechts eenmaal worden opgegeven.
LOCATIEpad
Pad naar de map waarin tabelgegevens worden opgeslagen. Dit kan een pad zijn voor gedistribueerde opslag. Als u een locatie opgeeft, wordt de nieuwe tabel een externe tabel. Als u geen locatie opgeeft, is de tabel een beheerde tabel.
U kunt geen externe tabellen maken op locaties die overlappen met de locatie van beheerde tabellen.
-
U kunt desgewenst een of meer door de gebruiker gedefinieerde eigenschappen instellen.
DATA_SOURCE gebruiken
De bestandsindeling die moet worden gebruikt voor de tabel.
data_source
moet een van de volgende zijn:TEXT
CSV
JSON
JDBC
PARQUET
DELTA
De volgende aanvullende bestandsindelingen die voor de tabel moeten worden gebruikt, 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 opgeeft, zal de indeling van de brontabel worden overgenomen.Het volgende is van toepassing op: Databricks Runtime
HIVE
wordt ondersteund voor het maken van een Hive SerDe-tabel 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 opgeven, stelt u deze in op
SERDE
en geeft u de volledig gekwalificeerde klassenaam van een aangepaste SerDe en optionele SerDe-eigenschappen op. Als u de systeemeigen SerDe wilt gebruiken, stelt u in opDELIMITED
en geeft u het scheidingsteken, het escapeteken, het null-teken enzovoort op.SERDEPROPERTIES
Een lijst met sleutel-waardeparen die worden gebruikt om de SerDe-definitie te taggen.
VELDEN BEËINDIGD DOOR
Definieer een kolomscheider.
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 tabel. 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 tabellen worden overgedragen.
CREATE TABLE LIKE
wanneer de bron- een Delta Lake-tabel is:
Functie/eigenschap | Doel is geen Delta-tabel | Doel is een Delta-tabel |
---|---|---|
OPMERKING | Ja | Ja |
Kolommen | Ja | Ja |
Partitiekolommen | Ja | Ja |
Configuratie | Nr. | Ja |
Tabelbeperking | Niet van toepassing | Ja |
Delta Protocol | Niet van toepassing | Ja |
CREATE TABLE LIKE
wanneer de bron geen Delta Lake-tabel is:
Functie/eigenschap | Het doel is geen Delta-tabel | Doel is een Delta-tabel |
---|---|---|
OPMERKING | Ja | Ja |
Kolommen | Ja | Ja |
Partitiekolommen | Ja | Ja |
Configuratie | Ja | Ja |
Tabelbeperking | 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';