La federación de metadatos es un servicio que te permite acceder a varias fuentes de metadatos desde un único endpoint.
Para configurar la federación, crea un servicio de federación y, a continuación, configura tus fuentes de metadatos. Después, el servicio expone un único endpoint de gRPC que puedes usar para acceder a todos tus metadatos.
Por ejemplo, con la federación, puedes crear un clúster de Dataproc que exponga varios servicios de Dataproc Metastore a través de un único endpoint. Después, puedes ejecutar tareas de Big Data a través de motores de software de código abierto (OSS), como Spark o Hive, para acceder a tus metadatos en varios almacenes de metadatos.
Cómo funciona la federación
Las cargas de trabajo de Big Data de OSS que se ejecutan en Spark o Hive envían solicitudes a la API de Hive Metastore para obtener metadatos en el tiempo de ejecución.
- La interfaz de Hive Metastore admite métodos de lectura y escritura. El servicio de federación expone una versión gRPC de la interfaz de Hive Metastore.
- En el tiempo de ejecución, cuando el servicio de federación recibe una solicitud, comprueba el orden de origen para recuperar los metadatos adecuados.
Fuentes de metadatos
Cuando creas un servicio de federación, debes añadir una fuente de metadatos. Puedes usar las siguientes fuentes como metastores de backend:
- Una instancia de Dataproc Metastore.
- Un proyecto que contiene uno o varios conjuntos de datos de BigQuery.
- Un lago de Dataplex Universal Catalog (vista previa).
Restricciones de fuentes
En la siguiente sección se enumeran las restricciones que debes cumplir al usar varias fuentes de metadatos.
Todas las fuentes
Se aplican las siguientes restricciones a todas las fuentes de metadatos:
- Un servicio de federación no contiene sus propios datos. En su lugar, el servicio de federación solo proporciona metadatos de una de sus fuentes de metadatos.
- Un servicio de federación no puede ser una fuente de metadatos en otro servicio de federación.
Dataproc Metastore
Si usas Dataproc Metastore como fuente, se aplican las siguientes restricciones:
- Los servicios de federación solo están disponibles a través de endpoints gRPC. Para usar un Dataproc Metastore con federación, crea tu metastore con un endpoint gRPC.
Los servicios de federación se pueden asociar a servicios de Dataproc Metastore de una o varias regiones.
Si el metastore multirregional está en un proyecto distinto del servicio de federación, concede el permiso
metastore.services.get
a la cuenta de servicio de Dataproc Metastore del proyecto de federación en las instancias de Dataproc Metastore configuradas en la multirregión.
BigQuery
Si usas un proyecto que contiene conjuntos de datos de BigQuery como fuente, debes cumplir las siguientes condiciones:
- Asigna los roles de Gestión de Identidades y Accesos correctos para acceder al proyecto que contiene los conjuntos de datos de BigQuery.
- Añade al menos un servicio Dataproc Metastore como fuente, junto con tus conjuntos de datos de BigQuery.
Lagos de Dataplex Universal Catalog
- Asigna un rol de gestión de identidades y accesos que contenga el permiso
dataplex.lakes.get
. - Añade al menos un servicio de Dataproc Metastore como fuente, junto con tu lago de Dataplex Universal Catalog.
Orden de las fuentes
Tu servicio de federación procesa las solicitudes de metadatos por orden de prioridad. Este concepto se conoce como ordenación por fuente. En el tiempo de ejecución, cuando el servicio de federación recibe una solicitud, comprueba el orden de origen y completa una de las siguientes acciones:
- Si la solicitud contiene un nombre de base de datos. La solicitud se dirige al metastore de backend que contiene el nombre de la base de datos. Si más de un metastore contiene el mismo nombre de base de datos, la solicitud se dirige al metastore con el rango más bajo.
- Si la solicitud crea o elimina una base de datos. La solicitud se dirige al metastore con el rango más bajo.
- Si la solicitud no contiene un nombre de base de datos y no crea ni elimina una base de datos. La solicitud se dirige a la instancia de Dataproc Metastore con el rango más bajo. Algunos ejemplos de solicitudes de Hive Metastore que no especifican una base de datos son
set_ugi
ycreate_database
. - Si ninguno de los metastores contiene una base de datos. El motor de OSS responde con el equivalente a un error de no encontrado.