Megosztás a következőn keresztül:


Az ENSZ Kinyilatkozata a Parasztok és Más Vidéken Dolgozó Emberek Jogairól (UNDROP)

A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet 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 VIEW

    A következőre vonatkozik:pipával jelölve: igen Databricks SQL pipával jelölve: igen Databricks Runtime 16.2 és újabb

    Meghatározza, hogy a visszaállítandó relációs relation_name materializált nézet-e.

  • TABLE

    Meghatározza, hogy a visszaállítandó relation_name reláció egy tábla.

  • kapcsolat_név

    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_TYPE vagy TABLE_OR_VIEW_NOT_FOUNDhibát jelez.

  • relation_id

    Egy STRING literá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 és USE SCHEMA van a sémán, és USE CATALOG a katalógusban.
  • A felhasználó a séma tulajdonosa, és USE CATALOG jogosultságokkal rendelkezik a katalógusban.
  • A katalógus tulajdonosa egy felhasználó.
  • A metaadattár tulajdonosa egy felhasználó.
  • A felhasználónak MANAGE az asztalon van, CREATE TABLE és USE SCHEMA a sémán, és USE CATALOG a 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