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. Después, 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 Managed Service for Apache Spark que exponga varios servicios de Dataproc Metastore a través de un solo extremo. Después, 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:

  • Una instancia de Dataproc Metastore
  • Un proyecto que contiene uno o más conjuntos de datos de BigQuery
  • Un Knowledge Catalog Lake (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 publica 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 un 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.

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.

Knowledge Catalog Lakes

  • 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 Knowledge Catalog Lake.

Orden de origen

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

  • Si la solicitud contiene un nombre de base de datos. La solicitud se enruta al almacén de metadatos de backend que contiene el nombre de la base de datos. Si más de un almacén de metadatos contiene el mismo nombre de base de datos, la solicitud se enruta al almacén de metadatos con el rango más bajo.
  • Si la solicitud crea o descarta una base de datos. La solicitud se enruta al almacén de metadatos con el rango más bajo.
  • Si la solicitud no contiene un nombre de base de datos y no crea ni descarta 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?