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 12.2 LTS és újabb
A UNDROP parancs foglalkozik a Unity Katalógusban található felügyelt vagy külső kapcsolatok (táblák vagy materializált nézetek) véletlen elvetésének vagy törlésének aggályával.
Alapértelmezés szerint ez a parancs megszakítja (helyreállítja) a legutóbb elvetett relációt, amely az adott relációs név felhasználója tulajdonában van.
A szülőséma és a katalógus léteznie kell. Ez a funkció 7 napos megőrzési időn belül támogatja az elvetett kapcsolatok helyreállítását.
Ha több azonos nevű elvetett kapcsolat van, a SHOW TABLES DROPPED segítségével azonosíthatja a táblaazonosítót, és UNDROP TABLE WITH ID használatával helyreállíthat egy adott kapcsolatot.
Ha a helyreállítani kívánt reláció nevével megegyező nevű kapcsolat van, a meglévő kapcsolat nevének módosításához használja a ALTER TABLE ÁTNEVEZÉS parancsot.
A rendszer helyreállítja a tábla metaadatait – például a táblajogokat, az oszlopspekteket és a tulajdonságokat.
Az elsődleges és az idegen kulcs korlátozásait a UNDROP parancs nem tudja helyreállítani.
A tábla helyreállítása után manuálisan hozza létre őket a ALTER TABLE ADD CONSTRAINT használatával.
Szintaxis
UNDROP { MATERIALIZED VIEW | TABLE } { relation_name | WITH ID relation_id }
Paraméter
MATERIALIZED VIEWA következőre vonatkozik:
Databricks SQL
Databricks Runtime 16.2 és újabbMeghatározza, hogy a visszaállítandó relációs
relation_namematerializált nézet-e.TABLEMeghatározza, hogy a visszaállítandó
relation_namereláció egy tábla.-
A visszaállítandó tábla neve. A név nem tartalmazhat időbeli specifikációt vagy beállításspecifikációt. Ha a kapcsolat vagy a típus nem található meg a megadott módon, akkor az Azure Databricks
WRONG_COMMAND_FOR_OBJECT_TYPEvagyTABLE_OR_VIEW_NOT_FOUNDhibát jelez. relation_idEgy
STRINGliterál a kapcsolat UUID-jének formájában, a SHOW TABLES DROPPEDáltal megjelenítve.
Engedélyek
UNDROP az alábbi alapengedélyek egyikét igényli:
- A felhasználó a reláció tulajdonosa,
CREATE TABLEésUSE SCHEMAvan a sémán, ésUSE CATALOGa katalógusban. - A felhasználó a séma tulajdonosa, és
USE CATALOGjogosultságokkal rendelkezik a katalógusban. - A katalógus tulajdonosa egy felhasználó.
- A metaadattár tulajdonosa egy felhasználó.
- A felhasználónak
MANAGEaz asztalon van,CREATE TABLEésUSE SCHEMAa sémán, ésUSE CATALOGa katalóguson.
Ha egy felhasználó más típusú táblát állít helyre, további engedélyek érvényesek.
Például egy külső tábla visszaállításához szükséges a CREATE EXTERNAL TABLE megléte a külső helyen vagy a tároló hitelesítő adatban, amelyeknek létezniük kell.
A parancs futtatása után a tulajdonjog alapértelmezés szerint az előző relációs tulajdonosé lesz. Szükség esetén a tulajdonjog a ALTER TABLE vagy ALTER MATERIALIZED VIEW paranccsal módosítható.
Korlátozások
A materializált nézetek és streamtáblák csak akkor állíthatók vissza, ha a háttérfolyamat még létezik. Ha a háttérfolyamatot törölték, a materializált nézet vagy a streamelési tábla nem lesz helyreállítható.
A Databricks SQL-sel létrehozott materializált nézet vagy streamelési tábla nem állítható vissza. Csak az ETL-folyamattal létrehozott materializált nézetek vagy streamtáblák állíthatók vissza. A materializált nézeteket csak azonosító alapján állíthatja vissza, név szerint nem.
Példák
-- UNDROP using the table name
> CREATE TABLE my_catalog.my_schema.my_table (id INT, name STRING);
> DROP TABLE my_catalog.my_schema.my_table;
> UNDROP TABLE my_catalog.my_schema.my_table;
OK
-- UNDROP WITH ID
-- Use SHOW TABLES DROPPED to find dropped tables
> SHOW TABLES DROPPED IN my_schema;
catalogname schemaname tablename tableid tabletype deletedat createdat updatedat createdby owner comment
----------- ---------- ---------- ------------------------------------ --------- ----------------------------- ----------------------------- ----------------------------- ------------- ------------- -------
my_catalog my_schema my_table 6ca7be55-8f58-47a7-85ee-7a59082fd17a managed 2023-05-03 AD at 18:17:56 UTC 2023-05-03 AD at 18:17:00 UTC 2023-05-03 AD at 18:17:00 UTC alf@melmak.et alf@melmak.et
my_catalog my_schema my_table b819f397-c51f-4e60-8acc-05d4d4a7e084 managed 2023-05-04 AD at 10:20:00 UTC 2023-05-04 AD at 08:20:00 UTC 2023-05-04 AD at 08:20:00 UTC alf@melmak.et alf@melmak.et
-- Undrop a specific dropped table.
-- Here, we undrop my_table with table id '6ca7be55-8f58-47a7-85ee-7a59082fd17a'.
-- Note that the table id will be a string surrounded by single quotation marks.
> UNDROP TABLE WITH ID '6ca7be55-8f58-47a7-85ee-7a59082fd17a';
OK
-- Continuing from the example above, Now we want to undrop table with ID 'b819f397-c51f-4e60-8acc-05d4d4a7e084'.
-- First, we rename the existing table
> ALTER TABLE my_table RENAME TO my_other_table
OK
-- Then we can undrop table with the name my_table
> UNDROP TABLE WITH ID 'b819f397-c51f-4e60-8acc-05d4d4a7e084'
OK
-- Assume the following commands created MVs in an ETL pipeline
> CREATE MATERIALIZED VIEW mv1 AS SELECT * FROM RANGE(5);
> CREATE MATERIALIZED VIEW mv2 AS SELECT * FROM mv1;
-- Drop the MVs
> DROP MATERIALIZED VIEW mv1;
> DROP MATERIALIZED VIEW mv2;
-- UNDROP WITH ID
-- Use SHOW TABLES DROPPED to find the dropped mv2's tableId
-- Assume it is 6ca7be55-8f58-47a7-85ee-7a59082fd17a
-- When undropping, note that the table id will be a string surrounded by single quotation marks.
> UNDROP MATERIALIZED VIEW WITH ID '6ca7be55-8f58-47a7-85ee-7a59082fd17a';
OK