Información acerca de la federación de metadatos

La agregació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 tu fuentes de metadatos. Luego, el servicio expone un único 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 expone varios servicios de Dataproc Metastore a través de un extremo único. Luego, podrás ejecutar trabajos de macrodatos con código abierto de software (OSS), como Spark o Hive, para acceder a los 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 durante el tiempo de ejecución.

  • La interfaz de Hive Metastore admite métodos de lectura y escritura. El servicio de federación expone un gRPC de la interfaz de Hive Metastore.
  • En el entorno de ejecución, cuando el servicio de federación recibe una solicitud, verifica la ordenamiento de la fuente 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 lake de Dataplex (versión preliminar)

Restricciones de fuentes

En la siguiente sección, se mencionan las restricciones que debes cumplir cuando utilizando 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, la 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 otra federación servicio.

Dataproc Metastore

Si usas Dataproc Metastore como fuente, ocurre lo siguiente: se aplican restricciones:

  • Los servicios de federación solo están disponibles a través de los extremos de gRPC. Para usar un Dataproc Metastore con la integración, crea tu almacén de metadatos con un extremo de gRPC.
  • Los servicios de federación se pueden conectar a una sola región de Dataproc Metastore servicios en una sola región. Los servicios de federación no son compatibles servicios multirregionales de Dataproc Metastore.

BigQuery

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

  • Otorga los roles de IAM correctos para acceder al proyecto que contiene los conjuntos de datos de BigQuery.
  • Agregar al menos un servicio de Dataproc Metastore como fuente con tus conjuntos de datos de BigQuery.

Lakes de Dataplex

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

Orden de la fuente

Tu servicio de federación procesa las solicitudes de metadatos en orden de prioridad. Esta se conoce como orden de origen. En el entorno de ejecución, cuando el servicio de federación recibe una solicitud, comprueba el orden de la fuente y completa uno de los 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 hay más de uno almacén de metadatos contiene el mismo nombre de base de datos, la solicitud se enruta al Metastore con la clasificación más baja.
  • Si la solicitud crea o descarta una base de datos. La solicitud se enruta al Metastore con la clasificación más baja.
  • Si la solicitud no contiene un nombre de base de datos y no crea o descartar una base de datos La solicitud se enruta al Instancia de Dataproc Metastore con la clasificación más baja. Algunos ejemplos de solicitudes de Hive Metastore que no especifican una base de datos son set_ugi y create_database.
  • Si ninguno de los metadatos contiene una base de datos: El motor de OSS responde con el equivalente de un error de no encontrado.

¿Qué sigue?