En esta página, se presenta el particionamiento geográfico y se explica cómo funciona en Spanner.
Spanner ofrece configuraciones de instancias regionales y multirregionales, lo que permite replicar tus datos entre 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 de uso
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 del particionamiento geográfico 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: El particionamiento geográfico ofrece funciones de bases de datos, como transacciones globales, movimiento de datos entre regiones y aplicación de unicidad en regiones geográficas.
- Cumplimiento de la residencia de datos: Spanner proporciona compromisos de residencia de datos a nivel de la ubicación. Para obtener más información, consulta Compatibilidad con la residencia de datos para bases de datos que usan el particionamiento geográfico.
Los siguientes son casos de uso comunes:
Datos relacionados con el usuario: Particionamiento geográfico de los datos relacionados con el usuario para procesar y almacenar datos en la región más cercana al usuario.
Datos localizados: Información específica de la ubicación, como el tráfico y los eventos especiales.
Cómo funciona el particionamiento geográfico
Todas las instancias de Spanner tienen una partición de instancia principal que se
llama 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 la instancia. Si deseas particionar
los datos de una base de datos, debes crear particiones de instancias adicionales en tu
instancia.
Para usar el particionamiento geográfico en una base de datos, haz lo siguiente:
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.
Crea tu base de datos como lo harías normalmente. La base de datos tiene una ubicación predeterminada que se asocia con la partición de instancia predeterminada de la instancia.
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.
Crea tablas de posiciones que tengan un atributo de clave de posición. Debes usar la clave de ubicación en tus sentencias DML para especificar en qué partición de instancia residen los datos de la fila. Si creas tablas sin ubicación en tu base de datos, Spanner almacena esos datos en la partición de instancia predeterminada.
La clave de posición de cada fila de una tabla de posiciones se debe asignar a uno de los siguientes elementos:
Un valor que coincida con el nombre de una de las posiciones creadas por el usuario que se definieron 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 de instancias, ubicaciones y tablas de ubicación:
Ubicación de la partición de la instancia: Selecciona con cuidado las regiones de la partición de la instancia que proporcionen la mayor cantidad de beneficios para tu aplicación.
Debes crear particiones de instancias en una instancia con una configuración de instancia multirregional.
Para obtener una mejor latencia, te recomendamos que selecciones 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 sobrecarga, mientras que muy pocas podrían no ofrecer suficientes beneficios. Puedes crear un máximo de diez particiones de instancia por instancia.
Limitaciones
Las siguientes limitaciones se aplican durante la versión preliminar y están sujetas a cambios o eliminación en el momento de la versión de DG o después de ella:
- La partición de instancia predeterminada debe ser una configuración multirregional.
- La partición de instancia adicional debe ser una configuración multirregional.
- No puedes crear una partición de instancia con una configuración birregional.
- 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-1ypartition-2, que usenus-central1como la configuración de la partición de la instancia. - Para cada nodo de la partición de la instancia, puedes colocar un máximo de 100 millones de filas de ubicación. Puedes ver la cantidad de filas de ubicación 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 incrementales ni copiar la copia de seguridad.
- No puedes habilitar el ajuste de escala automático asimétrico de solo lectura en particiones de instancias que no sean predeterminadas.
- No puedes mover la partición de la instancia a una configuración de instancia diferente.
- No puedes mover una instancia que tenga bases de datos que usen ubicaciones adicionales que apunten a la partición de instancia predeterminada.
- Los flujos de cambios no admiten datos particionados.
- Si usas una declaración DML
INSERToDELETEpara una tabla de posición, esa sentencia 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 posición en la cláusula
WHERE. Si necesitas hacer referencia a una columna de clave no primaria de una tabla de ubicación en la cláusulaWHERE, 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 de DML particionado
o busca las claves primarias 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 primarias que se mostraron 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 detallado inferiores a un nodo (1,000 unidades de procesamiento).
- No puedes modificar una posición. En su lugar, puedes crear una ubicación nueva, usar DML particionado para actualizar la ubicación de tus datos a una nueva y, luego, descartar la ubicación original.
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 en 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.
Copias de seguridad
Puedes crear copias de seguridad completas para las bases de datos que usan el particionamiento geográfico. No puedes borrar la partición de instancia si la usas en una copia de seguridad. Para obtener más información, consulta Crea copias de seguridad.
Notas de uso:
- Spanner almacena copias de seguridad de los datos con particionamiento geográfico en la misma ubicación que los datos originales en el momento de la versión de la copia de seguridad.
Para restablecer copias de seguridad que contienen datos con partición geográfica, la instancia de destino debe cumplir con las siguientes condiciones:
- La instancia de destino debe usar los mismos nombres de partición de instancia que la copia de seguridad original.
- Cada partición de instancia en la instancia de destino debe usar la misma configuración de instancia que la copia de seguridad original.
Escalador automático administrado
Puedes habilitar el escalador automático administrado en las particiones de instancias. Cuando habilitas el escalador automático administrado, Spanner ajusta automáticamente el tamaño de la partición de la instancia por ti. El escalador automático administrado reacciona a los cambios en la carga de trabajo o las necesidades de almacenamiento de la partición de tu instancia a medida que aumenta o disminuye la carga. El escalador automático administrado escala verticalmente, lo que agrega capacidad de procesamiento a la partición de la instancia, o reduce la escala verticalmente, lo que quita capacidad de procesamiento de la partición de la instancia.
Precios
No se aplican cargos adicionales por usar el particionamiento geográfico. Se te cobrarán los precios 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?
- Obtén más información para crear y administrar particiones de instancias.
- Obtén información para crear y administrar posiciones de datos.