Verklaring van de Verenigde Naties over de Rechten van Boeren en Anderen die in Landelijke Gebieden Werken
Van toepassing op: Databricks SQL
Databricks Runtime 12.2 LTS en hoger
De opdracht UNDROP
lost het probleem op van beheerde of externe relaties (tabellen of gematerialiseerde weergaven) in Unity Catalog die per ongeluk worden verwijderd.
Deze opdracht verwijdert standaard (herstelt) de laatst verwijderde relatie die eigendom is van de gebruiker van de opgegeven relationele naam.
Het bovenliggende schema en de catalogus moeten bestaan. Deze functie ondersteunt het herstellen van verwijderde relaties binnen een bewaarperiode van 7 dagen.
Als er meerdere verbroken relaties van dezelfde naam zijn, kunt u SHOW TABLES DROPPED gebruiken om de tabel-id te identificeren en UNDROP TABLE WITH ID
te gebruiken om een specifieke relatie te herstellen.
Als er een relatie is met dezelfde naam als de relatie die u wilt herstellen, gebruikt u ALTER TABLE NAAM WIJZIGEN IN opdracht om de naam van de bestaande relatie te wijzigen.
Tabelmetagegevens, zoals tabelbevoegdheden, kolomspecificatie en eigenschappen, worden hersteld.
Beperkingen voor primaire en vreemde sleutels worden niet hersteld door de UNDROP
opdracht.
Maak ze handmatig opnieuw met behulp van ALTER TABLE ADD CONSTRAINT nadat de tabel is hersteld.
Syntaxis
UNDROP { MATERIALIZED VIEW | TABLE } { relation_name | WITH ID relation_id }
Parameter
MATERIALIZED VIEW
Van toepassing op:
Databricks SQL
Databricks Runtime 16.2 en hoger
Hiermee geeft u op dat de relatie
relation_name
die moet worden hersteld, een gerealiseerde weergave is.TABLE
Hiermee geeft u op dat de relatie
relation_name
die moet worden hersteld een tabel is.-
De naam van de tabel of gematerialiseerde weergave die moet worden hersteld. De naam mag geen tijdelijke specificatie of optiesspecificatie bevatten. Als de relatie of het type niet zoals opgegeven is, dan genereert Azure Databricks
WRONG_COMMAND_FOR_OBJECT_TYPE
ofTABLE_OR_VIEW_NOT_FOUND
. relation_id
Een
STRING
-literal in de vorm van een UUID van de relatie, zoals weergegeven door SHOW TABLES DROPPED.
Machtigingen
UNDROP
vereist een van de volgende basismachtigingen:
- Een gebruiker is de eigenaar van de relatie, heeft
CREATE TABLE
enUSE SCHEMA
in het schema enUSE CATALOG
in de catalogus. - Een gebruiker is de eigenaar van het schema en heeft
USE CATALOG
in de catalogus. - Een gebruiker is de eigenaar van de catalogus.
- Een gebruiker is de eigenaar van de metastore.
- Een gebruiker heeft
MANAGE
in de tabel,CREATE TABLE
enUSE SCHEMA
in het schema enUSE CATALOG
in de catalogus.
Als een gebruiker een ander type tabel herstelt, zijn aanvullende machtigingen van toepassing.
Als u bijvoorbeeld een externe tabel wilt losmaken, moet u ook CREATE EXTERNAL TABLE
hebben op de externe locatie of opslagreferentie, die moet bestaan.
Nadat u deze opdracht hebt uitgevoerd, wordt het eigendom standaard ingesteld op de vorige relationele eigenaar. Indien nodig kan het eigendom worden gewijzigd met behulp van de opdracht ALTER TABLE of ALTER MATERIALIZED VIEW.
Voorbeelden
-- 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
—- Create some MVs within a DLT 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 using the table name
> UNDROP MATERIALIZED VIEW mv1;
OK
-- 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