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, creas un servicio de federación y, luego, configuras 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 integración, puedes crear un clúster de Dataproc que exponga varios servicios de Dataproc Metastore a través de un extremo único. 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 durante el tiempo de ejecución.

  • La interfaz de Hive Metastore admite métodos de lectura y escritura. El servicio de integración expone una versión de gRPC de la interfaz de Hive Metastore.
  • En el entorno de ejecución, cuando el servicio de integración recibe una solicitud, verifica el 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 metatiendas 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 enumeran las restricciones que debes cumplir cuando usas varias fuentes de metadatos.

Todas las fuentes

Las siguientes restricciones se aplican 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 federación, crea tu almacén de metadatos con un extremo de gRPC.
  • Los servicios de federación se pueden conectar a servicios de Dataproc Metastore de una sola región en cualquier región. Los servicios de federación no admiten servicios de Dataproc Metastore multirregionales.

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.
  • Agrega al menos un servicio de Dataproc Metastore como fuente, junto 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. Durante el tiempo de ejecución, cuando el servicio de integración recibe una solicitud, verifica el orden de la fuente 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 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 ni elimina 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 metastores contiene una base de datos. El motor de OSS responde con el equivalente de un error de no encontrado.

¿Qué sigue?