Compartir a través de


¿Qué son los volúmenes de Unity Catalog?

Los volúmenes son objetos del catálogo Unity que permiten gobernar conjuntos de datos no tabulares. Los volúmenes representan un volumen lógico de almacenamiento en una ubicación de almacenamiento de objetos en la nube. Los volúmenes proporcionan funcionalidades para acceder, almacenar, gobernar y organizar archivos.

Mientras que las tablas proporcionan gobernanza sobre conjuntos de datos tabulares, los volúmenes agregan gobernanza sobre conjuntos de datos no tabulares. Puede usar volúmenes para almacenar archivos en cualquier formato, incluidos datos estructurados, semiestructurados y no estructurados, así como acceder a ellos.

Casos de uso para volúmenes

Databricks recomienda usar volúmenes para gobernar el acceso a todos los datos no tabulares. Al igual que las tablas, los volúmenes pueden ser administrados o externos.

Entre los casos de uso de los volúmenes se incluyen:

  • Registre áreas de aterrizaje para datos sin procesar generados por sistemas externos para admitir su procesamiento en las primeras fases de las canalizaciones ETL y otras actividades de ingeniería de datos.
  • Registre ubicaciones de almacenamiento provisional para la ingesta, por ejemplo, mediante instrucciones de Auto Loader, COPY INTO, o CTAS (CREATE TABLE AS).
  • Proporcione ubicaciones de almacenamiento de archivos para que los científicos de datos, los analistas de datos y los ingenieros de aprendizaje automático lo usen como parte de su análisis exploratorio de datos y otras tareas de ciencia de datos.
  • Proporcione a los usuarios de Azure Databricks acceso a archivos arbitrarios generados y depositados en el almacenamiento en la nube por otros sistemas, por ejemplo, grandes recopilaciones de datos no estructurados (como archivos de imagen, audio, vídeo y PDF) capturados por sistemas de vigilancia o dispositivos IoT, o archivos de biblioteca (JAR y archivos wheel de Python) exportados desde sistemas de administración de dependencias locales o canalizaciones de CI/CD.
  • Almacene datos operativos, como archivos de registro o archivos de punto de comprobación.

Importante

No se pueden registrar archivos en volúmenes como tablas en el catálogo de Unity. Los volúmenes están diseñados solo para el acceso a datos basado en rutas de acceso. Use tablas cuando quiera trabajar con datos tabulares en Unity Catalog.

¿Qué es un volumen administrado?

Un volumen administrado es un volumen de almacenamiento regulado por el catálogo de Unity creado dentro de la ubicación de almacenamiento administrada del esquema contenedor. Consulte Especificar una ubicación de almacenamiento administrada en Unity Catalog.

Los volúmenes administrados permiten la creación de almacenamiento regulado para trabajar con archivos sin la sobrecarga de ubicaciones externas y credenciales de almacenamiento. No es necesario especificar una ubicación para crear un volumen administrado, y el acceso a todos los archivos de los datos de los volúmenes administrados se realiza a través de rutas de acceso administradas por Unity Catalog.

¿Qué es un volumen externo?

Un volumen externo es un volumen de almacenamiento regulado por Unity Catalog y registrado en un directorio de una ubicación externa mediante credenciales de almacenamiento reguladas por Unity Catalog.

El catálogo de Unity no administra el ciclo de vida ni el diseño de los archivos en volúmenes externos. Cuando se descarta un volumen externo, Unity Catalog no elimina los datos subyacentes.

¿Qué ruta de acceso se usa para acceder a los archivos de un volumen?

Los volúmenes se sitúan en el tercer nivel del espacio de nombres de tres niveles de Unity Catalog (catalog.schema.volume):

Diagrama del modelo de objetos de Unity Catalog, centrado en el volumen

La ruta de acceso a los volúmenes es la misma tanto si se usa Apache Spark, SQL o Python como otros lenguajes y bibliotecas. Esto difiere de los patrones de acceso heredados para los archivos del almacenamiento de objetos enlazados a un área de trabajo de Azure Databricks.

La ruta de acceso a los archivos de los volúmenes tiene el siguiente formato:

/Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>

Azure Databricks también admite un esquema dbfs:/ opcional al trabajar con Apache Spark, por lo que también funciona la siguiente ruta de acceso:

dbfs:/Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>

La secuencia /<catalog>/<schema>/<volume> de la ruta de acceso corresponde a los tres nombres de objeto de Unity Catalog asociados al archivo. Estos elementos de ruta de acceso son de solo lectura y no los pueden escribir directamente los usuarios, lo que significa que no es posible crear o eliminar estos directorios mediante operaciones del sistema de archivos. Se administran automáticamente y se mantienen sincronizados con las entidades de Unity Catalog correspondientes.

Nota:

También puede acceder a los datos de volúmenes externos mediante URI de almacenamiento en la nube.

Rutas de acceso reservadas para volúmenes

Los volúmenes presentan las siguientes rutas de acceso reservadas que se usan para acceder a volúmenes:

  • dbfs:/Volumes
  • /Volumes

Nota:

Las rutas de acceso también están reservadas para posibles errores tipográficos de estas rutas de acceso de las API de Apache Spark y dbutils, incluidos /volumes, /Volume y /volume, si están precedidas o no de dbfs:/. La ruta de acceso /dbfs/Volumes también está reservada, pero no se puede usar para acceder a los volúmenes.

Los volúmenes solo se admiten en Databricks Runtime 13.3 LTS y versiones posteriores. En Databricks Runtime 12.2 LTS y versiones anteriores, las operaciones contra rutas de acceso de /Volumes pueden tener éxito, pero solo pueden escribir datos en discos de almacenamiento efímeros conectados a clústeres de proceso en lugar de almacenar datos en volúmenes de Catálogo de Unity como se esperaba.

Importante

Si tiene datos preexistentes almacenados en una ruta reservada en la raíz de DBFS, puede presentar una incidencia de soporte técnico para obtener acceso temporal a esos datos para moverlos a otra ubicación.

Requisitos de computación

Al trabajar con volúmenes, se debe usar un almacén SQL o un clúster en el que se ejecute Databricks Runtime 13.3 LTS o una versión posterior, a menos que se usen las interfaces de usuario de Azure Databricks, como el Explorador de catálogo.

Limitaciones

Debe usar recursos de computación habilitados para Unity Catalog para interactuar con los volúmenes de Unity Catalog. Los volúmenes no admiten todas las cargas de trabajo.

En la tabla siguiente se describen las limitaciones del volumen del catálogo de Unity en función de la versión de Databricks Runtime:

Versión de Databricks Runtime Limitaciones
Todas las versiones admitidas de Databricks Runtime
  • Los volúmenes no admiten comandos dbutils.fs distribuidos a ejecutores.
  • Las UDF del catálogo de Unity no admiten el acceso a rutas de acceso a archivos de volumen.
  • No se puede acceder a los volúmenes desde los RDDs.
  • No se puede usar la tarea de spark-submit heredada con JAR almacenados en un volumen. En su lugar, use la tarea JAR. Consulte Tarea JAR para trabajos.
  • No se pueden definir dependencias a otras bibliotecas a las que se accede a través de rutas de acceso de volumen dentro de un archivo Wheel o JAR.
  • No se pueden enumerar los objetos de Unity Catalog mediante los patrones /Volumes/<catalog-name> o /Volumes/<catalog-name>/<schema-name>. Debes usar una ruta de acceso completa que incluya un nombre de volumen, con el formato Volumes/<catalog-name>/<schema-name>/<volume-name>. Por ejemplo, dbutils.fs.ls("/Volumes/MyCatalog/MySchema/MyVolume")
  • El punto de conexión de DBFS para la API REST no admite rutas de volúmenes.
  • %sh mv no se admite para mover archivos entre volúmenes. Use dbutils.fs.mv o %sh cp en su lugar.
  • No se puede crear un sistema de archivos de Hadoop personalizado con volúmenes. Por ejemplo, el uso de new Path("dbfs:/Volumes/main/default/test-volume/file.txt") para crear un objeto org.apache.hadoop.fs.path no funcionará.
  • Los volúmenes no están disponibles en las regiones o espacios de trabajo de Azure Government con cumplimiento de FedRAMP.
  • Debe usar el formato de ruta de acceso con un esquema dbfs:/ en el panel de configuración de la biblioteca de Azure Data Factory; por ejemplo, dbfs:/Volumes/<catalog-name>/<schema-name>/<volume-name>/file.
14.3 LTS y versiones posteriores
  • En el cómputo con modo de acceso dedicado (anteriormente modo de acceso de usuario único), no puede acceder a volúmenes desde hilos y subprocesos en Scala.
14.2 y versiones posteriores
  • En el proceso configurado con el modo de acceso estándar (anteriormente modo de acceso compartido), no puede usar UDF para acceder a los volúmenes.
    • Tanto Python como Scala tienen acceso a FUSE desde el controlador, pero no desde ejecutores.
    • El código Scala que realiza operaciones de E/S puede ejecutarse en el controlador, pero no en los ejecutores.
  • En el proceso configurado con el modo de acceso dedicado, no hay compatibilidad con FUSE en Scala, con el código de E/S de Scala que accede a datos mediante rutas de acceso de volumen o UDF de Scala. Las UDF de Python se admiten en modo de acceso dedicado.

Pasos siguientes

Los artículos siguientes proporcionan más información sobre cómo trabajar con volúmenes: