Compartir vía


¿Qué es Unity Catalog?

En este artículo se presenta Unity Catalog, una solución de gobernanza unificada para los recursos de datos e inteligencia artificial en Azure Databricks.

Nota:

El Unity Catalog también está disponible como una implementación de código abierto. Vea el blog del anuncio y el repositorio público de GitHub del Unity Catalog.

Introducción a Unity Catalog

Unity Catalog proporciona capacidades centralizadas de control de acceso, auditoría, linaje y descubrimiento de datos en todas las áreas de trabajo de Azure Databricks.

Diagrama de Unity Catalog

Las principales características de Unity Catalog incluyen:

  • Defina una vez y esté seguro en todas partes: Unity Catalog ofrece un único lugar para administrar las directivas de acceso a datos que se aplican en todas las áreas de trabajo y roles.
  • Modelo de seguridad compatible con estándares: El modelo de seguridad del Unity Catalog se basa en ANSI SQL estándar y permite a los administradores conceder permisos en su lago de datos existente mediante una sintaxis conocida, en el nivel de catálogos, esquemas (también denominados bases de datos), tablas y vistas.
  • Auditoría y linaje incorporados: Unity Catalog captura automáticamente registros de auditoría a nivel de usuario que registran el acceso a sus datos. El Catálogo Unity también captura datos de linaje que rastrean cómo se crean y utilizan los activos de datos en todos los idiomas.
  • Descubrimiento de datos: Unity Catalog le permite etiquetar y documentar los activos de datos, y proporciona una interfaz de búsqueda para ayudar a los consumidores de datos a encontrarlos.
  • Tablas del sistema (versión preliminar pública): Unity Catalog le permite acceder y consultar fácilmente los datos operativos de su cuenta, incluidos los registros de auditoría, el uso facturable y el linaje.

El modelo de objetos de Unity Catalog

En Unity Catalog, todos los metadatos se registran en un metastore. La jerarquía de objetos de base de datos de cualquier metastore de Unity Catalog se divide en tres niveles, representado como un espacio de nombres de tres niveles (catalog.schema.table-etc) al hacer referencia a tablas, vistas, volúmenes, modelos y funciones.

Diagrama del modelo de objetos del catálogo de Unity

Metastores

El metastore es el contenedor de nivel superior para los metadatos en Unity Catalog. Registra metadatos sobre activos de IA y datos y los permisos que rigen el acceso a los mismos. Para que un área de trabajo use Unity Catalog, debe tener un metastore de Unity Catalog asociado.

Debe tener una tienda de metadatos para cada región en la que tenga áreas de trabajo. Normalmente, se crea automáticamente un metastore cuando se crea un área de trabajo de Azure Databricks en una región por primera vez. Para algunas cuentas anteriores, un administrador de cuenta debe crear el metastore y asignar las áreas de trabajo de esa región a la metastore.

Consulte Creación de un metastore de Unity Catalog.

Jerarquía de objetos en el metastore

En un metastore de Unity Catalog, la jerarquía de objetos de base de datos de tres niveles consta de catálogos que contienen esquemas, que a su vez contienen datos y objetos de inteligencia artificial, como tablas y modelos.

Nivel uno:

  • Catálogos se usan para organizar los recursos de datos y normalmente se usan como nivel superior en el esquema de aislamiento de datos. Los catálogos suelen reflejar las unidades organizativas o los ámbitos del ciclo de vida de desarrollo de software. Vea ¿Qué son los catálogos en Azure Databricks?.
  • Objetos protegibles que no son datos, como las credenciales de almacenamiento y las ubicaciones externas, se usan para administrar el modelo de gobernanza de datos en Unity Catalog. También se encuentran directamente en la tienda de metadatos. Se describen con más detalle en Otros objetos protegibles.

Nivel dos:

  • Esquemas (también conocidos como bases de datos) contienen tablas, vistas, volúmenes, modelos de IA y funciones. Los esquemas organizan los datos y los recursos de IA en categorías lógicas que son más granulares que los catálogos. Normalmente, un esquema representa un único caso de uso, proyecto o espacio aislado de equipo. Vea ¿Qué son los esquemas en Azure Databricks?.

Nivel tres:

Trabajar con objetos de base de datos en Unity Catalog

Trabajar con objetos de base de datos en Unity Catalog es muy similar a trabajar con objetos de base de datos registrados en un metastore de Hive, con la excepción de que un metastore de Hive no incluye catálogos en el espacio de nombres de objeto. Puede usar la sintaxis ANSI conocida para crear objetos de base de datos, administrar objetos de base de datos, administrar permisos y trabajar con datos en Unity Catalog. También puede crear objetos de base de datos, administrar objetos de base de datos y administrar permisos en objetos de base de datos mediante la interfaz de usuario del Explorador de catálogos.

Para obtener más información, vea Base de datos de objetos en Azure Databricks y Trabajar con Unity Catalog y el metastore de Hive heredado.

Otros objetos protegibles

Además de los objetos de base de datos y los recursos de inteligencia artificial contenidos en esquemas, Unity Catalog también rige el acceso a los datos mediante los siguientes objetos protegibles:

Para obtener más información sobre los objetos protegibles de Delta Sharing, vea Uso seguro de recursos compartidos de datos e inteligencia artificial mediante delta Sharing.

Concesión y revocación del acceso a objetos de base de datos y otros objetos protegibles en Unity Catalog

Puede conceder y revocar el acceso a objetos protegibles en cualquier nivel de la jerarquía, incluido el propio metastore. El acceso a un objeto concede implícitamente el mismo acceso a todos los elementos secundarios de ese objeto, a menos que se revoque el acceso.

Puede usar comandos de ANSI SQL típicos para conceder y revocar el acceso a objetos en Unity Catalog. Por ejemplo:

GRANT CREATE TABLE ON SCHEMA mycatalog.myschema TO `finance-team`;

También puede usar el Explorador de catálogos, la CLI de Databricks y las API de REST para administrar los permisos de objetos.

Concesión de privilegios mediante el Explorador de catálogos

Para obtener información sobre cómo administrar privilegios en Unity Catalog, vea Administrar privilegios en Unity Catalog.

Acceso predeterminado a objetos de base de datos en Unity Catalog

Unity Catalog funciona en el principio de privilegios mínimos, donde los usuarios tienen el acceso mínimo que necesitan para realizar sus tareas necesarias. Cuando se crea un área de trabajo, los usuarios que no son administradores solo tienen acceso al catálogo de área de trabajo aprovisionado automáticamente, lo que hace que este catálogo sea un lugar cómodo para que los usuarios prueben el proceso de creación y acceso a objetos de base de datos en Unity Catalog. Vea Privilegios de catálogo del área de trabajo.

Roles de administración

Los administradores del área de trabajo y los administradores de cuentas tienen privilegios adicionales de forma predeterminada. Administrador de Metastore es un rol opcional, necesario si desea administrar el almacenamiento de tablas y volúmenes en el nivel de metastore y conveniente si desea administrar datos de forma centralizada en varias áreas de trabajo de una región. Para obtener más información, vea Privilegios de administrador de Unity Catalog y (Opcional) Asignar el rol de administrador de metastore.

Administrado frente a tablas y volúmenes externos

