Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: Databricks SQL
Databricks Runtime 12.2 LTS y versiones posteriores
El UNDROP
comando aborda la preocupación de las relaciones administradas o externas (tablas o vistas materializadas) ubicadas en el catálogo de Unity que se quitan o eliminan accidentalmente.
De manera predeterminada, este comando anula (recupera) la relación eliminada más recientemente propiedad del usuario del nombre de relación especificado.
El esquema primario y el catálogo deben existir. Esta característica admite la recuperación de relaciones eliminadas dentro de un período de retención de 7 días.
Si hay varias relaciones descartadas del mismo nombre, puede usar SHOW TABLES DROPPED para identificar el identificador de tabla y usar UNDROP TABLE WITH ID
para recuperar una relación específica.
Si hay una relación con el mismo nombre que la relación que desea recuperar, use ALTER TABLE el comando RENAME TO para cambiar el nombre de la relación existente.
Los metadatos de tabla (como los privilegios de tabla, las especificaciones de columna y las propiedades) se recuperarán.
El comando UNDROP
no recupera las restricciones de clave principal y de referencia.
Vuelva a crearlas manualmente mediante ALTER TABLE ADD CONSTRAINT una vez recuperada la tabla.
Sintaxis
UNDROP { MATERIALIZED VIEW | TABLE } { relation_name | WITH ID relation_id }
Parámetro
MATERIALIZED VIEW
Se aplica a:
Databricks SQL
Databricks Runtime 16.2 y versiones posteriores
Especifica que la relación
relation_name
que se va a restaurar es una vista materializada.TABLE
Especifica que la relación
relation_name
que se va a restaurar es una tabla.-
Nombre de la tabla o vista materializada que se va a restaurar. El nombre no debe incluir una especificación temporal ni una especificación de opciones. Si la relación o el tipo no se encuentran como especificados, Azure Databricks genera
WRONG_COMMAND_FOR_OBJECT_TYPE
oTABLE_OR_VIEW_NOT_FOUND
. relation_id
Literal
STRING
en forma de UUID de la relación tal como se muestra en SHOW TABLES DROPPED.
Permisos
UNDROP
requiere uno de los siguientes permisos de base:
- Un usuario es el propietario de la relación, tiene
CREATE TABLE
yUSE SCHEMA
en el esquema yUSE CATALOG
en el catálogo. - Un usuario es el propietario del esquema y tiene
USE CATALOG
en el catálogo. - Un usuario es el propietario del catálogo.
- Un usuario es el propietario del metastore.
- Un usuario tiene
MANAGE
en la tabla,CREATE TABLE
yUSE SCHEMA
en el esquema yUSE CATALOG
en el catálogo.
Si un usuario está recuperando un tipo diferente de tabla, se aplican permisos adicionales.
Por ejemplo, para anular una tabla externa, también debe tener CREATE EXTERNAL TABLE
en la ubicación externa o en la credencial de almacenamiento, que debe existir.
Después de ejecutar este comando, el valor predeterminado de propiedad es el propietario de la relación anterior. Si es necesario, la propiedad se puede cambiar mediante el ALTER TABLE comando o ALTER MATERIALIZED VIEW .
Limitaciones
Las vistas materializadas y las tablas de streaming solo se pueden restaurar si la canalización de respaldo todavía existe. Si se ha eliminado la canalización de respaldo, la vista materializada o la tabla de streaming no se podrán recuperar.
No se puede restaurar una vista materializada ni una tabla de streaming creada con Databricks SQL. Solo se pueden restaurar las vistas materializadas o las tablas de streaming creadas con una canalización ETL.
Ejemplos
-- 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