En este documento, se describe cómo puedes usar los extremos regionales de Private Service Connect para acceder a los recursos en el catálogo del entorno de ejecución de Lakehouse. Los extremos regionales te permiten ejecutar tus cargas de trabajo de una manera que cumpla con los requisitos de residencia de datos y soberanía de los datos, en los que el tráfico de solicitudes se enruta directamente a la región especificada en el extremo.
Descripción general
Los extremos regionales restringen las solicitudes para que solo continúen si el recurso del catálogo afectado existe en la ubicación especificada por el extremo. Por ejemplo, si usas el extremo https://biglake.us-central1.rep.googleapis.com para acceder a un catálogo, un espacio de nombres o una tabla, la solicitud solo continúa si el catálogo se encuentra en us-central1.
A diferencia de los extremos globales, en los que las solicitudes se pueden enrutar a través de una ubicación diferente desde donde reside el recurso, los extremos regionales restringen tus solicitudes a la ubicación que especifica el extremo, donde reside el recurso. Los extremos regionales finalizan las sesiones de seguridad de la capa de transporte (TLS) en la ubicación que especifica el extremo para las solicitudes recibidas de Internet, otros recursos Google Cloud como las máquinas virtuales de Compute Engine, los servicios locales que usan Cloud VPN o Cloud Interconnect, y las nubes privadas virtuales (VPC).
Los extremos regionales ayudan a garantizar la residencia de los datos, ya que mantienen tus solicitudes de catálogo en tránsito dentro de la ubicación especificada por el extremo. Para obtener más información sobre cómo se manejan los metadatos del servicio, consulta la Nota sobre los datos del servicio.
Los siguientes extremos del catálogo en el catálogo de entorno de ejecución de Lakehouse están disponibles para usarse con extremos regionales:
| Extremo del catálogo | URL del extremo regional | Reference |
|---|---|---|
| Extremo del catálogo de REST de Apache Iceberg | https://biglake.LOCATION.rep.googleapis.com/iceberg/v1/restcatalog |
REST |
| Extremo del catálogo de Apache Hive (vista previa) | https://biglake.LOCATION.rep.googleapis.com/hive/v1 |
REST |
Ubicaciones admitidas
Puedes usar extremos regionales con el catálogo de tiempo de ejecución de Lakehouse en las siguientes ubicaciones:
Asia-Pacífico
- Delhi
asia-south2 - Bombay:
asia-south1
- Delhi
Europa
- Bélgica
europe-west1 - Fráncfort:
europe-west3 - Londres:
europe-west2 - Milán
europe-west8 - Países Bajos
europe-west4 - París
europe-west9 - Zúrich:
europe-west6
- Bélgica
Oriente Medio
- Dammam
me-central2
- Dammam
América
- Columbus, Ohio
us-east5 - Dallas
us-south1 - Iowa
us-central1 - Las Vegas:
us-west4 - Los Ángeles:
us-west2 - Montreal:
northamerica-northeast1 - Virginia del Norte:
us-east4 - Oregón
us-west1 - Salt Lake City:
us-west3 - Carolina del Sur:
us-east1 - Toronto
northamerica-northeast2
- Columbus, Ohio
Operaciones y ubicaciones de almacenamiento compatibles
Los extremos regionales solo se pueden usar para realizar operaciones que acceden a los recursos del catálogo replicados en la ubicación que especifica el extremo o los mutan:
- Aislamiento del catálogo regional: Los catálogos de fichas a través de
https://biglake.LOCATION.rep.googleapis.commuestran solo los catálogos ubicados enLOCATION. Las solicitudes para obtener, actualizar o borrar un catálogo, un espacio de nombres o una tabla ubicados fuera deLOCATIONmuestran un error404 NOT_FOUND. - Ubicación de almacenamiento predeterminada: Cuando creas un catálogo con un extremo regional, el bucket de Cloud Storage especificado en
default_locationpara un catálogo de varios buckets (CATALOG_TYPE_BIGLAKE) o el bucket asociado con un catálogo de un solo bucket (CATALOG_TYPE_GCS_BUCKET) debe residir enLOCATION. - Ubicaciones restringidas del catálogo de bucket buckets: Para los catálogos de varios bucket, puedes configurar buckets adicionales de Cloud Storage en
restricted_locations, siempre y cuando esos buckets residan dentro de la misma jurisdicción geográfica (como EE.UU. o Europa) queLOCATION. Para obtener más información, consulta Catálogo de bucket buckets.
Limitaciones y restricciones
Los extremos regionales no se pueden usar para realizar las siguientes operaciones:
- Operaciones que leen o modifican catálogos, espacios de nombres o tablas ubicados fuera de la región especificada por el extremo.
- Enrutamiento de endpoints multirregionales (como
USoEU). Los endpoints regionales deben especificar una sola región.
Ten en cuenta las siguientes restricciones cuando uses extremos regionales:
- Los extremos regionales no admiten la seguridad de la capa de transporte mutua (mTLS).
- Usar un extremo regional no restringe por sí solo a los usuarios la creación de recursos en otras regiones ni la llamada al extremo global (
biglake.googleapis.com). Para aplicar restricciones regionales, configura la restricción de ubicaciones de recursos del servicio de políticas de la organización y restringe el uso del extremo de API global.
Configura herramientas y motores de consultas
Puedes configurar Google Cloud CLI, Apache Spark, Trino y las solicitudes directas a la API de REST para que usen extremos regionales.
gcloud CLI
Para configurar gcloud CLI de modo que use extremos regionales con los comandos de gcloud biglake, establece la propiedad api_endpoint_overrides/biglake en el extremo regional que deseas usar:
gcloud config set api_endpoint_overrides/biglake https://biglake.LOCATION.rep.googleapis.com/
Como alternativa, puedes establecer la variable de entorno CLOUDSDK_API_ENDPOINT_OVERRIDES_BIGLAKE para comandos individuales:
CLOUDSDK_API_ENDPOINT_OVERRIDES_BIGLAKE=https://biglake.LOCATION.rep.googleapis.com/ \
gcloud biglake iceberg catalogs list --project=PROJECT_ID
Reemplaza lo siguiente:
LOCATION: La región admitida para tu catálogo (por ejemplo,us-central1).PROJECT_ID: Es el ID del proyecto de Google Cloud .
Apache Spark
Cuando configures una sesión de Spark para conectarte al extremo del catálogo de REST de Apache Iceberg, establece la propiedad spark.sql.catalog.CATALOG_NAME.uri en la URL del extremo regional:
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()
Reemplaza lo siguiente:
CATALOG_NAME: Es un nombre para el catálogo local de Spark (por ejemplo,my_catalog).APP_NAME: Es un nombre para tu sesión de Spark.LOCATION: La región admitida en la que se encuentra el catálogo (por ejemplo,us-central1).PROJECT_ID: Es el ID del proyecto de Google Cloud .CATALOG_ID: Es el ID de tu catálogo de múltiples bucket.
Para obtener más opciones de configuración, consulta Cómo configurar el extremo del catálogo REST de Apache Iceberg.
Trino
Cuando crees un clúster de Managed Service para Apache Spark con el componente de Trino, configura trino-catalog:CATALOG_NAME.iceberg.rest-catalog.uri en la URL del extremo regional:
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"
Reemplaza lo siguiente:
CLUSTER_NAME: Es un nombre para tu clúster.LOCATION: Es la región admitida para tu clúster y catálogo.DATAPROC_VERSION: Es la versión de la imagen de Managed Service para Apache Spark (por ejemplo,2.2).NETWORK_ID: Es el ID de la red del clúster.CATALOG_NAME: Es el nombre de tu catálogo de Trino.PROJECT_ID: Es el ID del proyecto de Google Cloud .CATALOG_ID: Es el ID de tu catálogo de múltiples bucket.
API de REST
En lugar de enviar una solicitud REST al extremo global (https://biglake.googleapis.com), envía la solicitud al extremo regional con el siguiente formato: https://biglake.LOCATION.rep.googleapis.com.
Por ejemplo, para enumerar catálogos en LOCATION con la API de extensiones de extremos de catálogos de REST de Apache Iceberg, haz lo siguiente:
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"
Restringe el uso del extremo de API global
Para ayudar a aplicar de manera forzosa el uso de extremos regionales, usa la restricción de políticas de la organización constraints/gcp.restrictEndpointUsage para bloquear las solicitudes al extremo de API global (biglake.googleapis.com). Para obtener más información, consulta Cómo restringir el uso de extremos.
En el siguiente ejemplo de archivo YAML de política de la organización, se rechazan las solicitudes al extremo global biglake.googleapis.com y se permiten las solicitudes a los extremos regionales:
name: projects/PROJECT_ID/policies/gcp.restrictEndpointUsage
spec:
rules:
- values:
deniedValues:
- under:services/biglake.googleapis.com
¿Qué sigue?
- Obtén más información sobre el extremo del catálogo de REST de Apache Iceberg.
- Configura el extremo del catálogo de REST de Apache Iceberg.
- Obtén información sobre Identity and Access Management y el control de acceso.