Descripción general de la partición geográfica

En esta página, se presenta la partición geográfica y se explica cómo funciona en Spanner.

Spanner ofrece configuraciones de instancias regionales y multirregionales, que te permiten replicar tus datos en diferentes ubicaciones geográficas. La partición geográfica te permite segmentar y almacenar aún más las filas en tu tabla de base de datos en diferentes configuraciones de instancias.

Beneficios y casos prácticos

La partición geográfica te permite particionar filas en tu base de datos, lo que proporciona los siguientes beneficios:

  • Latencia regional en una base de datos global: Con la partición geográfica, Spanner administra tus datos en una sola base de datos unificada en ubicaciones distribuidas geográficamente, a la vez que garantiza una latencia baja para el acceso regional. El uso de la partición geográfica simplifica las operaciones y reduce la complejidad en comparación con la administración de varias bases de datos fragmentadas.
  • Capacidades de bases de datos globales: La partición geográfica ofrece funciones de bases de datos, como transacciones globales, movimiento de datos entre regiones y aplicación de la unicidad en todas las regiones geográficas.
  • Cumplimiento de la residencia de datos: Spanner proporciona compromisos de residencia de datos a nivel de la colocación. Para obtener más información, consulta la compatibilidad con la residencia de datos para las bases de datos que usan la partición geográfica.

Estos son algunos casos de uso comunes:

  • Datos relacionados con el usuario: Partición geográfica de los datos relacionados con el usuario para procesar y almacenar datos en una región que esté más cerca del usuario

  • Datos localizados: Información específica de la ubicación, como el tráfico y los eventos especiales.

Cómo funciona la división geográfica

Todas las instancias de Spanner tienen una partición de instancia principal que se denomina partición de instancia default. Si no creas particiones de instancias adicionales, todos los objetos de la base de datos se almacenan en la partición predeterminada, que se encuentra en la misma ubicación que la configuración de tu instancia. Si deseas particionar los datos en una base de datos, debes crear particiones de instancias adicionales en tu instancia.

Para usar la partición geográfica en una base de datos, haz lo siguiente:

  1. Crea particiones de instancias adicionales en tu instancia. Estas particiones de instancias creadas por el usuario tienen su propia configuración (regional o multirregional) y recuento de nodos.

  2. Crea tu base de datos como lo harías normalmente. La base de datos tiene una ubicación predeterminada asociada con la partición de instancia predeterminada de la instancia.

  3. Crea posiciones en tu base de datos que estén asociadas con las particiones de instancias adicionales. Tu base de datos puede interactuar con las particiones de instancias adicionales que se crearon en la misma instancia.

  4. Crea tablas de posiciones que tengan un atributo de clave de posición. Debes usar la clave de posición en tus instrucciones DML para especificar en qué partición de instancia residen los datos de la fila. Si creas tablas que no son de posición en tu base de datos, Spanner almacenará esos datos en la partición de instancia predeterminada.

La clave de posición de cada fila de una tabla de posiciones debe asignarse a uno de los siguientes elementos:

  • Es un valor que coincide con el nombre de una de las posiciones creadas por el usuario y definidas para esa base de datos.

  • El valor de la clave de ubicación, default, que almacena los datos en la ubicación predeterminada.

Para obtener instrucciones sobre cómo usar las particiones de instancias, consulta Crea y administra particiones de instancias.

Consideraciones importantes

Ten en cuenta lo siguiente antes de crear tus particiones, posiciones y tablas de posiciones de instancias:

  • Ubicación de la partición de la instancia: Selecciona con cuidado las regiones de partición de la instancia que proporcionen la mayor cantidad de beneficios para tu aplicación.

    Si bien puedes crear particiones de instancias en una instancia con una configuración regional, te recomendamos que lo hagas en una instancia con una configuración multirregional para que la ubicación predeterminada de la partición de instancias también tenga una configuración multirregional.

    Además, selecciona una ubicación de partición de instancia predeterminada multirregional que tenga regiones de lectura y escritura y de solo lectura que abarquen todas las jurisdicciones que requiere tu aplicación. Luego, crea particiones de instancias adicionales (que pueden ser regionales) con regiones líderes que coincidan con las regiones de la partición de instancias predeterminada multirregional.

  • Cantidad de particiones de instancias: Demasiadas particiones de instancias pueden generar una sobrecarga, mientras que muy pocas podrían no ofrecer suficientes beneficios. Puedes crear un máximo de diez particiones de instancias por instancia.

