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, à l'aide de la fédération, vous pouvez créer un cluster Dataproc 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 logiciels Open Source (OSS), tels que Spark ou Hive, pour accéder à vos métadonnées dans plusieurs metastores.
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 :
- Instance Dataproc Metastore.
- Projet contenant un ou plusieurs ensembles de données BigQuery.
- Un lac Dataplex Universal Catalog (aperçu).
Restrictions liées aux sources
La section suivante liste 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 ne fait que diffuser 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 comme source, les restrictions suivantes s'appliquent :
- Les services de fédération ne sont disponibles que via les points de terminaison gRPC. Pour utiliser un metastore Dataproc avec la fédération, créez votre metastore avec un point de terminaison gRPC.
Les services de fédération peuvent être associés à des services Dataproc Metastore à une ou plusieurs régions.
Si le métastore multirégional se trouve dans un projet différent de celui du service de fédération, accordez au compte de service Dataproc Metastore du projet de fédération l'autorisation
metastore.services.get
sur les instances Dataproc Metastore configurées dans la région multiple.
BigQuery
Si vous utilisez un projet contenant des ensembles de données BigQuery comme source, vous devez remplir les conditions suivantes :
- Attribuez les rôles IAM (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 en tant que source, ainsi que vos ensembles de données BigQuery.
Lacs Dataplex Universal Catalog
- Attribuez un rôle IAM contenant l'autorisation
dataplex.lakes.get
. - Ajoutez au moins un service Dataproc Metastore comme source, ainsi que votre lac Dataplex Universal Catalog.
Ordre des sources
Votre service de fédération traite les demandes de métadonnées par ordre de priorité. Ce concept s'appelle l'ordre des sources. Lors 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 metastores contiennent le même nom de base de données, la requête est acheminée vers le metastore ayant 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 metastore ayant 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 ayant le rang le plus bas.
set_ugi
etcreate_database
sont des exemples de requêtes Hive Metastore qui ne spécifient pas de base de données. - Si aucun metastore ne contient de base de données Le moteur OSS répond par l'équivalent d'une erreur "Introuvable".