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.
Importante
Esta característica está en versión preliminar pública.
Importante
La compatibilidad de la clonación superficial difiere para las tablas gestionadas por Unity Catalog y las tablas externas. En el caso de las tablas administradas, use Databricks Runtime 13.3 y versiones posteriores, y para tablas externas, use Databricks Runtime 14.2 y versiones posteriores.
Solo puede clonar tablas administradas de Unity Catalog a tablas administradas de Unity Catalog y tablas externas de Unity Catalog a tablas externas de Unity Catalog. El comportamiento de VACUUM difiere entre las tablas administradas y externas. Consulte Usar VACUUM con clones superficiales del Unity Catalog.
Puede usar la clonación superficial para crear nuevas tablas de Unity Catalog a partir de tablas existentes de Unity Catalog. La compatibilidad superficial con clones para Unity Catalog permite crear tablas con privilegios de control de acceso independientes de sus tablas primarias sin necesidad de copiar archivos de datos subyacentes.
Para más información sobre la clonación de una tabla, consulte Clonación de una tabla en Azure Databricks.
Cree un clon superficial gestionado por Unity Catalog
Cree un clon superficial de una tabla administrada en el catálogo de Unity.
CREATE TABLE <catalog-name>.<schema-name>.<target-table-name>
SHALLOW CLONE <catalog-name>.<schema-name>.<source-table-name>
Para crear un clon superficial administrado en el catálogo de Unity, debe tener los siguientes privilegios en los recursos de origen y de destino.
| Recurso | Permisos requeridos |
|---|---|
| Esquema de origen | USE SCHEMA |
| Catálogo de origen | USE CATALOG |
| Esquema de destino |
USE SCHEMA, CREATE TABLE |
| Catálogo objetivo | USE CATALOG |
Al igual que otras instrucciones `CREATE TABLE`, el usuario que crea un clon superficial posee la tabla de destino. El propietario de una tabla de destino clonada controla los derechos de acceso de esa tabla independientemente de la tabla de origen. Esto significa que el propietario de una tabla clonada podría ser diferente del propietario de una tabla de origen.
Crear un clon externo superficial del Unity Catalog
Cree un clon externo superficial de Unity Catalog especificando una ubicación externa.
CREATE TABLE <catalog-name>.<schema-name>.<target-table-name>
SHALLOW CLONE <catalog-name>.<schema-name>.<source-table-name>
LOCATION 's3://<bucket-name>/<path-name>/<target-table-name>'
Para crear un clon superficial externo en Unity Catalog, necesitará los siguientes privilegios en los recursos de origen y destino.
| Recurso | Permisos requeridos |
|---|---|
| Esquema de origen | USE SCHEMA |
| Catálogo de origen | USE CATALOG |
| Esquema de destino |
USE SCHEMA, CREATE TABLE |
| Catálogo objetivo | USE CATALOG |
| Ubicación externa de destino | CREATE EXTERNAL TABLE |
Trabajar con tablas clonadas superficialmente en modo de acceso estándar
Para consultar un clon superficial en modo de acceso estándar (anteriormente modo de acceso compartido), debe tener los siguientes privilegios en la tabla y contener recursos.
| Recurso | Permisos requeridos |
|---|---|
| Catálogo | USE CATALOG |
| Esquema | USE SCHEMA |
| Tabla | SELECT |
También debe tener MODIFY permisos para el destino de la operación de clonación, para completar las siguientes acciones.
- Insertar registros
- Eliminar registros
- Actualizar registros
MERGECREATE TABLEDROP TABLE
Trabajar con tablas clonadas poco profundas en modo de acceso dedicado
Al trabajar con clones superficiales del catálogo de Unity en modo de acceso dedicado (anteriormente modo de acceso de usuario único), debe tener permisos en los recursos del origen de la tabla clonada, así como en la tabla de destino.
Esto significa que, para consultas sencillas además de los permisos necesarios en la tabla de destino, debe tener USE permisos en el catálogo de origen y el esquema y SELECT los permisos en la tabla de origen. Para cualquier consulta que actualice o inserte registros en la tabla de destino, también debe tener permisos MODIFY en la tabla de origen.
Databricks recomienda trabajar con clones de Unity Catalog en cómputo con el modo de acceso estándar, ya que esto permite la evolución independiente de los permisos para los objetivos de clonación superficial de Unity Catalog y sus tablas de origen.
Utiliza VACUUM con clones superficiales del catálogo de Unity
Cuando se usan tablas de Unity Catalog para el origen y el destino de una operación de clonación superficial, Unity Catalog administra los archivos de datos subyacentes para mejorar la confiabilidad para el origen y el destino de la operación de clonación. La ejecución VACUUM en el origen de un clon superficial no interrumpe la tabla clonada.
Normalmente, cuando VACUUM identifica archivos válidos para un umbral de retención determinado, solo se tienen en cuenta los metadatos de la tabla actual. Sin embargo, la compatibilidad superficial con clones de Unity Catalog realiza un seguimiento de las relaciones entre todas las tablas clonadas y los archivos de datos de origen, por lo que los archivos válidos se expanden para incluir los archivos de datos necesarios para devolver consultas para cualquier tabla clonada superficial, así como la tabla de origen.
Esto quiere decir que para la semántica de clonación VACUUM superficial de Unity Catalog, un archivo de datos válido es cualquier archivo dentro del umbral de retención especificado para la tabla de origen o cualquier tabla clonada. Las tablas administradas y externas tienen una semántica ligeramente diferente.
Este seguimiento mejorado de metadatos cambia la forma en que VACUUM las operaciones afectan a los archivos de datos subyacentes de las tablas Delta, con la semántica siguiente.
- En el caso de las tablas administradas, las operaciones
VACUUMen el origen o el destino de una operación de clonación superficial pueden eliminar archivos de datos de la tabla de origen. - En el caso de las tablas externas, las operaciones
VACUUMsolo quitan archivos de datos de la tabla de origen cuando se ejecutan en la tabla de origen. - Solo se eliminan los archivos de datos no considerados válidos para la tabla de origen o cualquier clon superficial respecto a la fuente.
- Si se definen varios clones superficiales en una sola tabla de origen, la ejecución de
VACUUMen cualquiera de las tablas clonadas no elimina los archivos de datos válidos para otras tablas clonadas.
Nota:
Databricks recomienda nunca ejecutar VACUUM con una configuración de retención de menos de 7 días para evitar dañar las transacciones de larga duración en curso. Si necesita ejecutar VACUUM con un umbral de retención inferior, asegúrese de comprender cómo VACUUM en clones poco profundos de Unity Catalog difiere de cómo VACUUM interactúa con otras tablas clonadas en Azure Databricks. Para más información, consulte Clonación de una tabla en Azure Databricks.
Además, incluso si se elimina una tabla clonada superficial, es posible que necesite SELECT acceso a esta tabla para ejecutar VACUUM en la tabla base. Databricks lee el registro de Delta del clon superficial para comprobar qué archivos de datos de la tabla base sigue referenciando el clon antes de eliminarlos. Databricks mantiene este vínculo durante 7 días después de que una tabla de copia superficial sea eliminada para admitir la operación UNDROP. Sin embargo, en el modo de acceso estándar, este permiso no es necesario.
Eliminar la tabla base de un clon somero
Si se elimina la tabla base de un clon superficial, el clon se vuelve inutilizable. De forma predeterminada, Databricks impide quitar una tabla base si todavía tiene clones poco profundos que hacen referencia a ella.
Para invalidar esta protección, use la DROP TABLE ... FORCE sintaxis . Si usa FORCE:
- La tabla base se elimina inmediatamente.
- Todas las referencias a clones poco profundos se rompen y:
- Error en las operaciones que requieren leer datos o metadatos (por ejemplo,
SELECT,INSERT,UPDATE,DESCRIBE HISTORY,CLONE). - Siguen siendo visibles a través de operaciones de nivel de metadatos (por ejemplo,
SHOW TABLES,DROP TABLE) para permitir la limpieza.
- Error en las operaciones que requieren leer datos o metadatos (por ejemplo,
Este comportamiento solo se aplica a las tablas administradas del catálogo de Unity. Para obtener más información, consulte DROP TABLE.
Limitaciones
- Los clones superficiales en tablas externas deben ser tablas externas. Los clones superficiales en tablas administradas deben ser tablas administradas.
- No puede usar
REPLACEniCREATE OR REPLACEpara sobrescribir un clon superficial existente. En su lugar,DROPel clon superficial y ejecute una nueva instrucciónCREATE. - No se pueden compartir clones poco profundos mediante Delta Sharing.
- No se pueden anidar clones poco profundos, lo que significa que no se puede hacer un clon superficial a partir de un clon superficial.
- En el caso de las tablas administradas, al quitar la tabla de origen se interrumpe la tabla de destino para clones superficiales. Las operaciones no eliminan los archivos de datos subyacentes para las tablas externas y, por lo tanto, los clones poco profundos de las tablas externas no se ven afectados al eliminar el origen.
- Unity Catalog permite a los usuarios gestionar tablas
UNDROPdurante aproximadamente 7 días después de un comandoDROP TABLE. En Databricks Runtime 13.3 LTS y versiones posteriores, los clones superficiales gestionados de una tabla de origen eliminada continúan funcionando durante los 7 días en que Unity Catalog admiteUNDROP. Si la tabla de origen no se restaura dentro de esa ventana, el clon superficial se inutiliza cuando los archivos de datos de origen se eliminan durante la recolección de basura.