Las tablas y volúmenes se pueden administrar o externas.

  • Las tablas administradas están totalmente administradas por Unity Catalog, lo que significa que Unity Catalog administra tanto la gobernanza como los archivos de datos subyacentes para cada tabla administrada. Las tablas administradas se almacenan en una ubicación administrada por Unity Catalog en el almacenamiento en la nube. Las tablas administradas siempre usan el formato Delta Lake. Puede almacenar tablas administradas en los niveles de metastore, catálogo o esquema.
  • Tablas externas son tablas cuyo acceso desde Azure Databricks está administrado por Unity Catalog, pero cuyo ciclo de vida de datos y diseño de archivos se administran mediante el proveedor de nube y otras plataformas de datos. Normalmente, se usan tablas externas para registrar grandes cantidades de datos existentes en Azure Databricks, o si también necesita acceso de escritura a los datos mediante herramientas fuera de Azure Databricks. Las tablas externas se admiten en varios formatos de datos. Una vez registrada una tabla externa en un metastore de Catálogo de Unity, puede administrar y auditar el acceso de Azure Databricks a ella, y trabajar con ella, igual que con las tablas administradas.
  • Los volúmenes administrados están totalmente administrados por Unity Catalog, lo que significa que Unity Catalog administra el acceso a la ubicación de almacenamiento del volumen en la cuenta del proveedor de nube. Al crear un volumen administrado, se almacena automáticamente en la Ubicación de almacenamiento administrada asignada al esquema contenedor.
  • Volúmenes externos representan los datos existentes en ubicaciones de almacenamiento que se administran fuera de Azure Databricks, pero registrados en el Unity Catalog para controlar y auditar el acceso desde Azure Databricks. Al crear un volumen externo en Azure Databricks, especifique su ubicación, que debe estar en una ruta de acceso definida en Unity Catalog ubicación externa.

Databricks recomienda tablas y volúmenes administrados para aprovechar al máximo las funcionalidades de gobernanza de Unity Catalog y las optimizaciones de rendimiento.

Vea Trabajar con tablas administradas, Trabajar con tablas externas, y volúmenes administrados frente a volúmenes externos.

Aislamiento de datos mediante almacenamiento administrado

Es posible que la organización requiera que los datos de determinados tipos se almacenen en cuentas o cubos específicos en el inquilino en la nube.

Unity Catalog ofrece la capacidad de configurar ubicaciones de almacenamiento en el nivel de metastore, catálogo o esquema para satisfacer estos requisitos. El sistema evalúa la jerarquía de las ubicaciones de almacenamiento del esquema al catálogo en el metastore.

Por ejemplo, supongamos que su organización tiene una directiva de cumplimiento de la empresa que requiere que los datos de producción relacionados con recursos humanos residan en el contenedor abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net. En Unity Catalog, puede lograr este requisito estableciendo una ubicación en un nivel de catálogo, creando un catálogo denominado, por ejemplo hr_prod, y asignando la ubicación abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net/unity-catalog a él. Esto significa que las tablas o volúmenes administrados creados en el catálogo hr_prod (por ejemplo, mediante CREATE TABLE hr_prod.default.table …) almacenan sus datos en abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net/unity-catalog. Opcionalmente, puede optar por proporcionar ubicaciones de nivel de esquema para organizar los datos en hr_prod catalog en un nivel más granular.

Si el aislamiento de almacenamiento no es necesario para algunos catálogos, puede establecer opcionalmente una ubicación de almacenamiento en el nivel de metastore. Esta ubicación sirve como ubicación predeterminada para tablas y volúmenes administrados en catálogos y esquemas que no tienen asignado almacenamiento. Sin embargo, normalmente, Databricks recomienda asignar ubicaciones de almacenamiento administradas independientes para cada catálogo.

Para obtener más información, vea Especificar una ubicación de almacenamiento administrada en Unity Catalog y los Datos están separados físicamente en el almacenamiento.

Enlace del catálogo del área de trabajo

De forma predeterminada, los propietarios de catálogos (y los administradores de metastore, si están definidos para la cuenta) pueden hacer que un catálogo sea accesible para los usuarios de varias áreas de trabajo asociadas al mismo metastore de Unity Catalog. Sin embargo, si usa áreas de trabajo para aislar el acceso a datos de usuario, es posible que desee limitar el acceso de catálogo a áreas de trabajo específicas de su cuenta, para asegurarse de que determinados tipos de datos solo se procesan en esas áreas de trabajo. Es posible que desee separar áreas de trabajo de producción y desarrollo, por ejemplo, o un área de trabajo independiente para procesar datos personales. Esto se conoce como enlace de catálogo de áreas de trabajo. Vea Limitar el acceso de catálogo a áreas de trabajo específicas.

