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 típusmódosításokkal vagy oszlopok átnevezésével kapcsolatos információkért a Delta Lake-ben lásd , az adatok újraírásával kapcsolatosan pedig.
Ha módosítani szeretné a megjegyzést egy táblán vagy oszlopon, COMMENT ONis használhatja.
Streamelési táblázat vagy materializált nézet módosításához használja a ALTER STREAMING TABLE vagy a ALTER MATERIALIZED VIEW elemeket.
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.
Megjegyzés
Ha oszlopot ad hozzá egy meglévő Delta-táblához, nem definiálhat DEFAULT értéket. A Delta-táblákhoz hozzáadott összes oszlop NULL lesz kezelve a meglévő sorok esetében. Az oszlop hozzáadása után megadhat egy alapértelmezett értéket az oszlophoz, de ez csak a táblába beszúrt új sorokra vonatkozik. Alkalmazza a következő szintaxist:
ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT default_expression
Idegen táblákon ön csak ALTER TABLE SET OWNER és ALTER TABLE RENAME TOvégezhet el.
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 TBLPROPERTIES- módosít
PREDICTIVE 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.
-
-
Egy vagy több oszlopot ad hozzá a táblához.
-
Módosít egy tulajdonságot vagy egy oszlop helyét.
-
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.
-
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.
-
Egy vagy több partíciót ad hozzá a táblához.
-
Egy vagy több partíció törlése a táblából.
-
Beállítja egy partíció helyét.
-
Lecseréli egy partíció kulcsait.
-
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.
-
Eltávolít egy vagy több felhasználó által definiált tulajdonságot.
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.
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.
-
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.
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:
-- RENAME table
> DESCRIBE student;
col_name data_type comment
----------------------- --------- -------
name string NULL
rollno int NULL
age int NULL
# Partition Information
# col_name data_type comment
age int NULL
> ALTER TABLE Student RENAME TO StudentInfo;
-- After Renaming the table
> DESCRIBE StudentInfo;
col_name data_type comment
----------------------- --------- -------
name string NULL
rollno int NULL
age int NULL
# Partition Information
# col_name data_type comment
age int NULL
-- RENAME partition
> 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
-- Add new columns to a table
> DESCRIBE StudentInfo;
col_name data_type comment
----------------------- --------- -------
name string NULL
rollno int NULL
age int NULL
# Partition Information
# col_name data_type comment
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
# Partition Information
# col_name data_type comment
age int NULL
-- Add a new partition to a table
> 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
-- Drop a partition from the table
> 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
-- Adding multiple partitions to the table
> SHOW PARTITIONS StudentInfo;
partition
---------
age=11
age=12
age=15
> ALTER TABLE StudentInfo ADD IF NOT EXISTS PARTITION (age=18) PARTITION (age=20);
-- After adding multiple partitions to the table
> SHOW PARTITIONS StudentInfo;
partition
---------
age=11
age=12
age=15
age=18
age=20
-- ALTER or CHANGE COLUMNS
> DESCRIBE StudentInfo;
col_name data_type comment
+-----------------------+---------+-------
name string NULL
rollno int NULL
LastName string NULL
DOB timestamp NULL
age int NULL
# Partition Information
# col_name data_type comment
age int NULL
ALTER TABLE StudentInfo ALTER COLUMN name COMMENT "new comment";
--After ALTER or CHANGE COLUMNS
> DESCRIBE StudentInfo;
col_name data_type comment
----------------------- --------- -----------
name string new comment
rollno int NULL
LastName string NULL
DOB timestamp NULL
age int NULL
# Partition Information
# col_name data_type comment
age int NULL
-- RENAME COLUMN
> ALTER TABLE StudentInfo RENAME COLUMN name TO FirstName;
--After RENAME COLUMN
> DESCRIBE StudentInfo;
col_name data_type comment
----------------------- --------- -----------
FirstName string new comment
rollno int NULL
LastName string NULL
DOB timestamp NULL
age int NULL
# Partition Information
# col_name data_type comment
age int NULL
-- Change the file Location
> ALTER TABLE dbx.tab1 PARTITION (a='1', b='2') SET LOCATION '/path/to/part/ways';
-- SET SERDE/ SERDE Properties (DBR only)
> 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 TABLE PROPERTIES
> ALTER TABLE dbx.tab1 SET TBLPROPERTIES ('winner' = 'loser');
-- DROP TABLE PROPERTIES
> ALTER TABLE dbx.tab1 UNSET TBLPROPERTIES ('winner');
-- 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;
-- Applies three tags to the table named `test`.
> ALTER TABLE test SET TAGS ('tag1' = 'val1', 'tag2' = 'val2', 'tag3' = 'val3');
-- Removes three tags from the table named `test`.
> ALTER TABLE test UNSET TAGS ('tag1', 'tag2', 'tag3');
-- 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');
-- Removes three tags from table `main.schema1.test` column `col1`.
> ALTER TABLE main.schema1.test ALTER COLUMN col1 UNSET TAGS ('tag1', 'tag2', 'tag3');
-- Enables predictive optimization for my_table
> ALTER TABLE my_table ENABLE PREDICTIVE OPTIMIZATION;
-- Alter multiple columns in a single statement
-- 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