Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:
Databricks SQL
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 VIEWBerlaku untuk:
Databricks SQL
Databricks Runtime 16.2 dan versi lebih baruMemastikan bahwa relasi
relation_nameyang akan dipulihkan adalah tampilan yang terwujud.TABLEMenentukan bahwa relasi
relation_nameyang akan dipulihkan adalah tabel.-
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_TYPEatauTABLE_OR_VIEW_NOT_FOUND. relation_idNilai literal
STRINGdalam 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 TABLEdanUSE SCHEMApada skema, danUSE CATALOGpada katalog. - Pengguna adalah pemilik skema dan memiliki
USE CATALOGpada katalog. - Pengguna adalah pemilik katalog.
- Pengguna adalah pemilik metastore.
- Pengguna memiliki
MANAGEpada tabel,CREATE TABLEdanUSE SCHEMApada skema, danUSE CATALOGpada 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