Bagikan melalui


UNDROP (Deklarasi Perserikatan Bangsa-Bangsa tentang Hak-Hak Petani dan Orang-Orang Lain yang Bekerja di Daerah Pedesaan)

Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime 12.2 LTS ke atas

Perintah UNDROP mengatasi kekhawatiran tentang hubungan terkelola atau eksternal (tabel atau tampilan materialisasi) yang terletak di Katalog Unity agar tidak dihapus atau dihilangkan secara tidak sengaja. Secara default, perintah ini memulihkan relasi yang dihapus terakhir yang dimiliki oleh pengguna dari nama relasi yang diberikan. Skema dan katalog induk harus ada. Fitur ini mendukung pemulihan relasi yang terhapus dalam periode penyimpanan selama 7 hari.

Jika ada beberapa relasi yang dihilangkan dengan nama yang sama, Anda dapat menggunakan SHOW TABLES DROPPED untuk mengidentifikasi ID tabel dan menggunakan UNDROP TABLE WITH ID untuk memulihkan hubungan tertentu.

Jika ada hubungan dengan nama yang sama dengan hubungan yang ingin Anda pulihkan, gunakan ALTER TABLE perintah GANTI NAMA KE untuk mengubah nama relasi yang ada.

Metadata tabel – seperti hak istimewa tabel, spesifikasi kolom, dan properti – akan dipulihkan. Batasan kunci primer dan asing tidak dipulihkan oleh perintah UNDROP. Buat ulang secara manual menggunakan ALTER TABLE ADD CONSTRAINT setelah tabel dipulihkan.

Sintaks

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

Pengaturan

  • MATERIALIZED VIEW

    Berlaku untuk:dicentang ya Databricks SQL dicentang ya Databricks Runtime 16.2 dan versi lebih baru

    Memastikan bahwa relasi relation_name yang akan dipulihkan adalah tampilan yang terwujud.

  • TABLE

    Menentukan bahwa relasi relation_name yang akan dipulihkan adalah tabel.

  • nama_relasi

    Nama tabel yang akan dipulihkan. Nama tidak boleh menyertakan spesifikasi temporal atau spesifikasi opsi. Jika relasi atau jenisnya tidak seperti yang ditentukan tidak dapat ditemukan Azure Databricks menaikkan WRONG_COMMAND_FOR_OBJECT_TYPE atau TABLE_OR_VIEW_NOT_FOUND.

  • relation_id

    Nilai literal STRING dalam bentuk UUID dari relasi seperti yang ditampilkan oleh SHOW TABLES DROPPED.

Izin Akses

UNDROP memerlukan salah satu izin dasar berikut:

  • Pengguna adalah pemilik hubungan, memiliki CREATE TABLE dan USE SCHEMA pada skema, dan USE CATALOG pada katalog.
  • Pengguna adalah pemilik skema dan memiliki USE CATALOG pada katalog.
  • Pengguna adalah pemilik katalog.
  • Pengguna adalah pemilik metastore.
  • Pengguna memiliki MANAGE pada tabel, CREATE TABLE dan USE SCHEMA pada skema, dan USE CATALOG pada katalog.

Jika pengguna memulihkan jenis tabel yang berbeda, izin tambahan berlaku. Misalnya, untuk mengurungkan tabel eksternal, Anda juga harus memiliki CREATE EXTERNAL TABLE di lokasi eksternal atau pada kredensial penyimpanan yang wajib ada.

Setelah menjalankan perintah ini, kepemilikan default ke pemilik relasi sebelumnya. Jika diperlukan, kepemilikan dapat diubah menggunakan ALTER TABLE perintah atau ALTER MATERIALIZED VIEW .

Keterbatasan

Tampilan materialisasi dan tabel streaming hanya dapat dipulihkan jika alur dukungan masih ada. Jika alur dukungan telah dihapus, tampilan materialisasi atau tabel streaming tidak akan dapat dipulihkan.

Anda tidak dapat memulihkan tampilan materialisasi atau tabel streaming yang dibuat dengan Databricks SQL. Hanya tampilan materialisasi atau tabel streaming yang dibuat dengan alur ETL yang dapat dipulihkan. Anda hanya dapat memulihkan tampilan materialisasi berdasarkan ID, bukan berdasarkan nama.

Contoh

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