Compartir a través de


Procedimientos recomendados para DBFS y Unity Catalog

Unity Catalog presenta una serie de configuraciones y conceptos nuevos que se aproximan a la gobernanza de datos de manera totalmente diferente a DBFS. En este artículo se describen varios procedimientos recomendados para trabajar con ubicaciones externas de Unity Catalog y DBFS.

Databricks recomienda el uso de DBFS y el almacenamiento de objetos en la nube montado para la mayoría de los casos de uso de las áreas de trabajo de Azure Databricks que están habilitadas para Unity Catalog. En este artículo se describen algunos escenarios en los que debe usar el almacenamiento de objetos en la nube montado. Tenga en cuenta que Databricks no recomienda usar la raíz de DBFS junto con Unity Catalog, a menos que deba migrar archivos o datos que estén almacenados allí a Unity Catalog.

¿Cómo se usa DBFS en áreas de trabajo que están habilitadas para Unity Catalog?

Las acciones realizadas en tablas del hive_metastore usan patrones de acceso a datos heredados, que pueden incluir credenciales de almacenamiento y datos administradas por DBFS. Las tablas administradas del hive_metastore de ámbito del área de trabajo se almacenan en la raíz de DBFS.

¿Cómo funciona DBFS en el modo de acceso de usuario único?

Los clústeres que están configurados con el modo de acceso de usuario único tienen acceso total a DBFS, incluidos todos los archivos de la raíz de DBFS y los datos montados.

¿Cómo funciona DBFS en el modo de acceso compartido?

El modo de acceso compartido combina la gobernanza de datos de Unity Catalog con las ACL de la tabla heredada de Azure Databricks. El acceso a los datos de hive_metastore solo está disponible para los usuarios que tengan los permisos concedidos explícitamente.

Para interactuar con archivos directamente mediante DBFS, debe tener los permisos ANY FILE concedidos. Dado que ANY FILE permite a los usuarios omitir las ACL de las tablas heredadas en hive_metastore y acceder a todos los datos que administra DBFS, Databricks recomienda que este privilegio se conceda con precaución.

No se debe usar DBFS con ubicaciones externas de Unity Catalog

Unity Catalog protege el acceso a los datos de ubicaciones externas mediante rutas de acceso completas del URI en la nube para identificar concesiones en directorios de almacenamiento de objetos administrados. Los montajes de DBFS usan un modelo de acceso a datos totalmente diferente que omite por completo Unity Catalog. Databricks recomienda no reutilizar volúmenes de almacenamiento de objetos en la nube entre montajes DBFS y volúmenes externos de UC, incluido cuando se comparten datos entre áreas de trabajo o cuentas.

Protección del almacenamiento administra Unity Catalog

Unity Catalog mediante ubicaciones de almacenamiento administradas para almacenar archivos de datos para tablas y volúmenes administrados.

Databricks recomienda lo siguiente para ubicaciones de almacenamiento administradas:

  • Use nuevas cuentas de almacenamiento o cubos.
  • Defina una directiva de identidad personalizada para el catálogo de Unity.
  • Restrinja todo el acceso a Azure Databricks administrado por Unity Catalog.
  • Restrinja todo el acceso a las directivas de acceso de identidad creadas para el catálogo de Unity.

Agregar datos existentes a ubicaciones externas

Es posible cargar cuentas de almacenamiento existentes en Unity Catalog mediante ubicaciones externas. Para mayor seguridad, Databricks solo recomienda cargar cuentas de almacenamiento en ubicaciones externas después de revocar todas las demás credenciales de almacenamiento y patrones de acceso.

Nunca debe cargar una cuenta de almacenamiento que se use como raíz de DBFS como una ubicación externa en Unity Catalog.

El acceso al sistema de archivos de Unity Catalog omite las configuraciones de clúster

Unity Catalog no respeta las configuraciones de clúster para la configuración del sistema de archivos. Esto significa que la configuración del sistema de archivos de Hadoop para configurar el comportamiento personalizado con el almacenamiento de objetos en la nube no funciona cuando se accede a los datos mediante Unity Catalog.

Limitación del acceso a varias rutas de acceso

Aunque por lo general puede usar Unity Catalog y DBFS juntos, no se puede hacer referencia a las rutas de acceso que son iguales o que comparten una relación de elementos primarios o secundarios en el mismo comando o celda del cuaderno mediante métodos de acceso diferentes.

Por ejemplo, si se define una tabla externa foo en hive_metastore en la ubicación a/b/c y una ubicación externa en Unity Catalog en a/b/, el código siguiente producirá un error:

spark.read.table("foo").filter("id IS NOT NULL").write.mode("overwrite").save("a/b/c")

Si la lógica se divide en dos celdas, no se producirá este error:

df = spark.read.table("foo").filter("id IS NOT NULL")
df.write.mode("overwrite").save("a/b/c")