Limitaciones

Se aplican las siguientes limitaciones durante la versión de vista previa y están sujetas a cambios o eliminación en la versión de GA o después:

  • No puedes crear una partición de instancia con una configuración de dos regiones.
  • Para cada partición de instancia, la capacidad de procesamiento debe ser de al menos un nodo (1,000 unidades de procesamiento).
  • Para una instancia determinada, no puedes crear más de una partición de instancia que use la misma configuración de instancia base. Por ejemplo, dentro de test-instance, no puedes crear dos particiones, partition-1 y partition-2, que usen us-central1 como la configuración de partición de la instancia.
  • Para cada nodo de la partición de tu instancia, puedes colocar un máximo de 100 millones de filas de posiciones. Puedes ver la cantidad de filas de posiciones que se colocaron en cada una de las particiones de tu instancia en la página Particiones de la instancia de la consola de Google Cloud .
  • Por cada nodo en la partición de la instancia de destino, Spanner puede mover alrededor de 10 filas de ubicación por segundo.
  • No puedes crear copias de seguridad para instancias con particiones de instancias.
  • No puedes usar claves de encriptación administradas por el cliente para instancias con particiones de instancias.
  • No puedes crear particiones de instancias en una instancia con el escalador automático administrado habilitado.
  • No puedes mover la partición de la instancia a una configuración de instancia diferente.
  • No puedes mover una instancia que tenga particiones de instancia. (Puedes mover filas individuales a diferentes particiones de instancias para que no tengas que mover la instancia).
  • El uso de particiones de instancias no garantiza el cumplimiento de los requisitos regulatorios.
  • Los flujos de cambios no admiten datos particionados.
  • Para usar la partición geográfica, debes crear una base de datos nueva y vacía, y establecer la opción opt_in_dataplacement_preview en true. Para obtener más información, consulta Crea y administra particiones de instancias.
  • Si usas una declaración DML de INSERT o DELETE para una tabla de posiciones, esa declaración debe ser la única en la transacción.
  • El modo de transacción de lectura y escritura te permite hacer referencia solo a las claves primarias de una tabla de posiciones en la cláusula WHERE. Si necesitas hacer referencia a una columna que no es de clave primaria de una tabla de posiciones en la cláusula WHERE, puedes usar una de las siguientes alternativas:
    • Si solo necesitas acceso de solo lectura, cambia al modo de transacción de solo lectura.
    • Si necesitas realizar actualizaciones, usa el modo de transacción DML particionado o busca las claves principales en una consulta de transacción de solo lectura y, luego, en una transacción de lectura y escritura independiente, haz referencia a las claves principales devueltas en la cláusula WHERE.
  • No puedes usar esquemas con nombre.
  • No puedes crear particiones de instancias en instancias de prueba gratuita ni en instancias de tamaño granular más pequeñas que un nodo (1,000 unidades de procesamiento).

Control de acceso con IAM

Debes tener los permisos spanner.instancePartitions.create, spanner.instancePartitions.update y spanner.instancePartitions.delete para crear y administrar particiones de instancias. Si solo necesitas ver las particiones de la instancia, debes tener el permiso spanner.instancePartitions.list o spanner.instancePartitions.get. Para obtener más información, consulta la Descripción general de IAM.

Para obtener información sobre cómo otorgar permisos de IAM de Spanner, consulta Aplica permisos de IAM.

Supervisión

Spanner proporciona varias métricas para ayudarte a supervisar las particiones de tu instancia. Después de crear una partición de instancia adicional, verás un filtro desplegable adicional para Particiones de instancia en la página Estadísticas del sistema de la consola de Google Cloud . La selección predeterminada es mostrar las métricas de todas las particiones de instancias. Puedes usar el menú desplegable para filtrar las métricas de una partición de instancia específica.

Para obtener más información sobre cómo supervisar tus recursos de Spanner, consulta Supervisa instancias con Cloud Monitoring.

Precios

No se aplican cargos adicionales por usar la segmentación geográfica. Se te cobra el precio estándar de Spanner por la cantidad de capacidad de procesamiento que usa tu instancia y la cantidad de almacenamiento que usa tu base de datos.

Para obtener más información, consulta Precios de Spanner.

¿Qué sigue?