Compartir a través de


¿Cómo funcionan las rutas de acceso para los datos administrados por El catálogo de Unity?

En este artículo se explican las restricciones en torno a las superposiciones de ruta de acceso en el catálogo de Unity, los patrones de acceso basados en rutas de acceso para los archivos de datos de los objetos catalog de Unity y se describe cómo Unity Catalog administra las rutas de acceso para tablas y volúmenes.

Nota:

Los volúmenes solo se admiten en Databricks Runtime 13.3 LTS y versiones posteriores. En Databricks Runtime 12.2 LTS y versiones posteriores, las operaciones /Volumes con rutas de acceso pueden realizarse correctamente, pero solo pueden escribir datos en discos de almacenamiento efímeros conectados a clústeres de proceso en lugar de conservar datos en volúmenes de Catálogo de Unity según lo previsto.

Las rutas de acceso de los objetos de catálogo de Unity no se pueden superponer

El Catálogo de Unity aplica la gobernanza de datos evitando que los directorios administrados de datos se superponga. El catálogo de Unity aplica las reglas siguientes:

  • Las ubicaciones externas no se pueden superponer a otras ubicaciones externas.
  • Las tablas y volúmenes almacenan archivos de datos en ubicaciones externas o en la ubicación raíz del metastore.
  • Los volúmenes no se pueden superponer a otros volúmenes.
  • Las tablas no se pueden superponer a otras tablas.
  • Las tablas y volúmenes no se pueden superponer entre sí.
  • Las ubicaciones de almacenamiento administradas no se pueden superponer entre sí. Consulte Especificar una ubicación de almacenamiento administrada en Unity Catalog.
  • Los volúmenes externos no se pueden superponer a las ubicaciones de almacenamiento administradas.
  • Las tablas externas no se pueden superponer a las ubicaciones de almacenamiento administradas.

Estas reglas significan que existen las siguientes restricciones en el catálogo de Unity:

  • No se puede definir una ubicación externa dentro de otra ubicación externa.
  • No se puede definir un volumen dentro de otro volumen.
  • No se puede definir una tabla dentro de otra tabla.
  • No se puede definir una tabla en ningún archivo de datos o directorios dentro de un volumen.
  • No se puede definir un volumen en un directorio dentro de una tabla.

Nota:

Siempre puede usar el acceso basado en rutas de acceso para escribir o leer archivos de datos de volúmenes, incluido Delta Lake. No puede registrar estos archivos de datos como tablas en el metastore del catálogo de Unity.

Las rutas de acceso para tablas administradas y volúmenes administrados están totalmente administradas por el Unit Catalog

Al crear una tabla administrada o un volumen administrado, el catálogo de Unity crea un nuevo directorio en la ubicación de almacenamiento configurada por el catálogo de Unity asociada al esquema contenedor. El nombre de este directorio se genera aleatoriamente para evitar cualquier posible colisión con otros directorios ya presentes.

Este comportamiento difiere de la forma en que metastore de Hive crea tablas administradas. Databricks recomienda interactuar siempre con tablas administradas de Unity Catalog mediante nombres de tabla y volúmenes administrados de Unity Catalog mediante rutas de acceso de volumen.

Las rutas de acceso para tablas externas y volúmenes externos se rigen por Unity Catalog

Al crear una tabla externa o un volumen externo, se especifica una ruta de acceso dentro de una ubicación externa que se rige por Unity Catalog.

Importante

Databricks recomienda nunca crear un volumen externo o una tabla externa en la raíz de una ubicación externa. En su lugar, cree volúmenes externos y tablas externas en subdirectorios dentro de una ubicación externa. Estas recomendaciones deben ayudar a evitar las rutas de acceso superpuestas accidentalmente. Consultelas rutas de acceso de los objetos de catálogo de Unity no se pueden superponer.

Para facilitar el uso, Databricks recomienda interactuar con tablas externas del Unity Catalog mediante nombres de tabla y volúmenes externos de Unity Catalog mediante rutas de acceso de volumen.

Como alternativa, los usuarios con privilegios suficientes en el objeto correspondiente del catálogo de Unity pueden acceder a datos desde una tabla externa o un volumen externo mediante la ruta de acceso de almacenamiento de objetos en la nube completa.

Importante

Unity Catalog administra todos los privilegios de acceso mediante URI en la nube a los datos asociados a tablas externas o volúmenes externos. Estos privilegios invalidan los privilegios asociados a ubicaciones externas. Consulte Privilegios de Unity Catalog y objetos protegibles

¿Cómo puede acceder a los datos en Unity Catalog?

Los objetos de Unity Catalog proporcionan acceso a los datos a través de identificadores de objeto, rutas de acceso de volumen o URI en la nube. Puede usar estos valores para acceder a los datos asociados a volúmenes y tablas.

Se tiene acceso a las tablas de Unity Catalog mediante un identificador de tres niveles con el siguiente patrón:

<catalog_name>.<schema_name>.<table_name>

¿Cuáles son las rutas de acceso de los archivos de volumen en Unity Catalog?

Los volúmenes proporcionan una ruta de acceso de archivo para acceder a los archivos de datos con el siguiente patrón:

/Volumes/<catalog_name>/<schema_name>/<volume_name>/<path_to_file>

Los URI en la nube requieren que los usuarios proporcionen el controlador, el identificador del contenedor de almacenamiento y la ruta de acceso completa a los archivos de destino, como en el ejemplo siguiente:

abfss://<container_name>@<storage_account>.dfs.core.windows.net/<path>

En la tabla siguiente se muestran los métodos de acceso permitidos para los objetos de Unity Catalog:

Object Identificador de objeto Ruta de acceso del archivo URI en la nube
Ubicación externa no no
Tabla administrada no no
Tabla externa no
Volumen administrado no no
Volumen externo no

Nota:

Los volúmenes de Unity Catalog usan identificadores de objeto de tres niveles con el siguiente patrón para los comandos de administración (como CREATE VOLUME y DROP VOLUME):

<catalog_name>.<schema_name>.<volume_name>

Para trabajar realmente con archivos en volúmenes, debe usar el acceso basado en rutas de acceso.