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
Módosítja egy tábla sémáját vagy tulajdonságait.
A ALTER TABLE parancs ideiglenes táblák esetében nem támogatott. A rendszer hibát ad vissza, ha a ALTER TABLE parancsot egy ideiglenes táblára alkalmazza a rendszer. Ha a tábla gyorsítótárazva van, a parancs törli a tábla gyorsítótárazott adatait és az arra hivatkozó összes függőt. A gyorsítótár kényelmesen töltődik, amikor a táblához vagy a függőkhöz legközelebb hozzáférnek.
Idegen táblákon csak a műveletet és a .ALTER TABLE SET OWNERALTER TABLE RENAME TO
Szükséges engedélyek
Ha a Unity Katalógust használja, MODIFY engedéllyel kell rendelkeznie a következőhöz:
ALTER COLUMNADD COLUMNDROP COLUMNSET TBLPROPERTIESUNSET TBLPROPERTIESPREDICTIVE OPTIMIZATION
Ha a Unity Katalógust használja, MANAGE engedéllyel vagy tulajdonjoggal kell rendelkeznie a következőhöz:
SET OWNER TO
Minden más művelethez a tábla tulajdonjoga szükséges.
Szintaxis
ALTER TABLE table_name
{ RENAME TO clause |
ADD COLUMN clause |
ALTER COLUMN clause |
DROP COLUMN clause |
RENAME COLUMN clause |
DEFAULT COLLATION clause |
ADD CONSTRAINT clause |
DROP CONSTRAINT clause |
DROP FEATURE clause |
ADD PARTITION clause |
DROP PARTITION clause |
PARTITION SET LOCATION clause |
RENAME PARTITION clause |
RECOVER PARTITIONS clause |
SET { ROW FILTER clause } |
DROP ROW FILTER |
SET TBLPROPERTIES clause |
UNSET TBLPROPERTIES clause |
SET SERDE clause |
SET LOCATION clause |
SET OWNER TO clause |
SET SERDE clause |
SET TAGS clause |
UNSET TAGS clause |
CLUSTER BY clause |
PREDICTIVE OPTIMIZATION clause}
Paraméterek
-
Azonosítja a módosítandó táblát. A név nem tartalmazhat időbeli specifikációt vagy beállításspecifikációt. Ha a tábla nem található, az Azure Databricks TABLE_OR_VIEW_NOT_FOUND hibát jelez.
RENAME TOto_table_nameÁtnevezi a táblát.
-
Azonosítja az új táblanevet. A név nem tartalmazhat időbeli specifikációt vagy beállításspecifikációt.
A Unity Catalog-táblák esetében a
to_table_namekatalógusnak ugyanabban a katalógusban kell lennie, mint atable_name. Más táblák esetében ato_table_nameugyanabban a sémában kell legyen, mint atable_name.Ha
to_table_namenincs minősítve, akkor az aktuális sémával van implicit módon minősítve.
> ALTER TABLE student RENAME TO student_info;-
-
Egy vagy több oszlopot ad hozzá a táblához.
Ha oszlopot ad hozzá egy meglévő Delta Lake-táblához, nem definiálhat
DEFAULTértéket. A Delta Lake-táblákhoz hozzáadott összes oszlop a meglévő sorokhoz hasonlóanNULLlesz kezelve. Oszlop hozzáadása után igény szerint megadhat egy alapértelmezett értéket az új sorokhoz a használatávalALTER COLUMN.> DESCRIBE StudentInfo; col_name data_type comment ----------------------- --------- ------- name string NULL rollno int NULL age int NULL > ALTER TABLE StudentInfo ADD columns (LastName string, DOB timestamp); -- After adding new columns to the table > DESCRIBE StudentInfo; col_name data_type comment ----------------------- --------- ------- name string NULL rollno int NULL LastName string NULL DOB timestamp NULL age int NULL -- Optionally set a default value for new rows > ALTER TABLE StudentInfo ALTER COLUMN LastName SET DEFAULT 'unknown';
-
Módosít egy tulajdonságot vagy egy oszlop helyét.
> DESCRIBE StudentInfo; col_name data_type comment ----------------------- --------- ------- name string NULL rollno int NULL LastName string NULL DOB timestamp NULL age int NULL > ALTER TABLE StudentInfo ALTER COLUMN name COMMENT "new comment"; -- After altering the column > DESCRIBE StudentInfo; col_name data_type comment ----------------------- --------- ----------- name string new comment rollno int NULL LastName string NULL DOB timestamp NULL age int NULLTöbb oszlop módosítása egyetlen utasításban:
-- Create a table with 3 columns > CREATE TABLE my_table (num INT, str STRING, bool BOOLEAN) TBLPROPERTIES('delta.feature.allowColumnDefaults' = 'supported') > DESCRIBE TABLE my_table; col_name data_type comment -------- --------- ------- num int null str string null bool boolean null -- Update comments on multiple columns > ALTER TABLE table ALTER COLUMN num COMMENT 'number column', str COMMENT 'string column'; > DESCRIBE TABLE my_table; col_name data_type comment -------- --------- ------------- num int number column str string string column bool boolean null -- Can mix different types of column alter > ALTER TABLE table ALTER COLUMN bool COMMENT 'boolean column', num AFTER bool, str AFTER num, bool SET DEFAULT true; > DESCRIBE TABLE my_table; col_name data_type comment -------- --------- -------------- bool boolean boolean column num int number column str string string column -
Egy vagy több oszlop vagy mező eltávolítása egy Delta Lake-táblából.
-
Egy Delta Lake-tábla oszlopának vagy mezőjének átnevezése.
> ALTER TABLE StudentInfo RENAME COLUMN name TO FirstName; -- After renaming the column > DESCRIBE StudentInfo; col_name data_type comment ----------------------- --------- ----------- FirstName string new comment rollno int NULL LastName string NULL DOB timestamp NULL age int NULL
-
Ellenőrző kényszert, információs idegenkulcs-kényszert vagy információs elsődlegeskulcs-kényszert ad hozzá a táblához.
Az idegen kulcsok és az elsődleges kulcsok csak a Unity Katalógusban lévő táblák esetében támogatottak, a
hive_metastorekatalógusban nem. DEFAULT COLLATIONkolláció_névA következőkre vonatkozik:
Databricks SQL
Databricks Runtime 16.3 és újabbMódosítja az új
STRINGoszlopok táblázatának alapértelmezett rendezést. A meglévő oszlopokat ez a záradék nem érinti. Meglévő oszlop rendezésének módosításához használja aALTER TABLE ... ALTER COLUMN ... COLLATE collation_name.
-
Elvet egy elsődleges kulcsot, idegen kulcsot vagy ellenőrzési kényszert a táblából.
DROP FEATURE feature_name [ TRUNCATE HISTORY ]Alkalmazható:
a Databricks Runtime 14.3 LTS és újabb verziókraA Databricks Runtime 14.3 LTS-ben érhető el a régebbi rendszerek támogatása. Az örökölt funkciók dokumentációját lásd: Drop Delta table features (legacy).
A következőkre vonatkozik:
Databricks SQL
Databricks Runtime 16.3 és újabbAz Azure Databricks a Databricks Runtime 16.3-at és újabb verzióját javasolja az összes
DROP FEATUREparancshoz, amely felváltja az örökölt viselkedést.Eltávolít egy funkciót egy Delta Lake-táblából.
Ha eltávolít egy funkciót, az az író funkció hozzáadását
checkpointProtectioneredményezheti a táblaprotokollban. További információért lásd: Drop Delta táblázat jellemzői és Táblázat jellemzői a protokoll kompatibilitásért.feature_nameEgy szolgáltatás neve
STRINGkonstans vagy azonosítóformájában, amelyet az Azure Databricksnek kell értelmeznie, és támogatnia kell a táblában.Ha a funkció nem szerepel a táblában, az Azure Databricks hibát jelez: DELTA_FEATURE_DROP_FEATURE_NOT_PRESENT.
ELŐZMÉNYEK CSONKOLÁSA
A funkciók eltávolítása az előzmények csonkolásával. Ehhez két fázisú folyamat szükséges:
Az előzmények csonkolása által a funkciók eltávolításához két lépés szükséges:
Az első meghívás törli a funkció nyomait, és tájékoztatja a részleges sikerről.
Ezután várjon, amíg a megőrzési időszak véget ér, mielőtt újra végrehajtja az utasítást az eltávolítás befejezéséhez.
Ha túl korán kezdeményezi a második meghívást, az Azure Databricks megjeleníti a DELTA_FEATURE_DROP_WAIT_FOR_RETENTION_PERIOD vagy a DELTA_FEATURE_DROP_HISTORICAL_VERSIONS_EXIST hibaüzenetet.
A táblaelőzmények csonkolása korlátozza a képességét arra, hogy DESCRIBE HISTORY-t hajtson végre és időutazási lekérdezéseket végezzen.
-- Drop the "deletion vectors" from a Delta table > ALTER TABLE my_table DROP FEATURE deletionVectors; -- 24 hours later > ALTER TABLE my_table DROP FEATURE deletionVectors TRUNCATE HISTORY;-
Egy vagy több partíciót ad hozzá a táblához.
> SHOW PARTITIONS StudentInfo; partition --------- age=11 age=12 age=15 > ALTER TABLE StudentInfo ADD IF NOT EXISTS PARTITION (age=18); -- After adding a new partition to the table > SHOW PARTITIONS StudentInfo; partition --------- age=11 age=12 age=15 age=18 -- Adding multiple partitions to the table > ALTER TABLE StudentInfo ADD IF NOT EXISTS PARTITION (age=18) PARTITION (age=20); > SHOW PARTITIONS StudentInfo; partition --------- age=11 age=12 age=15 age=18 age=20 -
Egy vagy több partíció törlése a táblából.
> SHOW PARTITIONS StudentInfo; partition --------- age=11 age=12 age=15 age=18 > ALTER TABLE StudentInfo DROP IF EXISTS PARTITION (age=18); -- After dropping the partition of the table > SHOW PARTITIONS StudentInfo; partition --------- age=11 age=12 age=15 -
Beállítja egy partíció helyét.
> ALTER TABLE dbx.tab1 PARTITION (a='1', b='2') SET LOCATION '/path/to/part/ways'; -
Lecseréli egy partíció kulcsait.
> SHOW PARTITIONS StudentInfo; partition --------- age=10 age=11 age=12 > ALTER TABLE default.StudentInfo PARTITION (age='10') RENAME TO PARTITION (age='15'); -- After renaming Partition > SHOW PARTITIONS StudentInfo; partition --------- age=11 age=12 age=15 -
Utasítja az Azure Databrickset, hogy vizsgálja meg a tábla helyét, és adja hozzá a közvetlenül a fájlrendszerhez hozzáadott fájlokat a táblához.
-
A következőkre vonatkozik:
Databricks SQL
Databricks Runtime 12.2 LTS és újabb
Csak Unity CatalogSorszű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, ahol 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 meghívást hívó felhasználó identitását vagy csoporttagságát annak megállapításához, hogy szűrjön-e bizonyos sorokat.
DROP ROW FILTERA következőkre vonatkozik:
csak a Unity Catalog esetébenHa van ilyen, eltávolítja a sorszűrőt a táblából. A jövőbeli lekérdezések automatikus szűrés nélkül visszaadják a tábla összes sorát.
-
Beállít vagy alaphelyzetbe állít egy vagy több felhasználó által definiált tulajdonságot.
> ALTER TABLE dbx.tab1 SET TBLPROPERTIES ('winner' = 'loser'); -
Eltávolít egy vagy több felhasználó által definiált tulajdonságot.
> ALTER TABLE dbx.tab1 UNSET TBLPROPERTIES ('winner'); SET SERDEA következőkre vonatkozik:
Databricks RuntimeMegadja a Hive formátumú táblában lévő adatok olvasásához és írásához használt szerializáló/deszerializáló (SerDe) osztályt. A SerDe-tulajdonságokat
WITH SERDEPROPERTIESkonfigurálhatja a .> ALTER TABLE test_tab SET SERDE 'org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe'; > ALTER TABLE dbx.tab1 SET SERDE 'org.apache.hadoop' WITH SERDEPROPERTIES ('k' = 'v', 'kay' = 'vee');SET LOCATIONÁthelyezi a táblázat helyét.
SET LOCATION pathLOCATION pathpathegy literál kell, hogy legyenSTRING. Megadja a tábla új helyét.Az eredeti helyen lévő fájlok nem lesznek áthelyezve az új helyre.
[ SET ] OWNER TOigazgatóA tábla tulajdonjogát átkerül
principal-hoz.A következőkre vonatkozik:
Databricks SQL
Databricks Runtime 11.3 LTS és újabbSETválasztható kulcsszóként engedélyezett.SET TAGS ( { tag_name = tag_value } [, ...] )A következőkre vonatkozik:
Databricks SQL
Databricks Runtime 13.3 LTS és újabbCímkék alkalmazása a táblára. A táblához címkék hozzáadásához
APPLY TAGengedéllyel kell rendelkeznie.tag_name
Egy szó szerinti
STRING. Atag_nameegyedinek kell lennie a táblában vagy oszlopban.tag_value
Egy szó szerinti
STRING.
-- Applies three tags to the table named `test`. > ALTER TABLE test SET TAGS ('tag1' = 'val1', 'tag2' = 'val2', 'tag3' = 'val3'); -- Applies three tags to table `main.schema1.test` column `col1`. > ALTER TABLE main.schema1.test ALTER COLUMN col1 SET TAGS ('tag1' = 'val1', 'tag2' = 'val2', 'tag3' = 'val3');UNSET TAGS ( tag_name [, ...] )A következőkre vonatkozik:
Databricks SQL
Databricks Runtime 13.3 LTS és újabbTávolítsa el a címkéket a táblából. A címkék táblából való eltávolításához
APPLY TAGengedéllyel kell rendelkeznie.tag_name
Egy szó szerinti
STRING. Atag_nameegyedinek kell lennie a táblában vagy oszlopban.
-- Removes three tags from the table named `test`. > ALTER TABLE test UNSET TAGS ('tag1', 'tag2', 'tag3'); -- Removes three tags from table `main.schema1.test` column `col1`. > ALTER TABLE main.schema1.test ALTER COLUMN col1 UNSET TAGS ('tag1', 'tag2', 'tag3');-
A következőkre vonatkozik:
Databricks SQL
Databricks Runtime 13.3 LTS és újabbHozzáadja, módosítja vagy eltávolítja egy Delta Lake-tábla fürtözési stratégiáját.
{ ENABLE | DISABLE | INHERIT } PREDICTIVE OPTIMIZATIONA következőkre vonatkozik:
Databricks SQL
Databricks Runtime 12.2 LTS és újabb
Csak Unity CatalogA felügyelt Delta Lake-táblát a kívánt prediktív optimalizálási beállításra módosítja.
Alapértelmezés szerint, amikor táblákat hoznak létre, az eljárás a sémából
INHERIT.Ha a prediktív optimalizálás engedélyezve van, vagy engedélyezésként öröklődik, az Azure Databricks a OPTIMIZE-t és a VACUUM-et automatikusan meghívja a táblázatra, amikor azt megfelelőnek ítéli. További részletekért lásd: A Unity Catalog által felügyelt táblák prediktív optimalizálása.
-- Enables predictive optimization for my_table > ALTER TABLE my_table ENABLE PREDICTIVE OPTIMIZATION;
További példák
Delta Lake esetén a korlátozások hozzáadásához és az oszlopok módosításához tekintse meg:
Kapcsolódó cikkek
- ADD CONSTRAINT záradék: Ellenőrző korlátozások, elsődleges kulcsok és idegen kulcsok hozzáadása vagy elvetése.
- ALTER MATERIALIZED VIEW: Szintaxis a materializált nézetek módosításához.
- ALTER STREAMING TABLE: A streamelési táblák módosításának szintaxisa.
- ALTER TABLE ... COLUMN záradék: Az ADD, ALTER, DROP és RENAME függvény teljes szintaxisa COLUMN.
- ALTER TABLE … PARTITION: Partíciók hozzáadásának, elvetésének és átnevezésének teljes szintaxisa.
- Táblaséma frissítése: Oszloptípusok átnevezése vagy módosítása egy Delta-táblában.