Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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_nameinstructie 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_nameentable_namemoeten 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_sourcemoet een van de volgende zijn:TEXTCSVJSONJDBCPARQUETDELTA
De volgende aanvullende bestandsindelingen die voor de tabel moeten worden gebruikt, worden ondersteund in Databricks Runtime:
ORCHIVELIBSVM- een volledig gekwalificeerde klassenaam van een aangepaste implementatie van
org.apache.spark.sql.sources.DataSourceRegister.
Als u
USINGniet opgeeft, zal de indeling van de brontabel worden overgenomen.Het volgende is van toepassing op: Databricks Runtime
HIVEwordt ondersteund voor het maken van een Hive SerDe-tabel in Databricks Runtime. U kunt de Hive-specifiekefile_formatcomponent opgeven enrow_formatdeOPTIONScomponent gebruiken. Dit is een niet hoofdlettergevoelige tekenreekstoewijzing. Deoption_keysvolgende zijn:FILEFORMATINPUTFORMATOUTPUTFORMATSERDEFIELDDELIMESCAPEDELIMMAPKEYDELIMLINEDELIM
RIJOPMAAK row_format
Van toepassing op:
Databricks RuntimeAls u een aangepaste SerDe wilt opgeven, stelt u deze in op
SERDEen 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 opDELIMITEDen 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
TEXTFILESEQUENCEFILE.RCFILEORCPARQUETAVROU kunt ook uw eigen indelingen voor invoer en uitvoer opgeven viaINPUTFORMATenOUTPUTFORMAT. Alleen indelingenTEXTFILE,SEQUENCEFILEenRCFILEkunnen worden gebruikt metROW FORMAT SERDEen alleenTEXTFILEmetROW 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';