Nota:

Para aumentar el aislamiento de datos, también puede enlazar el acceso de almacenamiento en la nube a áreas de trabajo específicas. Vea (Opcional) Asignar una credencial de almacenamiento a áreas de trabajo específicas y (Opcional) Asignar una ubicación externa a áreas de trabajo específicas.

Auditoría del acceso a datos

Unity Catalog captura un registro de auditoría de las acciones realizadas en el metastore, lo que permite a los administradores acceder a detalles específicos sobre quién ha accedido a un conjunto de datos determinado y las acciones que han realizado.

Puede acceder a los registros de auditoría de la cuenta mediante tablas del sistema administradas por Unity Catalog.

Vea Auditar eventos de Unity Catalog, eventos de Unity Catalog, y Supervisar el uso con tablas del sistema.

Seguimiento del linaje de datos

Puede usar el catálogo de Unity para capturar el linaje de datos en tiempo de ejecución entre las consultas de cualquier lenguaje que se ejecuten en un clúster de Azure Databricks o un almacén de SQL. El linaje se captura hasta el nivel de columna e incluye cuadernos, flujos de trabajo y paneles relacionados con la consulta. Para obtener más información, consulte Captura y visualización del linaje de datos mediante el catálogo de Unity.

Federación de Lakehouse y Unity Catalog

La federación de Lakehouse es la plataforma de federación de consultas para Azure Databricks. El término federación de consultas describe una colección de características que permiten a los usuarios y sistemas ejecutar consultas en varios orígenes de datos en silos sin necesidad de migrar todos los datos a un sistema unificado.

Azure Databricks usa Unity Catalog para administrar la federación de consultas. El catálogo de Unity se usa para configurar conexiones de solo lectura a sistemas de bases de datos externos populares y crear catálogos externos que reflejen bases de datos externas. Las herramientas de gobernanza de datos y linaje de datos de Unity Catalog garantizan que el acceso a los datos se administre y audite para todas las consultas federadas realizadas por los usuarios en las áreas de trabajo de Azure Databricks.

Consulte ¿Qué es la federación de Lakehouse?.

Delta Sharing, Databricks Marketplace y Unity Catalog

Delta Sharing es una plataforma segura de uso compartido de datos que permite compartir datos y recursos de inteligencia artificial con usuarios externos a la organización, independientemente de si esos usuarios usan Databricks. Aunque Delta Sharing está disponible como una implementación de código abierto, en Databricks requiere que Unity Catalog aproveche al máximo la funcionalidad extendida. Consulte Uso seguro de recursos de uso compartido de datos e inteligencia artificial mediante Delta Sharing.

Databricks Marketplace, un foro abierto para intercambiar productos de datos, se basa en el uso compartido delta y, como tal, debe tener un área de trabajo habilitada para Unity Catalog para que sea un proveedor de Marketplace. Consulte Qué es Marketplace de Databricks.

¿Cómo configurar Unity Catalog para una organización?

Para usar Unity Catalog, el área de trabajo de Azure Databricks debe estar habilitada para Unity Catalog, lo que significa que el área de trabajo está asociada a un metastore de Unity Catalog. Todas las áreas de trabajo nuevas están habilitadas automáticamente para el Unity Catalog al crearse, pero es posible que las áreas de trabajo anteriores requieran que un administrador de la cuenta habilite el Unity Catalog manualmente. Tanto si el área de trabajo se ha habilitado automáticamente para Unity Catalog, también se requieren los pasos siguientes para empezar a trabajar con Unity Catalog:

  • Cree catálogos y esquemas para contener objetos de base de datos como tablas y volúmenes.
  • Cree ubicaciones de almacenamiento administradas para almacenar las tablas y volúmenes administrados en estos catálogos y esquemas.
  • Conceda al usuario acceso a catálogos, esquemas y objetos de base de datos.

