À propos de la fédération de métadonnées

La fédération de métadonnées est un service qui vous permet d'accéder à plusieurs sources de métadonnées à partir d'un seul point de terminaison.

Pour configurer la fédération, vous devez créer un service de fédération, puis configurer vos sources de métadonnées. Ensuite, le service expose un point de terminaison gRPC unique que vous pouvez utiliser pour accéder à toutes vos métadonnées.

Par exemple, grâce à la fédération, vous pouvez créer un cluster Dataproc qui expose plusieurs services Dataproc Metastore via un seul point de terminaison. Par la suite, vous pouvez exécuter des jobs de big data via des moteurs logiciels Open Source, tels que Spark ou Hive, pour accéder à vos métadonnées dans plusieurs métastores.

Fonctionnement de la fédération

Les charges de travail big data OSS exécutées sur Spark ou Hive envoient des requêtes à l'API Hive Metastore pour récupérer des métadonnées au moment de l'exécution.

  • L'interface Hive Metastore est compatible avec les méthodes de lecture et d'écriture. Le service de fédération expose une version gRPC de l'interface Hive Metastore.
  • Au moment de l'exécution, lorsque le service de fédération reçoit une requête, il vérifie l'ordre des sources pour récupérer les métadonnées appropriées.

Sources des métadonnées

Lorsque vous créez un service de fédération, vous devez ajouter une source de métadonnées. Vous pouvez utiliser les sources suivantes comme métastores de backend:

  • Une instance Dataproc Metastore.
  • Un projet contenant un ou plusieurs ensembles de données BigQuery.
  • Un lac Dataplex (version preview)

Restrictions liées aux sources

La section suivante répertorie les restrictions que vous devez respecter lorsque vous utilisez différentes sources de métadonnées.

Toutes les sources

Les restrictions suivantes s'appliquent à toutes les sources de métadonnées:

  • Un service de fédération ne contient pas ses propres données. Au lieu de cela, le service de fédération diffuse simplement les métadonnées de l'une de ses sources de métadonnées.
  • Un service de fédération ne peut pas être une source de métadonnées dans un autre service de fédération.

Dataproc Metastore

Si vous utilisez un Dataproc Metastore en tant que source, les restrictions suivantes s'appliquent:

  • Les services de fédération ne sont disponibles que via des points de terminaison gRPC. Pour utiliser un métastore Dataproc avec fédération, créez votre métastore avec un point de terminaison gRPC.
  • Les services de fédération peuvent être associés à des services Dataproc Metastore d'une seule région dans n'importe quelle région. Les services de fédération ne sont pas compatibles avec les services Dataproc Metastore multirégionaux.

BigQuery

Si vous utilisez un projet qui contient des ensembles de données BigQuery en tant que source, vous devez remplir les conditions suivantes:

  • Accordez les rôles IAM appropriés pour accéder au projet contenant les ensembles de données BigQuery.
  • Ajoutez au moins un service Dataproc Metastore en tant que source, ainsi que vos ensembles de données BigQuery.

Lacs Dataplex

  • Accordez un rôle IAM contenant l'autorisation dataplex.lakes.get.
  • Ajoutez au moins un service Dataproc Metastore en tant que source, ainsi que votre lac Dataplex.

Ordre des sources

Votre service de fédération traite les requêtes de métadonnées par ordre de priorité. Ce concept est connu sous le nom d'ordre des sources. Au moment de l'exécution, lorsque le service de fédération reçoit une requête, il vérifie l'ordre des sources et effectue l'une des actions suivantes:

  • Si la requête contient un nom de base de données. La requête est acheminée vers le métastore de backend contenant le nom de la base de données. Si plusieurs métastores contiennent le même nom de base de données, la requête est acheminée vers le métastore ayant le rang le plus faible.
  • Si la requête crée ou supprime une base de données. La requête est acheminée vers le métastore ayant le rang le plus faible.
  • Si la requête ne contient pas de nom de base de données et qu'elle ne crée ni ne supprime de base de données. La requête est acheminée vers l'instance Dataproc Metastore ayant le rang le plus faible. set_ugi et create_database sont des exemples de requêtes de métastore Hive qui ne spécifient pas de base de données.
  • Si aucun des métastores ne contient de base de données. Le moteur OSS répond avec l'équivalent d'une erreur introuvable.

Étapes suivantes