À 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. Le service expose ensuite un point de terminaison gRPC unique que vous pouvez utiliser pour accéder à toutes vos métadonnées.

Par exemple, à l'aide de la fédération, vous pouvez créer un cluster Managed Service for Apache Spark qui expose plusieurs services Dataproc Metastore via un seul point de terminaison. Vous pouvez ensuite exécuter des jobs de big data via des moteurs de logiciels Open Source (OSS), 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 de big data OSS qui s'exécutent sur Spark ou Hive envoient des requêtes à l'API Hive Metastore pour récupérer les 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 de 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 Knowledge Catalog Lake (aperçu).

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. Il ne fait que diffuser des métadonnées à partir 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 comme 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 Dataproc Metastore avec la fédération, créez votre métastore avec un point de terminaison gRPC.

BigQuery

Si vous utilisez un projet contenant des ensembles de données BigQuery comme source, vous devez respecter les conditions suivantes :

  • Attribuez les rôles de Identity and Access Management appropriés pour accéder au projet contenant les ensembles de données BigQuery.
  • Ajoutez au moins un service Dataproc Metastore comme source, ainsi que vos ensembles de données BigQuery.

Knowledge Catalog Lakes

  • Attribuez un rôle IAM contenant l'autorisation dataplex.lakes.get.
  • Ajoutez au moins un service Dataproc Metastore comme source, ainsi que votre Knowledge Catalog Lake.

Ordre des sources

Votre service de fédération traite les requêtes de métadonnées par ordre de priorité. Ce concept est appelé "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 qui contient 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 avec le rang le plus bas.
  • Si la requête crée ou supprime une base de données. La requête est acheminée vers le métastore avec le rang le plus bas.
  • Si la requête ne contient pas de nom de base de données et ne crée ni ne supprime de base de données. La requête est acheminée vers l'instance Dataproc Metastore avec le rang le plus bas. Voici quelques exemples de requêtes Hive Metastore qui ne spécifient pas de base de données : set_ugi et create_database.
  • Si aucun des métastores ne contient de base de données. Le moteur OSS répond avec l'équivalent d'une erreur "introuvable".

Étape suivante