Ce document explique comment utiliser les points de terminaison régionaux Private Service Connect pour accéder aux ressources du catalogue Lakehouse Runtime. Les points de terminaison régionaux vous permettent d'exécuter vos charges de travail de manière conforme aux exigences de résidence des données et de souveraineté des données, où le trafic de votre requête est directement acheminé vers la région spécifiée dans le point de terminaison.
Présentation
Les points de terminaison régionaux limitent le traitement des requêtes aux ressources de catalogue concernées qui existent dans l'emplacement spécifié par le point de terminaison. Par exemple, si vous utilisez le point de terminaison https://biglake.us-central1.rep.googleapis.com pour accéder à un catalogue, un espace de noms ou une table, la requête n'est exécutée que si le catalogue se trouve dans us-central1.
Contrairement aux points de terminaison mondiaux, où les requêtes peuvent être acheminées vers un emplacement différent de celui où se trouve la ressource, les points de terminaison régionaux limitent vos requêtes à l'emplacement spécifié par le point de terminaison, où réside la ressource. Les points de terminaison régionaux interrompent les sessions TLS (Transport Layer Security) à l'emplacement spécifié par le point de terminaison pour les requêtes reçues d'Internet, d'autres ressources Google Cloud telles que les machines virtuelles Compute Engine, les services sur site utilisant Cloud VPN ou Cloud Interconnect, et les clouds privés virtuels (VPC).
Les points de terminaison régionaux contribuent à assurer la résidence des données en conservant vos demandes de catalogue en transit dans l'emplacement spécifié par le point de terminaison. Pour en savoir plus sur la façon dont les métadonnées de service sont traitées, consultez Remarque sur les données de service.
Les points de terminaison de catalogue suivants du catalogue d'environnements d'exécution Lakehouse peuvent être utilisés avec des points de terminaison régionaux :
| Point de terminaison du catalogue | URL du point de terminaison régional | Référence |
|---|---|---|
| Point de terminaison du catalogue REST Apache Iceberg | https://biglake.LOCATION.rep.googleapis.com/iceberg/v1/restcatalog |
REST |
| Point de terminaison du catalogue Apache Hive (aperçu) | https://biglake.LOCATION.rep.googleapis.com/hive/v1 |
REST |
Pays acceptés
Vous pouvez utiliser des points de terminaison régionaux avec le catalogue d'exécution Lakehouse dans les régions suivantes :
Asie-Pacifique
- Delhi
asia-south2 - Mumbai (
asia-south1)
- Delhi
Europe
- Belgique
europe-west1 - Francfort (
europe-west3) - Londres (
europe-west2) - Milan
europe-west8 - Pays-Bas
europe-west4 - Paris
europe-west9 - Zurich (
europe-west6)
- Belgique
Moyen-Orient
- Dammam
me-central2
- Dammam
Amériques
- Columbus, Ohio
us-east5 - Dallas
us-south1 - Iowa
us-central1 - Las Vegas (
us-west4) - Los Angeles (
us-west2) - Montréal (
northamerica-northeast1) - Virginie du Nord (
us-east4) - Oregon
us-west1 - Salt Lake City (
us-west3) - Caroline du Sud (
us-east1) - Toronto
northamerica-northeast2
- Columbus, Ohio
Opérations et emplacements de stockage compatibles
Les points de terminaison régionaux ne peuvent être utilisés que pour effectuer des opérations qui accèdent à des ressources de catalogue répliquées dans l'emplacement spécifié par le point de terminaison ou les modifient :
- Isolation régionale des catalogues : la liste des catalogues via
https://biglake.LOCATION.rep.googleapis.comne renvoie que les catalogues situés dansLOCATION. Les requêtes permettant d'obtenir, de mettre à jour ou de supprimer un catalogue, un espace de noms ou une table situés en dehors deLOCATIONrenvoient une erreur404 NOT_FOUND. - Emplacement de stockage par défaut : lorsque vous créez un catalogue à l'aide d'un point de terminaison régional, le bucket Cloud Storage spécifié dans
default_locationpour un catalogue à plusieurs buckets (CATALOG_TYPE_BIGLAKE) ou le bucket associé à un catalogue à un seul bucket (CATALOG_TYPE_GCS_BUCKET) doit résider dansLOCATION. - Emplacements restreints pour les catalogues à plusieurs buckets : pour les catalogues à plusieurs buckets, vous pouvez configurer des buckets Cloud Storage supplémentaires dans
restricted_locationsà condition qu'ils se trouvent dans la même juridiction géographique (par exemple, aux États-Unis ou en Europe) queLOCATION. Pour en savoir plus, consultez Catalogue multibuckets.
Limites et restrictions
Les points de terminaison régionaux ne peuvent pas être utilisés pour effectuer les opérations suivantes :
- Opérations qui lisent ou modifient des catalogues, des espaces de noms ou des tables situés en dehors de la région spécifiée par le point de terminaison.
- Le routage des points de terminaison multirégionaux (comme
USouEU). Les points de terminaison régionaux doivent spécifier une seule région.
Gardez à l'esprit les restrictions suivantes lorsque vous utilisez des points de terminaison régionaux :
- Les points de terminaison régionaux ne sont pas compatibles avec le protocole TLS mutuel (mTLS).
- L'utilisation d'un point de terminaison régional n'empêche pas en soi les utilisateurs de créer des ressources dans d'autres régions ni d'appeler le point de terminaison mondial (
biglake.googleapis.com). Pour appliquer des restrictions régionales, configurez la contrainte de règle d'administration "Emplacements des ressources du service de règles d'administration" et restreignez l'utilisation des points de terminaison d'API mondiaux.
Configurer des outils et des moteurs de requête
Vous pouvez configurer la Google Cloud CLI, Apache Spark, Trino et les requêtes directes de l'API REST pour utiliser des points de terminaison régionaux.
gcloud CLI
Pour configurer la gcloud CLI afin d'utiliser des points de terminaison régionaux avec les commandes gcloud biglake, définissez la propriété api_endpoint_overrides/biglake sur le point de terminaison régional que vous souhaitez utiliser :
gcloud config set api_endpoint_overrides/biglake https://biglake.LOCATION.rep.googleapis.com/
Vous pouvez également définir la variable d'environnement CLOUDSDK_API_ENDPOINT_OVERRIDES_BIGLAKE pour des commandes individuelles :
CLOUDSDK_API_ENDPOINT_OVERRIDES_BIGLAKE=https://biglake.LOCATION.rep.googleapis.com/ \
gcloud biglake iceberg catalogs list --project=PROJECT_ID
Remplacez les éléments suivants :
LOCATION: région prise en charge pour votre catalogue (par exemple,us-central1).PROJECT_ID: ID de votre projet Google Cloud .
Apache Spark
Lorsque vous configurez une session Spark pour vous connecter au point de terminaison du catalogue Apache Iceberg REST, définissez la propriété spark.sql.catalog.CATALOG_NAME.uri sur l'URL du point de terminaison régional :
from pyspark.sql import SparkSession catalog_name = "CATALOG_NAME" spark = SparkSession.builder.appName("APP_NAME") \ .config('spark.sql.defaultCatalog', 'CATALOG_NAME') \ .config(f'spark.sql.catalog.{catalog_name}', 'org.apache.iceberg.spark.SparkCatalog') \ .config(f'spark.sql.catalog.{catalog_name}.type', 'rest') \ .config(f'spark.sql.catalog.{catalog_name}.uri', 'https://biglake.LOCATION.rep.googleapis.com/iceberg/v1/restcatalog') \ .config(f'spark.sql.catalog.{catalog_name}.warehouse', 'bl://projects/PROJECT_ID/catalogs/CATALOG_ID') \ .config(f'spark.sql.catalog.{catalog_name}.header.x-goog-user-project', 'PROJECT_ID') \ .config(f'spark.sql.catalog.{catalog_name}.rest.auth.type', 'org.apache.iceberg.gcp.auth.GoogleAuthManager') \ .config(f'spark.sql.catalog.{catalog_name}.io-impl', 'org.apache.iceberg.gcp.gcs.GCSFileIO') \ .config(f'spark.sql.catalog.{catalog_name}.header.X-Iceberg-Access-Delegation', 'vended-credentials') \ .config('spark.sql.extensions', 'org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions') \ .getOrCreate()
Remplacez les éléments suivants :
CATALOG_NAME: nom du catalogue Spark local (par exemple,my_catalog).APP_NAME: nom de votre session Spark.LOCATION: région prise en charge où se trouve le catalogue (par exemple,us-central1).PROJECT_ID: ID de votre projet Google Cloud .CATALOG_ID: ID de votre catalogue multiboutique.
Pour en savoir plus sur les options de configuration, consultez Configurer le point de terminaison du catalogue Apache Iceberg REST.
Trino
Lorsque vous créez un cluster Managed Service pour Apache Spark avec le composant Trino, définissez trino-catalog:CATALOG_NAME.iceberg.rest-catalog.uri sur l'URL du point de terminaison régional :
gcloud dataproc clusters create CLUSTER_NAME \ --enable-component-gateway \ --region=LOCATION \ --image-version=DATAPROC_VERSION \ --network=NETWORK_ID \ --optional-components=TRINO \ --properties="\ trino-catalog:CATALOG_NAME.connector.name=iceberg,\ trino-catalog:CATALOG_NAME.iceberg.catalog.type=rest,\ trino-catalog:CATALOG_NAME.iceberg.rest-catalog.uri=https://biglake.LOCATION.rep.googleapis.com/iceberg/v1/restcatalog,\ trino-catalog:CATALOG_NAME.iceberg.rest-catalog.warehouse=bl://projects/PROJECT_ID/catalogs/CATALOG_ID,\ trino-catalog:CATALOG_NAME.iceberg.rest-catalog.biglake.project-id=PROJECT_ID,\ trino-catalog:CATALOG_NAME.iceberg.rest-catalog.rest.auth.type=org.apache.iceberg.gcp.auth.GoogleAuthManager"
Remplacez les éléments suivants :
CLUSTER_NAME: nom de votre cluster.LOCATION: région prise en charge pour votre cluster et votre catalogue.DATAPROC_VERSION: version de l'image Managed Service pour Apache Spark (par exemple,2.2).NETWORK_ID: ID du réseau du cluster.CATALOG_NAME: nom de votre catalogue Trino.PROJECT_ID: ID de votre projet Google Cloud .CATALOG_ID: ID de votre catalogue multiboutique.
API REST
Au lieu d'envoyer une requête REST au point de terminaison global (https://biglake.googleapis.com), envoyez-la au point de terminaison régional au format suivant : https://biglake.LOCATION.rep.googleapis.com.
Par exemple, pour lister les catalogues dans LOCATION à l'aide de l'API d'extensions de point de terminaison du catalogue REST Apache Iceberg :
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-user-project: PROJECT_ID" \ "https://biglake.LOCATION.rep.googleapis.com/iceberg/v1/restcatalog/extensions/projects/PROJECT_ID/catalogs"
Restreindre l'utilisation des points de terminaison d'API mondiaux
Pour appliquer l'utilisation de points de terminaison régionaux, utilisez la contrainte de règle d'administration constraints/gcp.restrictEndpointUsage afin de bloquer les requêtes envoyées au point de terminaison de l'API mondial (biglake.googleapis.com). Pour en savoir plus, consultez Restreindre l'utilisation des points de terminaison.
L'exemple de fichier YAML de règle d'administration suivant refuse les requêtes envoyées au point de terminaison biglake.googleapis.com mondial, tout en autorisant les requêtes envoyées aux points de terminaison régionaux :
name: projects/PROJECT_ID/policies/gcp.restrictEndpointUsage
spec:
rules:
- values:
deniedValues:
- under:services/biglake.googleapis.com
Étapes suivantes
- En savoir plus sur le point de terminaison du catalogue REST Apache Iceberg
- Configurez le point de terminaison du catalogue REST Apache Iceberg.
- En savoir plus sur Identity and Access Management et le contrôle des accès