Aracılığıyla paylaş


UNDROP (Çiftçilerin ve Kırsal Alanlarda Çalışan Diğer Kişilerin Haklarına İlişkin Birleşmiş Milletler Bildirgesi)

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime 12.2 LTS ve üzeri

UNDROP komutu, Unity Kataloğu'nda bulunan yönetilen veya dış ilişkilerin (tablolar veya gerçekleştirilmiş görünümler) yanlışlıkla bırakılması veya silinmesiyle ilgili endişeyi giderir. Varsayılan olarak, bu komut, verilen ilişki adının kullanıcısının sahip olduğu en son bırakılan ilişkiyi geri alır (kurtarır). Üst şema ve katalog mevcut olmalıdır. Bu özellik, 7 günlük saklama dönemi içinde koparılan ilişkileri kurtarmayı destekler.

Aynı ada sahip birden çok bırakılan ilişki varsa, tablo kimliğini tanımlamak için SHOW TABLES DROPPED kullanabilir ve belirli bir ilişkiyi kurtarmak için UNDROP TABLE WITH ID kullanabilirsiniz.

Kurtarmak istediğiniz ilişkiyle aynı ada sahip bir ilişki varsa, var olan ilişkinin adını değiştirmek için ALTER TABLE RENAME TO komutunu kullanın.

Tablo ayrıcalıkları, sütun belirtimi ve özellikler gibi tablo meta verileri kurtarılır. Birincil ve yabancı anahtar kısıtlamaları UNDROP komutu ile kurtarılmaz. Tablo kurtarıldıktan sonra ALTER TABLE ADD CONSTRAINT kullanarak bunları el ile yeniden oluşturun.

Sözdizimi

UNDROP { MATERIALIZED VIEW | TABLE } { relation_name | WITH ID relation_id }

Parametre

  • MATERIALIZED VIEW

    Şunun için geçerlidir:evet olarak işaretli Databricks SQL evet olarak işaretli Databricks Runtime 16.2 ve üzeri

    Geri yüklenecek olan relation_name ilişkisinin, gerçekleştirilmiş bir görünüm olduğunu belirtir.

  • TABLE

    Geri yüklenecek relation_name ilişkinin bir tablo olduğunu belirtir.

  • ilişki_adı

    Geri yüklenecek tablonun veya gerçekleştirilmiş görünümün adı. Ad bir zamansal belirtim veya seçenek belirtimi içermemelidir. İlişki veya tür belirtilen şekilde bulunamıyorsa Azure Databricks WRONG_COMMAND_FOR_OBJECT_TYPE veya TABLE_OR_VIEW_NOT_FOUNDyükseltir.

  • relation_id

    STRINGtarafından gösterildiği gibi ilişkinin UUID biçiminde SHOW TABLES DROPPED değişmez değeri.

İzinler

UNDROP aşağıdaki temel izinlerden birini gerektirir:

  • Kullanıcı ilişkinin sahibidir, şemada CREATE TABLE ve USE SCHEMA ve katalogda USE CATALOG.
  • Kullanıcı, şemanın sahibidir ve katalogda USE CATALOG'a sahiptir.
  • Kullanıcı, kataloğun sahibidir.
  • Kullanıcı, meta veri deposunun sahibidir.
  • Kullanıcının tabloda MANAGE, şemada CREATE TABLE ve USE SCHEMA ve katalogda USE CATALOG vardır.

Kullanıcı farklı bir tablo türünü kurtarıyorsa, ek izinler uygulanır. Örneğin, dış tabloyu geri yüklemek için dış konumda veya depolama kimlik bilgisinde de CREATE EXTERNAL TABLE olması gerekir ve bu bilginin mevcut olması gereklidir.

Bu komutu çalıştırdıktan sonra, sahiplik varsayılan olarak önceki ilişki sahibine döner. Gerekirse, sahiplik ALTER TABLE veya ALTER MATERIALIZED VIEW komutu kullanılarak değiştirilebilir.

Sınırlamalar

Gerçekleştirilmiş görünümler ve akış tabloları yalnızca yedekleme işlem hattı hala mevcutsa geri yüklenebilir. Destekleyen boru hattı silinmişse, maddileşmiş görünüm veya akış tablosu kurtarılamaz.

Databricks SQL ile oluşturulmuş gerçekleştirilmiş bir görünümü veya akış tablosunu geri yükleyemezsiniz. Yalnızca ETL işlem hattıyla oluşturulan gerçekleştirilmiş görünümler veya akış tabloları geri yüklenebilir.

Örnekler

-- 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