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 une fédération, vous devez créer un service de fédération, puis configurer votre sources de métadonnées. Ensuite, le service expose un seul point de terminaison gRPC 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 vers un point de terminaison unique. Vous pouvez ensuite exécuter des jobs big data via des moteurs de logiciels Open Source (OSS), tels que Spark ou Hive, pour accéder à vos métadonnées sur plusieurs métastores.
Fonctionnement de la fédération
Les charges de travail de big data Open Source exécutées sur Spark ou Hive envoient des requêtes à l'API Hive Metastore pour extraire les métadonnées au moment de l'exécution.
- L'interface Hive Metastore prend en charge les méthodes de lecture et d'écriture. Le service de fédération expose un framework gRPC de l'interface du métastore Hive.
- Au moment de l'exécution, lorsque le service de fédération reçoit une requête, il vérifie 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étamagasins backend :
- Une instance Dataproc Metastore.
- Projet contenant un ou plusieurs ensembles de données BigQuery.
- Un lac Dataplex (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, la fédération ne diffuse que 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 une autre fédération. Google Cloud.
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 fédération, créer votre métastore via un point de terminaison gRPC.
- Les services de fédération peuvent être associés à Dataproc Metastore dans 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 source, vous devez remplir les conditions suivantes:
- Accordez les rôles IAM appropriés pour accéder au projet contenant le 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 appelé "tri source". 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 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 bas.
- Si la requête crée ou supprime une base de données. La requête est acheminée vers 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 ou
supprimer une base de données. La requête est acheminée vers l'instance Dataproc Metastore ayant le rang le plus bas. Un peu
des exemples de requêtes de métastore Hive qui ne spécifient pas de base de données sont
set_ugi
etcreate_database
. - Si aucun des métamagasins ne contient de base de données Le moteur OSS répond par l'équivalent d'une erreur non trouvée.