Las áreas de trabajo que están habilitadas automáticamente para Unity Catalog aprovisionan un catálogo de área de trabajo con privilegios amplios concedidos a todos los usuarios del área de trabajo. Este catálogo es un punto de partida conveniente para probar el Unity Catalog.

Para obtener instrucciones detalladas sobre la configuración, vea Configuración y administración de Unity Catalog.

Migración de un área de trabajo existente al Unity Catalog

Si tiene un área de trabajo anterior que ha habilitado recientemente para Unity Catalog, es probable que tenga datos administrados por el metastore de Hive heredado. Puede trabajar con esos datos junto con los datos registrados en Unity Catalog, pero el metastore de Hive heredado está en desuso y debe migrar los datos de su metastore de Hive al Unity Catalog lo antes posible para aprovechar las funcionalidades y el rendimiento superiores de gobernanza del Unity Catalog.

La migración implica lo siguiente:

  1. Convertir cualquier grupo local del área de trabajo en grupos de nivel de cuenta. Unity Catalog centraliza la administración de identidades en el nivel de cuenta.
  2. Migración de tablas y vistas administradas en el metastore de Hive al Unity Catalog.
  3. Actualice las consultas y los flujos de trabajo para hacer referencia a las nuevas tablas del Unity Catalog en lugar de las antiguas tablas de metastore de Hive.

Lo siguiente puede ayudarle a administrar una migración:

Requisitos y restricciones de Unity Catalog

Unity Catalog requiere tipos específicos de formatos de proceso y archivo, que se describen a continuación. A continuación también se enumeran algunas características de Azure Databricks que no son totalmente compatibles con el Unity Catalog en todas las versiones de Databricks Runtime.

Regiones admitidas

Todas las regiones admiten Unity Catalog. Para obtener más información, consulte Regiones de Azure Databricks.

Requisitos de proceso

Unity Catalog es compatible con clústeres que ejecutan Databricks Runtime 11.3 LTS o posteriores. Unity Catalog es admitido de forma predeterminada en todas las versiones de proceso de almacenamiento SQL.

Los clústeres que se ejecutan en versiones anteriores de Databricks Runtime no proporcionan compatibilidad con todas las características y funcionalidades de GA del catálogo de Unity.

Para acceder a los datos de Unity Catalog, los clústeres deben configurarse con el modo de acceso correcto. Unity Catalog es seguro de forma predeterminada. Si un clúster no está configurado con el modo de acceso compartido o de usuario único, el clúster no puede acceder a los datos en Unity Catalog. Consulte Modos de acceso.

Para obtener información detallada sobre los cambios en las funciones de Unity Catalog en cada versión de Databricks Runtime, vea las notas de la versión.

Las limitaciones de Unity Catalog varían según el modo de acceso y la versión de Databricks Runtime. Vea Limitaciones del modo de acceso de proceso para Unity Catalog.

Compatibilidad con el formato de archivo

El catálogo de Unity admite los siguientes formatos de tabla:

Limitaciones

El catálogo de Unity tiene las siguientes limitaciones. Algunas de ellas son específicas de las versiones anteriores de Databricks Runtime y los modos de acceso de proceso.

Las cargas de trabajo de Structured Streaming tienen limitaciones adicionales, en función del entorno de ejecución y el modo de acceso de Databricks. Vea Limitaciones del modo de acceso de proceso para Unity Catalog.

