Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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 }
Kenmerk
MATERIALIZED VIEWVan toepassing op:
Databricks SQL
Databricks Runtime 16.2 en hogerHiermee geeft u op dat de relatie
relation_namedie moet worden hersteld, een gerealiseerde weergave is.TABLEHiermee geeft u op dat de relatie
relation_namedie 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_TYPEofTABLE_OR_VIEW_NOT_FOUND. relation_idEen
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 TABLEenUSE SCHEMAin het schema enUSE CATALOGin de catalogus. - Een gebruiker is de eigenaar van het schema en heeft
USE CATALOGin de catalogus. - Een gebruiker is de eigenaar van de catalogus.
- Een gebruiker is de eigenaar van de metastore.
- Een gebruiker heeft
MANAGEin de tabel,CREATE TABLEenUSE SCHEMAin het schema enUSE CATALOGin de catalogus.
Als een gebruiker een ander type tabel herstelt, zijn aanvullende machtigingen van toepassing.
Als u bijvoorbeeld een externe tabel wilt herstellen, moet u ook CREATE EXTERNAL TABLE hebben voor de externe locatie of opslagreferentie, die al 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.
Beperkingen
Gerealiseerde weergaven en streamingtabellen kunnen alleen worden hersteld als de onderliggende pijplijn nog bestaat. Als de onderliggende pijplijn is verwijderd, kan de gerealiseerde weergave of streamingtabel niet worden hersteld.
U kunt geen gerealiseerde weergave of streamingtabel herstellen die is gemaakt met Databricks SQL. Alleen gerealiseerde weergaven of streamingtabellen die zijn gemaakt met een ETL-pijplijn, kunnen worden hersteld.
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
> 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