Ce document explique comment configurer un lakehouse multicloud pour interroger des données à partir d'un catalogue Databricks Unity Catalog directement dansGoogle Cloud. Cette fonctionnalité unifie vos analyses de données en intégrant vos sources de données externes à votre environnementGoogle Cloud existant.
Vous pourrez ensuite utiliser Lakehouse pour Apache Iceberg afin de gérer l'accès à vos données fédérées.
Avant de commencer
- Consultez la présentation de Lakehouse pour comprendre comment Lakehouse gère l'accès aux données.
- Consultez À propos du lakehouse multicloud pour comprendre son fonctionnement.
- Consultez les catalogues compatibles pour vérifier les exigences concernant les emplacements externes et les configurations compatibles.
- Découvrez comment utiliser les secrets régionaux Secret Manager. Cela est nécessaire pour configurer un lakehouse multicloud avec Databricks Unity Catalog à l'aide de l'authentification basée sur les secrets.
- Générez un principal de service OAuth (ID client et, éventuellement, code secret du client) dans votre fournisseur de catalogue à distance, qui dispose d'un accès en lecture au catalogue cible. Ce processus n'entre pas dans le cadre de cette documentation.
- Facultatif : Si vous prévoyez de router les requêtes via une interconnexion privée entre votre VPC Google Cloud et le VPC de votre fournisseur de cloud à distance (AWS, par exemple), assurez-vous d'avoir un compte actif auprès de votre fournisseur à distance, provisionnez une interconnexion dédiée cross-cloud ou une interconnexion partenaire cross-cloud, établissez des sessions BGP avec votre Cloud Router et vérifiez que vous disposez des autorisations IAM requises dans les deux environnements cloud.
- Connectez-vous à votre compte Google Cloud . Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits sans frais pour exécuter, tester et déployer des charges de travail.
-
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake, Secret Manager APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake, Secret Manager APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.
Rôles requis
Pour obtenir les autorisations nécessaires pour configurer un lakehouse multicloud, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :
-
Gérer les catalogues Lakehouse :
Administrateur BigLake (
roles/biglake.admin) -
Gérer les secrets : administrateur Secret Manager (
roles/secretmanager.admin) (obligatoire uniquement si vous utilisez l'authentification basée sur les secrets) -
Router le trafic via une interconnexion privée (utilisateur) :
Administrateur de réseaux Compute (
roles/compute.networkAdmin) -
Acheminer le trafic via une interconnexion privée (compte de service du catalogue) :
- Lecteur de l'Annuaire des services (
roles/servicedirectory.viewer) - Service autorisé PSC de l'Annuaire des services (
roles/servicedirectory.pscAuthorizedService)
- Lecteur de l'Annuaire des services (
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Détails du catalogue acceptés
Ce guide explique comment configurer un Lakehouse multicloud avec un catalogue Databricks Unity Catalog sur Amazon Web Services (AWS) ou Google Cloud. Pour en savoir plus sur les exigences concernant les emplacements externes et les configurations compatibles, consultez Catalogues compatibles.
Limites et points à noter
Cette section liste les limites et les points à prendre en compte pour l'utilisation du Lakehouse multicloud.
- Fournisseurs de cloud compatibles : l'utilisation d'une interconnexion privée avec votre Lakehouse multicloud est compatible avec les fournisseurs de cloud distants suivants : Amazon Web Services (AWS). Vous pouvez utiliser une interconnexion Cross-Cloud dédiée ou une interconnexion Cross-Cloud partenaire.
- Seuls les catalogues Databricks Unity Catalog qui utilisent un emplacement externe sur AWS ou un emplacement externe sur Google Cloud sont acceptés. Les catalogues Unity Catalog qui utilisent le stockage par défaut sur AWS ou le stockage par défaut sur Google Cloud ne sont pas compatibles.
- Vous devez activer l'accès aux données externes sur le metastore utilisé par Unity Catalog, qui est désactivé par défaut.
- Routage réseau : si une interconnexion privée (telle que Dedicated CCI ou Partner CCI) n'est pas configurée, les requêtes sont routées sur l'Internet public. Cela peut entraîner des frais de sortie plus élevés de votre fournisseur de cloud à distance et des performances moins prévisibles.
- Fraîcheur des données : l'indicateur
--refresh-intervaldu catalogue fédéré détermine la fréquence de synchronisation des métadonnées. Un intervalle plus court fournit des données plus récentes, mais peut entraîner des coûts d'API supplémentaires auprès du fournisseur de catalogue distant. Rapports sur les métriques Iceberg : Les rapports sur les métriques Iceberg ne sont pas disponibles pour les catalogues fédérés. Définissez la propriété
rest-metrics-reporting-enabledsurfalsedans votre client Iceberg lorsque vous accédez à un catalogue fédéré.
Workflow général
Pour configurer et utiliser Lakehouse multicloud, procédez comme suit :
- Configurer Cross-Cloud Interconnect (facultatif) : configurez une connexion privée entre votre Google Cloud VPC et votre fournisseur de cloud distant.
- Configurer la fédération : configurez l'authentification et créez un catalogue fédéré dans Lakehouse.
- OpenID Connect (OIDC) (recommandé) : créez le catalogue fédéré dans Lakehouse en spécifiant l'ID d'application Service Principal distant, puis configurez une règle de fédération dans Databricks à l'aide de l'ID unique du compte de service du catalogue Lakehouse.
- Authentification basée sur un secret : créez un secret dans Secret Manager avec les identifiants de votre catalogue distant. Créez ensuite un catalogue fédéré dans Lakehouse et accordez au compte de service du catalogue l'accès au secret.
- Vérifiez la connexion : vérifiez que Lakehouse peut se connecter à votre catalogue distant.
- Interroger les données : exécutez des requêtes sur vos données fédérées à l'aide de BigQuery ou de Managed Service pour Apache Spark. Pour en savoir plus, consultez Utiliser un lakehouse multicloud.
- Configurer les autorisations : utilisez Identity and Access Management (IAM) pour gérer les utilisateurs autorisés à afficher et interroger les données fédérées.
Configurer interconnexion cross-cloud (facultatif)
Par défaut, les requêtes envoyées à votre catalogue distant transitent par l'Internet public. Pour améliorer la sécurité et la conformité, fournir des performances prévisibles et réduire les coûts de transfert de données, utilisez une interconnexion privée. Cela établit une connexion réseau privée dédiée entre votre cloud privé virtuel (VPC) Google Cloudet le réseau de votre fournisseur de services cloud distant (AWS, par exemple).
Vous pouvez provisionner et configurer l'une des options d'interconnexion privée suivantes entre votre VPC Google Cloud et celui de votre fournisseur de cloud à distance (AWS, par exemple) :
- Cross-Cloud Interconnect dédié : connexion physique dédiée.
- Partner Cross-Cloud Interconnect : connexion via un fournisseur de services agréé.
Établissez des sessions BGP entre votre routeur Cloud Router dans Google Cloud et le VPC de votre fournisseur de services cloud à distance pour assurer l'échange de routes.
Pour activer les requêtes privées, vous devez configurer un chemin d'accès de Lakehouse à votre bucket de stockage à distance (par exemple, un bucket AWS Amazon S3) via votre interconnexion privée. Vous pouvez suivre deux flux d'architecture pour configurer ce routage :
- Routage de l'équilibreur de charge réseau proxy interne régional : ce flux utilise un équilibreur de charge réseau proxy interne régionalGoogle Cloud pour distribuer les requêtes entre les groupes de points de terminaison réseau (NEG) de connectivité hybride pointant vers plusieurs interfaces réseau Elastic (ENI) AWS. Ce flux est essentiel pour l'équilibrage de charge, l'évolutivité et la haute disponibilité. Il est obligatoire pour Partner CCI et recommandé pour Dedicated CCI pour l'équilibrage de charge, l'évolutivité et la haute disponibilité.
- Routage direct des points de terminaison : ce flux connecte l'annuaire des services directement à une seule adresse IP de point de terminaison VPC d'interface AWS. Ce flux ne fonctionne que pour les CCI dédiées et n'est pas compatible avec les CCI partenaires.
Sélectionnez le flux de configuration qui correspond aux exigences de votre architecture :
Équilibreur de charge réseau proxy interne régional
Pour configurer un équilibreur de charge réseau proxy interne régional afin de répartir les requêtes sur plusieurs ENI AWS pour la haute disponibilité et l'équilibrage de charge, procédez comme suit :
Configurer la mise en réseau AWS
Commencez par créer un point de terminaison d'interface VPC Amazon S3 (AWS PrivateLink) :
- Dans la console AWS VPC, créez un point de terminaison d'interface pour Amazon S3.
- Pour le nom du service, spécifiez
com.amazonaws.<var>AWS_REGION</var>.s3. - Sélectionnez le VPC et les sous-réseaux connectés via Direct Connect à votre VPC Google Cloud .
- Associez des groupes de sécurité au point de terminaison pour contrôler l'accès entrant.
- Cela provisionne des interfaces réseau Elastic (ENI) dans chaque sous-réseau sélectionné. Notez les adresses IP privées de ces ENI.
Ensuite, configurez les groupes de sécurité :
- Assurez-vous que le ou les groupes de sécurité associés aux ENI du point de terminaison Amazon S3 autorisent le trafic TCP entrant sur le port
443à partir des plages d'adresses IP pertinentes de votre VPC Google Cloud .
Configurer Google Cloud la mise en réseau
Suivez les instructions pour configurer un équilibreur de charge réseau proxy interne régional pour les points de terminaison hybrides.
Lorsque vous suivez les instructions, assurez-vous de procéder comme suit :
- Créez des NEG de connectivité hybride (
NON_GCP_PRIVATE_IP_PORT) et ajoutez les adresses IP privées de vos ENI AWS que vous avez créées précédemment. - Utilisez le port TCP
443pour les NEG, la vérification de l'état et la règle de transfert. - Configurez l'équilibreur de charge dans la même région Google Cloud que votre catalogue fédéré.
Après avoir créé la règle de transfert pour l'équilibreur de charge, notez l'adresse IP interne qui lui est attribuée. C'est votre ILB_IP_ADDRESS.
Configurer l'annuaire des services
Enregistrez l'adresse IP de l'ILB dans Annuaire des services pour que Lakehouse puisse la découvrir.
Créez un espace de noms pour votre cloud à distance :
gcloud service-directory namespaces create NAMESPACE \ --project=PROJECT_ID \ --location=REGION
Remplacez les éléments suivants :
NAMESPACE: identifiant unique de votre espace de noms.PROJECT_ID: ID de votre projet Google Cloud .REGION: région Google Cloud . Exemple :us-east4. Cette région doit être identique à celle du catalogue fédéré.
Créez un service dans l'espace de noms de l'Annuaire des services :
gcloud service-directory services create SERVICE_NAME \ --namespace=NAMESPACE \ --project=PROJECT_ID \ --location=REGION
Remplacez les éléments suivants :
SERVICE_NAME: identifiant unique de votre service.
Créez un point de terminaison pour l'ILB dans le service :
gcloud service-directory endpoints create ENDPOINT_NAME \ --project=PROJECT_ID \ --namespace=NAMESPACE \ --service=SERVICE_NAME \ --location=REGION \ --network=projects/PROJECT_NUMBER/global/networks/VPC_NETWORK \ --address=ILB_IP_ADDRESS \ --port=443
Remplacez les éléments suivants :
ENDPOINT_NAME: identifiant unique de votre point de terminaison.PROJECT_NUMBER: numéro de votre projet Google Cloud. Utilisez le numéro de votre projet dans l'indicateur--network.ILB_IP_ADDRESS: adresse IP interne de votre règle de transfert ILB.
Point de terminaison direct
Pour configurer l'Annuaire des services afin qu'il achemine le trafic directement vers une seule adresse IP de point de terminaison VPC d'interface AWS, procédez comme suit :
- Créez un point de terminaison VPC d'interface pour Amazon S3 dans votre VPC AWS. Notez l'adresse IP et le port de ce point de terminaison.
Créez un espace de noms pour votre cloud à distance :
gcloud service-directory namespaces create NAMESPACE \ --project=PROJECT_ID \ --location=REGION
Remplacez les éléments suivants :
NAMESPACE: identifiant unique de votre espace de noms.PROJECT_ID: ID de votre projet Google Cloud .REGION: région Google Cloud . Exemple :us-east4. Cette région doit être identique à celle du catalogue fédéré.
Créez un service dans l'espace de noms de l'Annuaire des services :
gcloud service-directory services create SERVICE_NAME \ --namespace=NAMESPACE \ --project=PROJECT_ID \ --location=REGION
Remplacez les éléments suivants :
SERVICE_NAME: identifiant unique de votre service.
Créez un point de terminaison dans le service contenant les informations de routage pour votre point de terminaison VPC d'interface Amazon S3 :
gcloud service-directory endpoints create ENDPOINT_NAME \ --service=SERVICE_NAME \ --namespace=NAMESPACE \ --project=PROJECT_ID \ --location=REGION \ --address=S3_VPCE_IP_ADDRESS \ --port=S3_VPCE_PORT \ --network=projects/PROJECT_NUMBER/global/networks/VPC_NETWORK
Remplacez les éléments suivants :
ENDPOINT_NAME: identifiant unique de votre point de terminaison.S3_VPCE_IP_ADDRESS: adresse IP de votre point de terminaison VPC d'interface Amazon S3. Exemple :10.0.1.45S3_VPCE_PORT: numéro de port de votre point de terminaison VPC d'interface Amazon S3. Exemple :443PROJECT_NUMBER: numéro de votre projet Google Cloud. Utilisez le numéro de votre projet dans l'indicateur--network.VPC_NETWORK: nom du réseau VPC Google Cloud associé à votre interconnexion privée.
Configurer la fédération
Pour interroger vos données, vous devez configurer un catalogue fédéré Lakehouse qui se connecte à votre catalogue distant.
Configurer l'authentification
La fédération nécessite l'authentification auprès du catalogue distant en tant que principal de service Databricks. Choisissez l'une des options d'authentification suivantes :
OIDC
OpenID Connect (OIDC) permet une authentification sans secret grâce à la fédération de jetons OAuth Databricks.
- Créez un principal de service dans votre compte Databricks qui dispose d'un accès en lecture au catalogue Unity Catalog cible.
- Enregistrez l'ID d'application (UUID) du principal de service. Vous en aurez besoin lors d'une prochaine étape.
Basé sur un secret
Cette option utilise un ID client et un code secret du client OAuth stockés de manière sécurisée à l'aide de secrets Secret Manager régionaux.
Créez un fichier JSON nommé
credentials.jsonavec votre charge utile :{ "client_id": "CLIENT_ID", "client_secret": "CLIENT_SECRET" }
Remplacez les éléments suivants :
CLIENT_ID: ID client OAuth pour votre compte de service Databricks.CLIENT_SECRET: code secret du client OAuth pour votre principal de service Databricks.
Configurez le point de terminaison régional pour Secret Manager :
Par défaut, Secret Manager utilise un point de terminaison mondial. Toutefois, le Lakehouse multicloud nécessite que vos secrets soient stockés dans la même région que votre catalogue Lakehouse. Pour interagir avec des secrets régionaux à l'aide de la CLI
gcloud, vous devez remplacer le point de terminaison de l'API par défaut pour votre session ou votre profil actuels. Pour éviter les problèmes de connectivité, votre secret et votre catalogue doivent être créés dans la même région. Exemple :secretmanager.us-east4.rep.googleapis.com.gcloud config set api_endpoint_overrides/secretmanager https://secretmanager.REGION.rep.googleapis.com/
Remplacez les éléments suivants :
REGION: région Google Cloud où votre secret Secret Manager est stocké. Par exemple,us-east4. Pour éviter les problèmes de connectivité, votre secret et votre catalogue doivent être créés dans la même région. Par exemple,secretmanager.us-east4.rep.googleapis.com.
Importez la charge utile dans Secret Manager :
gcloud secrets create DATABRICKS_SECRET_NAME \ --location="REGION" \ --project="PROJECT_ID" \ --data-file=credentials.json
Remplacez les éléments suivants :
DATABRICKS_SECRET_NAME: nom de votre secret Databricks.
Créer un catalogue fédéré
Créez le catalogue fédéré à l'aide de la commande gcloud biglake iceberg catalogs
create.
Remarques :
Seuls les catalogues Databricks Unity Catalog qui utilisent un emplacement externe sur AWS ou un emplacement externe sur Google Cloud sont acceptés. Les catalogues Unity Catalog qui utilisent le stockage par défaut sur AWS ou le stockage par défaut sur Google Cloud ne sont pas compatibles.
Vous devez activer l'accès aux données externes sur le metastore utilisé par Unity Catalog, qui est désactivé par défaut.
Console
Pour créer un catalogue fédéré à l'aide de l'authentification basée sur des secrets :
Dans la console Google Cloud , accédez à Lakehouse.
Cliquez sur Créer un catalogue.
Cliquez sur Catalogue fédéré.
Les détails de la configuration du catalogue s'affichent.
Pour Source du catalogue fédéré, sélectionnez Unity (Databricks).
Pour Emplacement des données, sélectionnez la région Lakehouse dans laquelle vous souhaitez créer le catalogue fédéré. Exemple :
us-east4Pour minimiser la latence (même sur l'Internet public), procédez comme suit lorsque vous sélectionnez une région :- Si votre catalogue Unity Catalog se trouve sur AWS, sélectionnez la régionGoogle Cloud la plus proche de votre région AWS.
- Si votre catalogue Unity Catalog est activé Google Cloud, sélectionnez exactement la même région.
Cliquez sur Continuer.
Les détails de la connexion s'affichent.
Dans la section Détails du catalogue distant, dans le champ Nom de l'instance Unity, saisissez le nom de votre instance Databricks cible. Exemple :
abcd.cloud.databricks.com.Dans le champ Nom Unity Catalog, saisissez le nom du catalogue Databricks Unity Catalog cible avec lequel effectuer la fédération.
Sélectionnez une option pour Méthode d'authentification :
- Pour OIDC, saisissez l'ID d'application du principal de service.
- Dans le champ Secret, saisissez le nom de votre secret. Utilisez le format suivant :
projects/PROJECT_ID/locations/REGION/secrets/DATABRICKS_SECRET_NAME.
Facultatif : Dans le champ Nom de l'annuaire des services, saisissez le chemin d'accès à votre service Annuaire des services. Exemple :
projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE/services/SERVICE_NAME. Cette étape n'est nécessaire que si vous configurez interconnexion cross-cloud.Cliquez sur Créer.
CLI gcloud
OIDC
Si vous utilisez OIDC, vous devez spécifier unity-service-principal-application-id.
Internet public (sans CCI)
gcloud biglake iceberg catalogs create FEDERATED_CATALOG_NAME \ --project="PROJECT_ID" \ --primary-location="REGION" \ --catalog-type="federated" \ --federated-catalog-type="unity" \ --unity-service-principal-application-id="UNITY_SERVICE_PRINCIPAL_APPLICATION_ID" \ --unity-instance-name="UNITY_INSTANCE_NAME" \ --unity-catalog-name="UNITY_CATALOG_NAME" \ --refresh-interval="REFRESH_INTERVAL" \ --namespace-filters="NAMESPACE_FILTERS"
Remplacez les éléments suivants :
PROJECT_ID: ID de votre projet Google Cloud .REGION: région Lakehouse dans laquelle le catalogue fédéré est créé. Exemple :us-east4Pour minimiser la latence, procédez comme suit lorsque vous sélectionnez une région :- Si votre catalogue Unity Catalog se trouve sur AWS, sélectionnez la régionGoogle Cloud la plus proche de votre région AWS.
- Si votre catalogue Unity Catalog est sur Google Cloud, sélectionnez exactement la même région.
UNITY_SERVICE_PRINCIPAL_APPLICATION_ID: ID d'application (UUID) de votre compte principal de service Databricks.UNITY_INSTANCE_NAME: nom de votre instance Databricks cible. Exemple :abcd.cloud.databricks.com.UNITY_CATALOG_NAME: nom du catalogue Databricks Unity Catalog cible avec lequel effectuer la fédération.REFRESH_INTERVAL: (facultatif) spécifie la fréquence de mise à jour des informations du catalogue. Définissez cette valeur comme une durée, par exemple330sou5m30s. Les intervalles plus courts actualisent les données plus souvent, mais peuvent entraîner des coûts plus élevés en appels d'API. Des intervalles plus longs peuvent coûter moins cher, mais les données interrogées peuvent ne pas refléter votre ensemble de données le plus récent. Si cette valeur est omise ou définie sur0s, l'actualisation des métadonnées en arrière-plan ne démarrera pas. Il restera désactivé jusqu'à ce que l'intervalle d'actualisation soit défini sur une valeur positive.NAMESPACE_FILTERS: facultatif, liste d'espaces de noms à fédérer, séparés par une virgule. Exemple :ns1,ns2Si cette option est omise, tous les espaces de noms seront inclus.
Appartenant au client (CCI)
Si vous avez configuré une interconnexion privée (telle que Dedicated CCI ou Partner CCI), indiquez la référence du service Annuaire des services afin que Lakehouse achemine le trafic de manière privée.
gcloud biglake iceberg catalogs create FEDERATED_CATALOG_NAME \ --project="PROJECT_ID" \ --primary-location="REGION" \ --catalog-type="federated" \ --federated-catalog-type="unity" \ --unity-service-principal-application-id="UNITY_SERVICE_PRINCIPAL_APPLICATION_ID" \ --unity-instance-name="UNITY_INSTANCE_NAME" \ --unity-catalog-name="UNITY_CATALOG_NAME" \ --refresh-interval="REFRESH_INTERVAL" \ --namespace-filters="NAMESPACE_FILTERS" \ --service-directory-name="projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE/services/SERVICE_NAME"
Remplacez les éléments suivants :
PROJECT_ID: ID de votre projet Google Cloud .PROJECT_NUMBER: numéro de votre projet Google Cloud .REGION: région Lakehouse dans laquelle le catalogue fédéré est créé. Exemple :us-east4Pour minimiser la latence, procédez comme suit lorsque vous sélectionnez une région :- Si votre catalogue Unity Catalog se trouve sur AWS, sélectionnez la régionGoogle Cloud la plus proche de votre région AWS.
- Si votre catalogue Unity Catalog est sur Google Cloud, sélectionnez exactement la même région. Remarque : Cette région doit être identique à celle de l'espace de noms et du secret régional de l'Annuaire des services.
UNITY_SERVICE_PRINCIPAL_APPLICATION_ID: ID d'application (UUID) de votre compte principal de service Databricks.UNITY_INSTANCE_NAME: nom de votre instance Databricks cible. Exemple :abcd.cloud.databricks.com.UNITY_CATALOG_NAME: nom du catalogue Databricks Unity Catalog cible à fédérer.REFRESH_INTERVAL: (facultatif) spécifie la fréquence de mise à jour des informations du catalogue. Définissez cette valeur comme une durée, par exemple330sou5m30s. Les intervalles plus courts actualisent les données plus souvent, mais peuvent entraîner des coûts plus élevés en appels d'API. Des intervalles plus longs peuvent coûter moins cher, mais les données interrogées peuvent ne pas refléter votre ensemble de données le plus récent. Si cette valeur est omise ou définie sur0s, l'actualisation des métadonnées en arrière-plan ne démarrera pas. Il restera désactivé jusqu'à ce que l'intervalle d'actualisation soit défini sur une valeur positive.NAMESPACE_FILTERS: facultatif, liste d'espaces de noms à fédérer, séparés par une virgule. Exemple :ns1,ns2Si cette option est omise, tous les espaces de noms seront inclus.NAMESPACE: espace de noms de l'Annuaire des services que vous avez créé lors de la configuration de l'interconnexion privée.SERVICE_NAME: nom du service Annuaire des services que vous avez créé lors de la configuration de l'interconnexion privée.
Basé sur un secret
Si vous utilisez l'authentification basée sur un secret, vous devez spécifier secret-name.
Internet public (sans CCI)
gcloud biglake iceberg catalogs create FEDERATED_CATALOG_NAME \ --project="PROJECT_ID" \ --primary-location="REGION" \ --catalog-type="federated" \ --federated-catalog-type="unity" \ --secret-name="projects/PROJECT_ID/locations/REGION/secrets/DATABRICKS_SECRET_NAME" \ --unity-instance-name="UNITY_INSTANCE_NAME" \ --unity-catalog-name="UNITY_CATALOG_NAME" \ --refresh-interval="REFRESH_INTERVAL" \ --namespace-filters="NAMESPACE_FILTERS"
Remplacez les éléments suivants :
PROJECT_ID: ID de votre projet Google Cloud .REGION: région Lakehouse dans laquelle le catalogue fédéré est créé. Exemple :us-east4Pour minimiser la latence, procédez comme suit lorsque vous sélectionnez une région :- Si votre catalogue Unity Catalog se trouve sur AWS, sélectionnez la régionGoogle Cloud la plus proche de votre région AWS.
- Si votre catalogue Unity Catalog est sur Google Cloud, sélectionnez exactement la même région.
DATABRICKS_SECRET_NAME: nom de votre secret Databricks.UNITY_INSTANCE_NAME: nom de votre instance Databricks cible. Exemple :abcd.cloud.databricks.com.UNITY_CATALOG_NAME: nom du catalogue Databricks Unity Catalog cible avec lequel effectuer la fédération.REFRESH_INTERVAL: (facultatif) spécifie la fréquence de mise à jour des informations du catalogue. Définissez cette valeur comme une durée, par exemple330sou5m30s. Les intervalles plus courts actualisent les données plus souvent, mais peuvent entraîner des coûts plus élevés en appels d'API. Des intervalles plus longs peuvent coûter moins cher, mais les données interrogées peuvent ne pas refléter votre ensemble de données le plus récent. Si cette valeur est omise ou définie sur0s, l'actualisation des métadonnées en arrière-plan ne démarrera pas. Il restera désactivé jusqu'à ce que l'intervalle d'actualisation soit défini sur une valeur positive.NAMESPACE_FILTERS: facultatif, liste d'espaces de noms à fédérer, séparés par une virgule. Exemple :ns1,ns2Si cette option est omise, tous les espaces de noms seront inclus.
Appartenant au client (CCI)
gcloud biglake iceberg catalogs create FEDERATED_CATALOG_NAME \ --project="PROJECT_ID" \ --primary-location="REGION" \ --catalog-type="federated" \ --federated-catalog-type="unity" \ --secret-name="projects/PROJECT_ID/locations/REGION/secrets/DATABRICKS_SECRET_NAME" \ --unity-instance-name="UNITY_INSTANCE_NAME" \ --unity-catalog-name="UNITY_CATALOG_NAME" \ --refresh-interval="REFRESH_INTERVAL" \ --namespace-filters="NAMESPACE_FILTERS" \ --service-directory-name="projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE/services/SERVICE_NAME"
Remplacez les éléments suivants :
PROJECT_ID: ID de votre projet Google Cloud .PROJECT_NUMBER: numéro de votre projet Google Cloud .REGION: région Lakehouse dans laquelle le catalogue fédéré est créé. Exemple :us-east4Pour minimiser la latence, procédez comme suit lorsque vous sélectionnez une région :- Si votre catalogue Unity Catalog se trouve sur AWS, sélectionnez la régionGoogle Cloud la plus proche de votre région AWS.
- Si votre catalogue Unity Catalog est sur Google Cloud, sélectionnez exactement la même région. Remarque : Cette région doit être identique à celle de l'espace de noms et du secret régional de l'Annuaire des services.
DATABRICKS_SECRET_NAME: nom de votre secret Databricks.UNITY_INSTANCE_NAME: nom de votre instance Databricks cible. Exemple :abcd.cloud.databricks.com.UNITY_CATALOG_NAME: nom du catalogue Databricks Unity Catalog cible à fédérer.REFRESH_INTERVAL: (facultatif) spécifie la fréquence de mise à jour des informations du catalogue. Définissez cette valeur comme une durée, par exemple330sou5m30s. Les intervalles plus courts actualisent les données plus souvent, mais peuvent entraîner des coûts plus élevés en appels d'API. Des intervalles plus longs peuvent coûter moins cher, mais les données interrogées peuvent ne pas refléter votre ensemble de données le plus récent. Si cette valeur est omise ou définie sur0s, l'actualisation des métadonnées en arrière-plan ne démarrera pas. Il restera désactivé jusqu'à ce que l'intervalle d'actualisation soit défini sur une valeur positive.NAMESPACE_FILTERS: facultatif, liste d'espaces de noms à fédérer, séparés par une virgule. Exemple :ns1,ns2Si cette option est omise, tous les espaces de noms seront inclus.NAMESPACE: espace de noms de l'Annuaire des services que vous avez créé lors de la configuration de l'interconnexion privée.SERVICE_NAME: nom du service Annuaire des services que vous avez créé lors de la configuration de l'interconnexion privée.
Terminer la configuration de l'authentification
Terminez la configuration en fonction de l'option d'authentification choisie :
OIDC
Lorsque le catalogue est créé, Lakehouse provisionne un compte de service unique pour celui-ci. Vous devez récupérer l'ID numérique unique du compte de service et l'utiliser pour configurer une règle de fédération pour le principal de service Databricks.
Récupérez l'ID numérique unique du compte de service du catalogue Lakehouse :
gcloud biglake iceberg catalogs describe FEDERATED_CATALOG_NAME \ --project="PROJECT_ID" \ --format='value(biglake-service-account-id)'
Dans votre compte Databricks, configurez une règle de fédération pour le principal de service que vous avez créé précédemment. Utilisez les valeurs suivantes :
- URL de l'émetteur :
https://accounts.google.com - Objet : ID numérique unique du compte de service du catalogue Lakehouse récupéré à l'étape précédente.
- Audience :
https://accounts.cloud.databricks.com
Assurez-vous que le principal de service Databricks dispose d'un accès en lecture au catalogue et à l'espace de travail cibles.
- URL de l'émetteur :
Basé sur un secret
Lorsque le catalogue est créé, Lakehouse provisionne un compte de service unique pour celui-ci (renvoyé sous la forme biglake-service-account dans la description de la ressource).
Vous devez accorder à ce compte de service l'autorisation d'accéder au secret que vous avez créé précédemment. Notez que la propagation des règles IAM peut prendre quelques minutes.
Accordez au compte de service du catalogue l'autorisation d'accéder au secret.
gcloud config set api_endpoint_overrides/secretmanager https://secretmanager.REGION.rep.googleapis.com/ gcloud secrets add-iam-policy-binding DATABRICKS_SECRET_NAME \ --project="PROJECT_ID" \ --location="REGION" \ --member="serviceAccount:$(gcloud biglake iceberg catalogs describe FEDERATED_CATALOG_NAME \ --project="PROJECT_ID" \ --format='value(biglake-service-account)')" \ --role="roles/secretmanager.secretAccessor"
Pour vérifier que le compte de service du catalogue fédéré a accès au secret, exécutez la commande suivante :
gcloud config set api_endpoint_overrides/secretmanager https://secretmanager.REGION.rep.googleapis.com/ gcloud secrets get-iam-policy DATABRICKS_SECRET_NAME
--project="PROJECT_ID"
--location="REGION"
Dans le résultat, vérifiez que le compte de service biglake-service-account dispose du rôle roles/secretmanager.secretAccessor.
Configurer complètement l'interconnexion privée (interconnexion cross-cloud uniquement)
Si vous acheminez le trafic via une interconnexion privée (interconnexion dédiée ou partenaire), vous devez accorder au compte de service du catalogue Lakehouse les autorisations nécessaires pour découvrir et autoriser les connexions via Annuaire des services.
Console
Dans la console Google Cloud , accédez à la page IAM.
Cliquez sur Accorder l'accès (ou Ajouter).
Dans le champ Nouveaux comptes principaux, saisissez l'adresse e-mail du compte de service du catalogue Lakehouse. Vous pouvez récupérer cet e-mail en décrivant le catalogue (voir l'onglet
gcloud).Dans le menu déroulant Rôle, sélectionnez Lecteur Service Directory (
roles/servicedirectory.viewer).Cliquez sur Ajouter un autre rôle, puis sélectionnez Service Directory PSC Authorized Service (
roles/servicedirectory.pscAuthorizedService).Cliquez sur Enregistrer.
CLI gcloud
Attribuez les rôles requis au compte de service du catalogue :
# Grant Service Directory Viewer gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:$(gcloud alpha biglake iceberg catalogs describe FEDERATED_CATALOG_NAME \ --project="PROJECT_ID" \ --format='value(biglake-service-account)')" \ --role="roles/servicedirectory.viewer" # Grant Service Directory PSC Authorized Service gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:$(gcloud alpha biglake iceberg catalogs describe FEDERATED_CATALOG_NAME \ --project="PROJECT_ID" \ --format='value(biglake-service-account)')" \ --role="roles/servicedirectory.pscAuthorizedService"
Vérifier la connexion
Vérifiez que le cycle d'actualisation des métadonnées d'arrière-plan du catalogue s'est terminé correctement et que les espaces de noms sont synchronisés.
Vérifiez que l'état de l'actualisation indique que l'opération a réussi :
gcloud biglake iceberg catalogs describe FEDERATED_CATALOG_NAME \ --project="PROJECT_ID"
Vérifiez que les schémas distants s'affichent en tant qu'espaces de noms synchronisés :
gcloud biglake iceberg namespaces list \ --project="PROJECT_ID" \ --catalog="FEDERATED_CATALOG_NAME"
Étapes suivantes
- Utilisez Lakehouse multicloud et interrogez des tables.
- Résoudre les problèmes liés au lakehouse multicloud