Databricks publica nuevas funcionalidades que reducen esta lista periódicamente.

  • Los grupos que se crearon anteriormente en un área de trabajo (es decir, los grupos de nivel de área de trabajo) no se pueden usar en las instrucciones GRANT Unity Catalog. Esto es para garantizar una vista coherente de los grupos que pueden abarcar áreas de trabajo. Para usar grupos en instrucciones GRANT, cree los grupos en el nivel de cuenta y actualice cualquier automatización para la administración de entidades de seguridad o grupos (como SCIM, Okta y Microsoft Entra ID (anteriormente Azure Active Directory) y Terraform) para hacer referencia a los puntos de conexión de cuenta en lugar de a los puntos de conexión del área de trabajo. Consulte Diferencia entre grupos de cuenta y grupos de área de trabajo local.

  • Las cargas de trabajo no admiten el uso de vistas dinámicas para la seguridad en el nivel de fila o de columna.

  • Los clones poco profundos no se admiten en Unity Catalog en el proceso que ejecuta Databricks Runtime 12.2 LTS y versiones posteriores. Puede usar clones poco profundos para crear tablas administradas en Databricks Runtime 13.3 LTS y versiones posteriores. No se pueden usar para crear tablas externas, independientemente de la versión de Databricks Runtime. Consulte Clonación superficial para tablas de Unity Catalog.

  • No se admite la creación de cubos para las tablas Unity Catalog. Si ejecuta comandos que intentan crear una tabla en cubo en Unity Catalog, se producirá una excepción.

  • Escribir en la misma ruta de acceso o tabla de Delta Lake desde áreas de trabajo de varias regiones puede provocar un rendimiento poco confiable si algunos clústeres acceden a Unity Catalog y otros no.

  • Los esquemas de partición personalizados creados mediante comandos como ALTER TABLE ADD PARTITION no se admiten para tablas en Unity Catalog. Unity Catalog puede acceder a tablas que utilizan particiones de estilo directorio.

  • El modo de sobrescritura para las operaciones de escritura de DataFrame en Unity Catalog solo es compatible con las tablas Delta, no con otros formatos de archivo. El usuario debe tener el privilegio CREATE en el esquema primario y debe ser el propietario del objeto existente o tener el privilegio MODIFY en el objeto.

  • Las UDF de Python no se admiten en Databricks Runtime 12.2 LTS y versiones posteriores. Esto incluye UDAFs, UDTFs y Pandas en Spark (applyInPandas y mapInPandas). Las UDF escalares de Python se admiten en Databricks Runtime 13.3 LTS y versiones posteriores.

  • Las UDF de Scala no se admiten en Databricks Runtime 14.1 ni en clústeres compartidos. Las UDF escalares de Scala se admiten en Databricks Runtime 14.2 y versiones posteriores en clústeres compartidos.

  • No se admiten los grupos de subproceso estándar de Scala. En su lugar, utilice los grupos de subprocesos especiales en org.apache.spark.util.ThreadUtils, por ejemplo, org.apache.spark.util.ThreadUtils.newDaemonFixedThreadPool. Sin embargo, los siguientes grupos de procesos en ThreadUtils no son compatibles: ThreadUtils.newForkJoinPool y cualquier grupo de procesos ScheduledExecutorService.

  • El registro de auditoría solo se admite para eventos del Catálogo Unity a nivel de área de trabajo. Los eventos que tienen lugar a nivel de cuenta sin referencia a un área de trabajo, como la creación de un metastore, no se registran.

Los modelos registrados en Unity Catalog tienen limitaciones adicionales. Consulte Limitaciones.

Cuotas de recursos

Unity Catalog aplica cuotas de recursos en todos los objetos protegibles. Si espera superar estos límites de recursos, póngase en contacto con el equipo de la cuenta de Azure Databricks.

Los valores de cuota siguientes se expresan en relación con el objeto primario (o abuelo) en el catálogo de Unity.

Object Parent Valor
table esquema 10 000
table metastore 1000000
volumen esquema 10 000
function esquema 10 000
Modelo registrado esquema 1 000
Modelo registrado metastore 5000
versión del modelo Modelo registrado 10 000
versión del modelo metastore 100000
esquema catalog 10 000
catalog metastore 1000
conexión metastore 1000
credencial de almacenamiento metastore 200
Ubicación externa metastore 10 000

Para conocer los límites de uso compartido de Delta, consulte Cuotas de recursos.