Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:
Databricks SQL
Databricks Runtime
Felügyelt, ideiglenes vagy külső táblát határoz meg, és nem ideiglenes táblák esetén opcionálisan adatforrást használ.
A CREATE TEMP TABLE parancs létrehoz egy munkamenet-helyi ideiglenes táblát, amely ideiglenesen megőrzi az adatokat a munkamenet során. A táblanévnek nem lehet minősítve (séma vagy katalóguselőtag nélkül). Az ideiglenes táblák nem találhatók az aktuális sémában vagy katalógusban, és csak az őket létrehozó munkameneten belül érhetők el. A Databricks automatikusan elveti az ideiglenes táblákat, amikor a munkamenet véget ér.
Szintaxis
{ { [CREATE OR] REPLACE TABLE | CREATE [EXTERNAL] TABLE [ IF NOT EXISTS ] | CREATE { TEMP | TEMPORARY } TABLE}
table_name
[ table_specification ]
[ USING data_source ]
[ table_clauses ]
[ AS query ] }
table_specification
( { column_identifier column_type [ column_properties ] } [, ...]
[ , table_constraint ] [...] )
column_properties
{ NOT NULL |
COLLATE collation_name |
GENERATED ALWAYS AS ( expr ) |
GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY [ ( [ START WITH start | INCREMENT BY step ] [ ...] ) ] |
DEFAULT default_expression |
COMMENT column_comment |
column_constraint |
MASK clause } [ ... ]
table_clauses
{ OPTIONS clause |
PARTITIONED BY clause |
CLUSTER BY clause |
clustered_by_clause |
LOCATION path [ WITH ( CREDENTIAL credential_name ) ] |
COMMENT table_comment |
TBLPROPERTIES clause |
DEFAULT COLLATION default_collation_name |
WITH { ROW FILTER clause } } [...]
clustered_by_clause
{ CLUSTERED BY ( cluster_column [, ...] )
[ SORTED BY ( { sort_column [ ASC | DESC ] } [, ...] ) ]
INTO num_buckets BUCKETS }
Mielőtt a Databricks Runtime 16.1 START WITH-t alkalmazná, annak meg kell előznie a INCREMENT BY-et.
Paraméterek
HELYETTESÍT
Ha meg van adva, lecseréli a táblát és annak tartalmát, ha már létezik. Ez a záradék csak Delta- és Apache Iceberg-táblák esetében támogatott.
REPLACEMegőrzi a táblaelőzményeket , és jogosultságokat, sorszűrőket és oszlopmaszkokat biztosít.Megjegyzés
Az Azure Databricks határozottan javasolja a táblák elvetése és újbóli létrehozása helyett a használatát
REPLACE.KÜLSŐ
Ha meg van adva, létrehoz egy külső táblát. Külső tábla létrehozásakor meg kell adnia egy
LOCATIONzáradékot is. Amikor egy külső táblát elvetnek, aLOCATION-nél található fájlok nem lesznek elvetve.TEMP vagy IDEIGLENES
A következőkre vonatkozik:
Databricks SQLFontos
Ez a funkció nyilvános előzetes verzióban van.
Ha meg van adva, létrehoz egy ideiglenes táblát. Ideiglenes tábla létrehozásakor ne adjon meg adatforrást a záradékban vagy záradékban
USINGLOCATION. A következő záradékok nem támogatottak:PARTITIONED BY,CLUSTER BYés sorszintű szűrők. A következő oszloptulajdonságok nem támogatottak:GENERATEDoszlopmaszkok.HA NEM LÉTEZIK
Ha meg van adva, és már létezik ilyen nevű tábla, a rendszer figyelmen kívül hagyja az utasítást.
IF NOT EXISTSnem létezhet együttREPLACE, ami azt jelenti, hogyCREATE OR REPLACE TABLE IF NOT EXISTSnem engedélyezett.-
A létrehozandó tábla neve. A név nem tartalmazhat időbeli specifikációt vagy beállításspecifikációt. Ha a név nincs minősítve, a tábla az aktuális sémában jön létre.
A
hive_metastorelétrehozott táblák csak alfanumerikus ASCII-karaktereket és aláhúzásjeleket (INVALID_SCHEMA_OR_RELATION_NAME) tartalmazhatnak.A jéghegytáblákat a Unity Katalógusban kell létrehozni. Nem támogatott az
hive_metastoreIceberg-táblák létrehozása.
Ideiglenes táblák létrehozásakor használjon nem minősített nevet (katalógus vagy séma nélkül). Ha egy ideiglenes tábla vagy nézet neve megegyezik az állandó objektum nevével, a nem minősített név az ideiglenes objektumra hivatkozik. A katalógust vagy sémát tartalmazó minősített névvel érheti el az állandó objektumokat. További információt a Táblázat és a felbontás megtekintése című témakörben talál.
tábla-meghatározás
Ez az opcionális záradék határozza meg az oszlopok listáját, azok típusait, tulajdonságait, leírását és oszlopkorlátjait.
Ha nem definiálja az oszlopokat a táblázatsémában, meg kell adnia vagy a
AS queryvagy aLOCATION.-
Az oszlop egyedi neve.
Az oszlopleképezési tulajdonság (
'delta.columnMapping.mode' = 'name') nélküli Delta-táblák oszlopazonosítói nem tartalmazhatnak szóközöket vagy a következő karaktereket:, ; { } ( ) \n \t =.A táblák oszlopazonosítóinak
AVROaláhúzásjellel () vagy Unicode betűvel (_beleértve a nem ASCII betűket is) kell kezdődniük, és Unicode-betűk, számjegyek és aláhúzásjelek kombinációjával kell követni.A táblák
ICEBERGoszlopazonosítóinak egyedinek, kis- és nagybetűket nem megkülönböztetőnek kell lenniük, és a szabványos SQL-azonosító szabályokat kell követniük. Kerülje a szóközök vagy speciális karakterek használatát, mivel előfordulhat, hogy az összes lekérdezési motor nem támogatja őket. -
Az oszlop adattípusát adja meg. Az Azure Databricks által támogatott adattípusokat nem minden adatforrás támogatja.
NOT NULL
Ha meg van adva, az oszlop nem fogadja el
NULLaz értékeket. Ez a záradék csak Delta- és Iceberg-táblák esetében támogatott.RENDEZÉSI collation_name
A következőkre vonatkozik:
Databricks SQL
Databricks Runtime 16.1 és újabb verziókSTRINGéscolumn_typeopcionálisan megadja az oszlopra vonatkozó sorrendet az összehasonlítási és rendezési műveletekhez. Az alapértelmezett rendezés azdefault_collation_nametábla.MINDIG GENERÁLT ( expr )
A záradék megadásakor az oszlop értékét a megadott
exprérték határozza meg.A táblázatnak
DEFAULT COLLATIONUTF8_BINARYkell lennie.exprA tábla literálokból, oszlopazonosítókból és determinisztikus, beépített SQL-függvényekből vagy operátorokból állhat, kivéve:- Függvények összesítése
- Elemzési ablakfüggvények
- Rangsorolási ablakfüggvények
- Táblázatos értékű generátor függvények
- Olyan oszlopok, amelyek nem
UTF8_BINARYtípusú rendezéssel rendelkeznek
Emellett
exprnem tartalmazhat lekérdezést.GENERÁLVA { ALWAYS | ALAPÉRTELMEZÉS SZERINT } IDENTITÁSKÉNT [ ( [ KEZDÉS ] [ NÖVEKMÉNY LÉPÉSENKÉNT ] ) ] ]
A következőkre vonatkozik:
Databricks SQL
Databricks Runtime 10.4 LTS és újabbIdentitásoszlopot definiál. Amikor a táblába ír, és nem ad meg értékeket az identitásoszlophoz, a rendszer automatikusan hozzárendel egy egyedi és statisztikailag növekvő értéket (illetve csökkenőt, ha a
stepnegatív). Ez a záradék csak Delta-táblák esetében támogatott. Ez a záradék csak BIGINT adattípusú oszlopokhoz használható.Az automatikusan hozzárendelt értékek a következővel
startkezdődnek és haladnak a következővelstep: . A hozzárendelt értékek egyediek, de nem garantáltan egybefüggőek. Mindkét paraméter megadása nem kötelező, az alapértelmezett érték pedig 1.stepnem lehet0.Ha az automatikusan hozzárendelt értékek túllépik az identitásoszlop típusának tartományát, a lekérdezés sikertelen lesz.
Használat esetén
ALWAYSnem adhat meg saját értékeket az identitásoszlophoz.A következő műveletek nem támogatottak:
-
PARTITIONED BYazonosító oszlop -
UPDATEazonosító oszlop
Megjegyzés
Az identitásoszlop táblán való deklarálása letiltja az egyidejű tranzakciókat. Csak olyan esetekben használjon identitásoszlopokat, amikor nincs szükség egyidejű írásra a céltáblába.
-
ALAPÉRTELMEZETT default_expression
A következőkre vonatkozik:
Databricks SQL
Databricks Runtime 11.3 LTS és újabbMeghatároz egy
DEFAULTértéket az oszlophoz, amelyet aINSERT,UPDATEésMERGE ... INSERThasznál, amikor az oszlop nincs meghatározva.Ha nincs megadva alapértelmezett érték, a
DEFAULT NULLalkalmazásra kerül a null értékű oszlopokhoz.default_expressionlehetnek literálok, és beépített SQL-függvények vagy operátorok, kivéve:- Függvények összesítése
- Elemzési ablakfüggvények
- Rangsorolási ablakfüggvények
- Táblázatos értékű generátor függvények
Emellett
default_expressionnem tartalmazhat lekérdezést.DEFAULT,CSV,JSONésPARQUETforrások esetében támogatottORC.MEGJEGYZÉS column_comment
Karakterlánc-literál az oszlop leírására.
-
Elsődleges kulcsot vagy idegenkulcs-korlátozást ad hozzá egy tábla oszlopához.
A korlátozások nem támogatottak a
hive_metastorekatalógus tábláiban.Ha ellenőrző korlátozást szeretne hozzáadni egy táblához, használja a következőt ALTER TABLE:
-
A következőkre vonatkozik:
Databricks SQL
Databricks Runtime 12.2 LTS és a Unity Catalog felett csak 
Oszlopmaszk funkciót ad hozzá, amely anonimizálja a bizalmas adatokat. Az oszlop minden további lekérdezése megkapja a függvény kiértékelésének eredményét az oszlopon az oszlop eredeti értéke helyett. Ez hasznos lehet részletes hozzáférés-vezérlési célokra, ahol a függvény megvizsgálhatja az invokáló felhasználó azonosságát vagy csoporttagságát annak eldöntésére, hogy el kell-e rejteni az értéket.
Ha lecserél egy táblát, és az új tábla ugyanazokat az oszlopneveket tartalmazza, mint az eredeti, akkor a meglévő oszlopmaszkok megmaradnak, még akkor is, ha azok nincsenek explicit módon újradefiniálva. Ez megakadályozza az adatelérési szabályzatok véletlen elvesztését.
-
Információs elsődleges kulcsot vagy információs idegenkulcs-korlátozásokat ad hozzá a táblához.
A kulcsfontosságú korlátozások nem támogatottak a
hive_metastorekatalógus tábláinál.Ha ellenőrző korlátozást szeretne hozzáadni egy táblához, használja a következőt ALTER TABLE:
-
DATA_SOURCE HASZNÁLATA
data_sourcelehet fájlformátum vagy összevont JDBC-adatforrás.A fájlformátumnak a következők egyikének kell lennie:
AVROBINARYFILECSVDELTAICEBERGJSONORCPARQUETTEXT
Az
DELTAvagyICEBERGfájlformátumok esetén meg kell adnia egyLOCATIONfájlt, kivéve, ha a táblakatalógushive_metastore.A következő összevont JDBC-források támogatottak:
POSTGRESQLSQLSERVERMYSQLBIGQUERYNETSUITEORACLEREDSHIFTSNOWFLAKESQLDWSYNAPSESALESFORCESALESFORCE_DATA_CLOUDTERADATAWORKDAY_RAASMONGODB
Összevont JDBC-forrás megadásakor a
OPTIONSzáradékot is meg kell adnia a szükséges kapcsolati adatokkal. Az összevont adatforrások lekérdezéséről további információt a JDBC-t használó adatbázisok lekérdezése című témakörben talál.A Databricks Runtime a következő további fájlformátumokat támogatja a táblához:
JDBCLIBSVM- Egy teljesen minősített osztálynév egyéni implementációja
org.apache.spark.sql.sources.DataSourceRegister.
Ha
USINGnincs megadva, az alapértelmezett érték a következőDELTA.A
USINGzáradék ideiglenes táblák esetében nem támogatott.A következőkre vonatkozik: Databricks Runtime
A Databricks Runtime támogatja
HIVEHive SerDe-tábla létrehozását. Megadhatja a Hive-specifikusfile_formatésrow_formathasználatát aOPTIONSzáradék segítségével, amely kis- és nagybetűket nem megkülönböztető sztringtérkép. Aoption_keyskövetkezők:FILEFORMATINPUTFORMATOUTPUTFORMATSERDEFIELDDELIMESCAPEDELIMMAPKEYDELIMLINEDELIM
táblázat_feltételek
Opcionálisan megadhatja az új tábla helyét, particionálását, fürtözését, beállításait, megjegyzéseit és felhasználó által definiált tulajdonságait. Minden al záradék csak egyszer adható meg.
-
Nem kötelező záradék a tábla oszlopok egy részhalmaza szerinti particionálásához.
A
PARTITIONED BYzáradék ideiglenes táblák esetében nem támogatott.Megjegyzés
Az Azure Databricks a felügyelt Iceberg-táblák esetén nem támogatja
PARTITIONED BY. Ehelyett használjon folyékony fürtözést (CLUSTER BY) az adatelrendezés optimalizálásához. A Delta-táblák esetében, ha kihagyja a tábladefiníciót, az Azure Databricks particionálási oszlopokat helyez el a tábla végén, még akkor is, ha az oszlop specifikációjában korábban felsorolta őket. -
A következőkre vonatkozik:
Databricks SQL
Databricks Runtime 13.3 és újabb verzióiraOpcionális záradék egy Delta- vagy Iceberg tábla oszlopainak egy részhalmaza alapján történő fürtözéséhez. Lásd: Táblákhoz folyékony klaszterezés használata. Más táblák fürtözéséhez használja ezt:
clustered_by_clause.Iceberg-táblák esetén le kell tiltania a törlési vektorokat és a sorazonosítókat a
CLUSTER BYhasználatakor.Használjon automatikus folyékony fürtözést,
CLUSTER BY AUTOés a Databricks intelligensen választja ki a fürtözési kulcsokat a lekérdezési teljesítmény optimalizálásához.A folyékony fürtözés nem kombinálható a
PARTITIONED BY-val. csoportosító_záradék
Opcionálisan csoportosíthatja a táblát vagy az egyes partíciókat az oszlopok részhalmazával rögzített számú hash vödörbe.
Ez a záradék delta- vagy Iceberg-táblák esetében nem támogatott. A
CLUSTER BYhasználható helyette.FÜRTÖZÖTT
Meghatározza azokat az oszlopokat, amelyek szerint az egyes partíciókat, vagy a táblát fürtösítené, ha partícionálás nincs megadva.
-
Egy azonosító, amely a táblában lévő
column_identifier-ra hivatkozik. Ha egynél több oszlopot ad meg, nem lehetnek ismétlődések. Mivel a különválasztás a partíció szintjén működik, nem nevezhet el egy partícióoszlopot különválasztó oszlopként sem.A
CLUSTERED BYzáradék ideiglenes táblák esetében nem támogatott.
-
RENDEZVE
Opcionálisan fenntart egy rendezési sorrendet minden gyűjtő sorához.
sort_column
Egy oszlop, amely szerint rendezheti a tartályt. Az oszlop nem lehet partícióoszlop. A rendezési oszlopoknak egyedinek kell lenniük.
ASC vagy DESC
Megadhatja, hogy növekvő (
sort_column) vagy csökkenő (ASC) sorrendben van-eDESCrendezve. Az alapértelmezett értékek a következőASC: .
NUM_BUCKETS GYŰJTŐKBE
Egy EGÉSZ SZÁM konstans, amely megadja, hogy hány gyűjtőbe vannak osztva az egyes partíciók (vagy a tábla, ha nincs megadva particionálás).
LOCATION útvonal [ WITH ( CREDENTIAL credential_name ) ]
A táblaadatok tárolására szolgáló könyvtár opcionális elérési útja, amely az elosztott tároló elérési útja lehet.
pathkarakterlánc-literálnak kell lennie. Ha nem ad meg helyet, a rendszer a táblátmanaged tabletekinti, és az Azure Databricks létrehoz egy alapértelmezett táblahelyet.A hely megadása külső táblává teszi a táblát.
A katalógusban nem található táblák esetében a táblát
hive_metastorekülső helynekpathkell védenie, hacsak nincs megadva érvényes tárolási hitelesítő adat.Nem hozhat létre külső táblákat olyan helyeken, amelyek átfedésben vannak a felügyelt táblák helyével.
A Delta-táblák esetében a tábla a konfigurációját attól az időponttól örökli, ha az
LOCATIONadott útvonalon már léteznek adatok. Ennek eredményeképpen minden megadottTBLPROPERTIES,table_specificationvagyPARTITIONED BYzáradéknak pontosan meg kell egyeznie a Delta-helyen lévő meglévő adatokkal.Iceberg-táblák esetén a
LOCATIONzáradék nem támogatott. A külföldi Iceberg-táblák automatikusan regisztrálva lesznek egy külföldi katalógus létrehozásakor, és felügyelt Iceberg-táblákat kell létrehoznia hely megadása nélkül.A
LOCATIONzáradék ideiglenes táblák esetében nem támogatott.-
Beállít vagy alaphelyzetbe állít egy vagy több felhasználó által megadott táblabeállítást.
MEGJEGYZÉS table_comment
String literál a táblázat leírásához.
-
Igény szerint beállíthat egy vagy több felhasználó által definiált tulajdonságot.
ALAPÉRTELMEZETT BETŰREND default_collation_name
A következőkre vonatkozik:
Databricks SQL
Databricks Runtime 16.3 és újabbA következőhöz használandó alapértelmezett rendezést határozza meg:
-
STRINGtábla oszlopai és mezői -
DEFAULTkifejezés - A
CREATE TABLE AS querytörzse
CHECKkorlátozásokhoz és a létrehozott oszlopkifejezésekhez aUTF8_BINARYalapértelmezett rendezés szükséges.Ha nincs megadva, az alapértelmezett rendezés abból a sémából származik, amelyben a tábla létrejön.
-
-
A következőkre vonatkozik:
Databricks SQL
Databricks Runtime 12.2 LTS és a Unity Catalog felett csak 
Sorszűrő függvényt ad hozzá a táblához. A tábla minden további lekérdezése megkapja azoknak a soroknak a részhalmazát, amelyekben a függvény logikai értéke IGAZ. Ez hasznos lehet részletes hozzáférés-vezérlési célokra, ahol a függvény megvizsgálhatja a behívó felhasználó identitását vagy csoporttagságát, hogy eldöntse, szűr-e bizonyos sorokat.
Táblázat cseréjekor a meglévő sorszűrők megmaradnak, még akkor is, ha nincsenek explicit módon újradefiniáltak. Ez megakadályozza az adatelérési szabályzatok véletlen elvesztését.
A
ROW FILTERzáradék ideiglenes táblák esetében nem támogatott.
-
-
Ez az opcionális záradék feltölti a táblát a forrásból származó
queryadatokkal. Ha megad egyquery, akkor nem kell megadniatable_specification-t. A táblaséma a lekérdezésből származik.Vegye figyelembe, hogy az Azure Databricks felülírja a mögöttes adatforrást a bemeneti lekérdezés adataival, hogy a tábla létrehozása pontosan ugyanazokat az adatokat tartalmazza, mint a bemeneti lekérdezés.
Példák
-- Creates a Delta table
> CREATE TABLE student (id INT, name STRING, age INT);
-- Creates a managed Iceberg table
> CREATE TABLE edu.enrollment.student (id INT, name STRING, age INT) USING ICEBERG;
-- Use data from another table
> CREATE TABLE student_copy AS SELECT * FROM student;
-- Creates a CSV table from an external directory
> CREATE TABLE student USING CSV LOCATION '/path/to/csv_files';
-- Specify table comment and properties
> CREATE TABLE student (id INT, name STRING, age INT)
COMMENT 'this is a comment'
TBLPROPERTIES ('foo'='bar');
-- Specify table comment and properties with different clauses order
> CREATE TABLE student (id INT, name STRING, age INT)
TBLPROPERTIES ('foo'='bar')
COMMENT 'this is a comment';
-- Create partitioned table
> CREATE TABLE student (id INT, name STRING, age INT)
PARTITIONED BY (age);
-- Create a table with a generated column
> CREATE TABLE rectangles(a INT, b INT,
area INT GENERATED ALWAYS AS (a * b));
-- Create a table with a string column with a case-insensitive collation.
> CREATE TABLE names(name STRING COLLATE UNICODE_CI);
-- Create a table with a default collation and override for a specific column.
> CREATE TABLE names(name STRING, first_name STRING, id STRING COLLATE UTF8_BINARY) DEFAULT COLLATION UNICODE_CI;
-- Create an external table connected to Oracle
> CREATE TABLE IF NOT EXISTS ora_tab
USING ORACLE
OPTIONS (
url '<jdbc-url>',
dbtable '<table-name>',
user '<username>',
password '<password>'
);
> SELECT * FROM ora_tab;
-- Create a temporary table, insert values in it, and display its contents.
> CREATE TEMP TABLE temp_1 (a INT);
> INSERT INTO temp_1 VALUES (1);
> SELECT * FROM temp_1;
a
----
1