Información acerca de la federación de metadatos

La federación de metadatos es un servicio que te permite acceder a varias fuentes de metadatos desde un solo extremo.

Para configurar la federación, crea un servicio de federación y, luego, configura tus fuentes de metadatos. Luego, el servicio expone un solo extremo 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 solo extremo. Luego, puedes ejecutar trabajos de macrodatos 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 macrodatos de OSS que se ejecutan en Spark o Hive envían solicitudes a la API de Hive Metastore para recuperar 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 de gRPC de la interfaz de Hive Metastore.
  • En el tiempo de ejecución, cuando el servicio de federación recibe una solicitud, verifica el orden de origen para recuperar los metadatos adecuados.

Fuentes de metadatos

Cuando creas un servicio de federación, debes agregar una fuente de metadatos. Puedes usar las siguientes fuentes como almacenes de metadatos de backend:

  • Es una instancia de Dataproc Metastore.
  • Es un proyecto que contiene uno o más conjuntos de datos de BigQuery.
  • Es un lake de Dataplex Universal Catalog (vista previa).

Restricciones de origen

En la siguiente sección, se enumeran las restricciones que debes cumplir cuando usas 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 cambio, el servicio de federación solo entrega 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 extremos de gRPC. Para usar un Dataproc Metastore con federación, crea tu almacén de metadatos con un extremo de gRPC.
  • Los servicios de federación se pueden adjuntar a servicios de Dataproc Metastore de una sola región o de varias regiones.

    Si el almacén de metadatos multirregional se encuentra en un proyecto diferente del servicio de federación, otorga a la cuenta de servicio de Dataproc Metastore del proyecto de federación el permiso metastore.services.get en las instancias de Dataproc Metastore configuradas en la región múltiple.

BigQuery

Si usas un proyecto que contiene conjuntos de datos de BigQuery como fuente, debes cumplir con las siguientes condiciones:

  • Otorga los roles correctos de Identity and Access Management para acceder al proyecto que contiene los conjuntos de datos de BigQuery.
  • Agrega al menos un servicio de Dataproc Metastore como fuente, junto con tus conjuntos de datos de BigQuery.

Lakes de Dataplex Universal Catalog

  • Otorga un rol de IAM que contenga el permiso dataplex.lakes.get.
  • Agrega al menos un servicio de Dataproc Metastore como fuente, junto con tu lake de Dataplex Universal Catalog.

Orden de las fuentes

Tu servicio de federación procesa las solicitudes de metadatos en orden de prioridad. Este concepto se conoce como ordenamiento de fuentes. En el tiempo de ejecución, cuando el servicio de federación recibe una solicitud, verifica el orden de las fuentes y completa una de las siguientes acciones:

  • Si la solicitud contiene un nombre de base de datos La solicitud se enruta 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 enruta al metastore con el rango más bajo.
  • Si la solicitud crea o descarta una base de datos La solicitud se enruta al metastore con el rango más bajo.
  • Si la solicitud no contiene un nombre de base de datos y no crea ni borra una base de datos La solicitud se enruta 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 y create_database.
  • Si ninguno de los almacenes de metadatos contiene una base de datos El motor de OSS responde con el equivalente a un error de no encontrado.

¿Qué sigue?