En esta página, se describe cómo crear y administrar posiciones de datos en Spanner.
Para obtener más información sobre el funcionamiento del geo-particionamiento, consulta la descripción general del geo-particionamiento.
Crea una posición de datos
Después de crear las particiones de instancias de Spanner y las bases de datos, crea tu posición.
Console
Ve a la página Instancias en la Google Cloud consola.
Selecciona la instancia con las particiones de instancias creadas por el usuario.
Selecciona la base de datos en la que deseas particionar los datos.
En el menú de navegación, haz clic en Spanner Studio.
En la página de Spanner Studio, haz clic en Nueva pestaña o usa la pestaña del editor vacía.
Ingresa la instrucción DDL
CREATE PLACEMENT(GoogleSQL, PostgreSQL) .Por ejemplo, puedes ejecutar lo siguiente para crear una tabla de posiciones
europeplacementen la partición de instanciaseurope-partition:GoogleSQL
CREATE PLACEMENT europeplacement OPTIONS (instance_partition="europe-partition");PostgreSQL
CREATE PLACEMENT europeplacement WITH (instance_partition='europe-partition');Opcional: También puedes usar el panel Explorador de objetos para ver, buscar e interactuar con tus objetos de posición. Para obtener más información, consulta Explora tus datos.
Haz clic en Ejecutar.
gcloud
Para crear una posición con el comando de Google Cloud CLI, usa
gcloud spanner databases ddl update.
Por ejemplo, crea una posición en la partición de instancias europe-partition:
GoogleSQL
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="CREATE PLACEMENT europeplacement OPTIONS (instance_partition='europe-partition')"
PostgreSQL
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="CREATE PLACEMENT europeplacement WITH (instance_partition='europe-partition')"
Establece el líder predeterminado para una posición
Puedes establecer la región líder predeterminada de una posición si su ubicación está en una región doble o multirregión. La región líder nueva debe ser una de las dos regiones de lectura y escritura dentro de la ubicación de la posición de región doble o multirregión. Para obtener más información, consulta las tablas Configuraciones disponibles de región doble y Configuraciones disponibles de multirregión.
Si no estableces una región líder, tu posición usa la región líder predeterminada según lo especificado por su ubicación. Para obtener una lista de la región líder para cada
ubicación de región doble o multirregión, consulta las
tablas Configuraciones disponibles de región doble
y Configuraciones disponibles de multirregión. La región líder predeterminada se indica con una L. Por ejemplo, la región líder predeterminada de nam8 está en Los Ángeles(us-west2). En las siguientes instrucciones, se explica cómo configurarla en Oregón(us-west1).
Console
Ve a la página Instancias en la Google Cloud consola.
Selecciona la instancia con las particiones de instancias creadas por el usuario.
Selecciona la base de datos en la que deseas particionar los datos.
En el menú de navegación, haz clic en Spanner Studio.
En la página de Spanner Studio, haz clic en Nueva pestaña o usa la pestaña del editor vacía.
Ingresa la instrucción DDL
CREATE PLACEMENT(GoogleSQL, PostgreSQL) .Por ejemplo, puedes ejecutar lo siguiente para crear una tabla de posiciones
nam8placementen la partición de instanciasnam8-partitioncon la ubicación líder predeterminada establecida comous-west1:GoogleSQL
CREATE PLACEMENT `nam8placement` OPTIONS (instance_partition="nam8-partition", default_leader="us-west1");PostgreSQL
CREATE PLACEMENT nam8placement WITH (instance_partition='nam8-partition', default_leader='us-west1');Opcional: También puedes usar el panel Explorador de objetos para ver, buscar e interactuar con tus objetos de posición. Para obtener más información, consulta Explora tus datos.
Haz clic en Ejecutar.
gcloud
Para crear una posición con el comando de gcloud CLI, usa
gcloud spanner databases ddl update.
Por ejemplo, crea una tabla de posiciones nam8placement en la partición de instancias nam8-partition con la ubicación líder predeterminada establecida como us-west1:
GoogleSQL
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="CREATE PLACEMENT nam8placement \
OPTIONS (instance_partition='nam8-partition', default_leader='us-west1')"
PostgreSQL
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="CREATE PLACEMENT nam8placement WITH (instance_partition='nam8-partition', default_leader='us-west1')"
Descarta una posición de datos
Antes de descartar una posición, debes quitar todos los datos de fila de la posición. Después de hacerlo, puedes usar la Google Cloud consola o gcloud CLI para descartar la posición.
Console
- En el menú de navegación, haz clic en Spanner Studio.
- En la página de Spanner Studio, haz clic en Nueva pestaña o usa la pestaña del editor vacía.
Ingresa la instrucción DDL
DROP PLACEMENT(GoogleSQL, PostgreSQL).Por ejemplo, puedes ejecutar lo siguiente para descartar la tabla de posiciones
europeplacement:GoogleSQL
DROP PLACEMENT europeplacement;PostgreSQL
DROP PLACEMENT europeplacement;
gcloud
Para descartar una posición con el comando de gcloud CLI, usa gcloud spanner databases ddl update.
Por ejemplo, descarta la posición europeplacement:
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="DROP PLACEMENT europeplacement"
Errores de descarte de posición
Si la posición está en uso, la operación DROP PLACEMENT falla con un
mensaje de error como el siguiente: "Statement failed: Placement
PLACEMENT_NAME cannot be dropped because it is in use by
placement table PLACEMENT_TABLE_NAME.". Si encuentras
este error, haz lo siguiente:
- Modifica tu aplicación para dejar de insertar o actualizar filas con la posición que deseas descartar.
Realiza una de las siguientes acciones:
Mueve las filas de posición existentes que usan la posición que deseas borrar a una posición diferente con una instrucción DML particionada como la siguiente:
UPDATE PLACEMENT_TABLE_NAME SET LOCATION = NEW_PLACEMENT_NAME WHERE LOCATION = ORIGINAL_PLACEMENT_NAME;Borra las filas de posición con una declaración DML particionada como la siguiente:
DELETE FROM PLACEMENT_TABLE_NAME WHERE LOCATION = ORIGINAL_PLACEMENT_NAME;Las instrucciones DML anteriores específicas de la posición solo funcionan con DML particionado. Fallarán como instrucciones DML normales. Para obtener más información, consulta Limitaciones. También puedes usar la API de mutación para mover o descartar filas de posición.
Cancela una operación DROP PLACEMENT
Puedes cancelar una operación DROP PLACEMENT en cualquier momento antes de que la operación de larga duración borre por completo la posición del esquema de la base de datos. Para obtener detalles
sobre cómo obtener el ID de operación de larga duración para verificar el estado o cancelar
la operación, consulta Administra y observa operaciones de larga duración.
Crea una tabla con una clave de posición
Console
- En el menú de navegación, haz clic en Spanner Studio.
- En la página de Spanner Studio, haz clic en Nueva pestaña o usa la pestaña del editor vacía.
Ingresa la instrucción DDL
CREATE TABLE(GoogleSQL, PostgreSQL).Por ejemplo, puedes crear una tabla
Singersque use una clave de posición para particionar los datos del cantante:GoogleSQL
CREATE TABLE Singers ( SingerId INT64 NOT NULL, SingerName STRING(MAX) NOT NULL, ... Location STRING(MAX) NOT NULL PLACEMENT KEY ) PRIMARY KEY (SingerId);PostgreSQL
CREATE TABLE Singers ( SingerId bigint PRIMARY KEY, SingerName varchar(1024), ... Location varchar(1024) NOT NULL PLACEMENT KEY );
gcloud
Para crear una tabla, usa
gcloud spanner databases ddl update.
Por ejemplo, puedes crear una tabla Singers que use una clave de posición para particionar los datos del cantante:
GoogleSQL
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="CREATE TABLE Singers ( SingerId INT64 NOT NULL, SingerName STRING(MAX) NOT NULL, Location STRING(MAX) NOT NULL PLACEMENT KEY ) PRIMARY KEY (SingerId);"
PostgreSQL
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="CREATE TABLE Singers ( SingerId bigint PRIMARY KEY, SingerName varchar(1024), Location varchar(1024) NOT NULL PLACEMENT KEY );"
Edita una tabla con una clave de posición
No puedes descartar una clave de posición de una tabla. Tampoco puedes agregar una clave de posición a una tabla después de que se creó. Sin embargo, puedes usar la
ALTER TABLE (GoogleSQL,
PostgreSQL) instrucción DDL para cambiar otros campos en
la tabla, por ejemplo, agregando y descartando columnas de clave que no sean de posición.
Borra una tabla con una clave de posición
Antes de borrar una tabla con una clave de posición, primero debes hacer lo siguiente:
- Borra todas las filas de la tabla de posiciones.
- Espera a que pase el
version_retention_periodpara la base de datos. Para obtener más información, consulta Recuperación de un momento determinado. Luego, sigue estos pasos:
Console
- En el menú de navegación, haz clic en Spanner Studio.
- En la página de Spanner Studio, haz clic en Nueva pestaña o usa la pestaña del editor vacía.
Ingresa la instrucción DDL
DROP TABLE(GoogleSQL, PostgreSQL).Por ejemplo, descarta la tabla
Singers:DROP TABLE Singers;
gcloud
Para descartar una tabla, usa
gcloud spanner databases ddl update.
Por ejemplo, descarta la tabla Singers:
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="DROP TABLE Singers"
Inserta una fila en una tabla de posiciones
Console
- En el menú de navegación, haz clic en Spanner Studio.
- En la página de Spanner Studio, haz clic en Nueva pestaña o usa la pestaña del editor vacía.
Ingresa la instrucción DDL
INSERT INTO(GoogleSQL, PostgreSQL).Por ejemplo, agrega un cantante, Marc Richards, a la tabla
Singersy particiónalo eneuropeplacement:INSERT INTO Singers(SingerId, SingerName, Location) VALUES (1, 'Marc Richards', 'europeplacement')
gcloud
Para escribir datos en una tabla, usa
gcloud spanner rows insert.
Por ejemplo, agrega un cantante, Marc Richards, a la tabla Singers y particiónalo en europeplacement:
gcloud spanner rows insert --table=Singers --database=example-db \
--instance=test-instance --data=SingerId=1,SingerName='Marc Richards',Location='europeplacement'
Actualiza una fila en una tabla de posiciones
Console
- En el menú de navegación, haz clic en Spanner Studio.
- En la página de Spanner Studio, haz clic en Nueva pestaña o usa la pestaña del editor vacía.
Usa DML o mutaciones para actualizar datos en una tabla de posiciones.
Por ejemplo, actualiza el nombre de
singerid=1en la tablaSingersaCatalina Smith:UPDATE Singers s SET s.name='Catalina Smith' WHERE s.id=1;
gcloud
Para actualizar datos en una tabla de posiciones,
usa gcloud spanner rows update.
Por ejemplo, actualiza el nombre de singerid=1 en la tabla Singers a Catalina Smith:
gcloud spanner rows update --table=Singers --database=example-db \
--instance=test-instance --data=SingerId=1,SingerName='Catalina Smith'
Mueve una fila en una tabla de posiciones
Console
- Crea una nueva partición de instancias y una posición si aún no lo hiciste.
- En el menú de navegación, haz clic en Spanner Studio.
- En la página de Spanner Studio, haz clic en Nueva pestaña o usa la pestaña del editor vacía.
Usa DML o mutaciones para mover datos a la nueva partición de instancias.
Por ejemplo, mueve
singerid=1en la tablaSingersaasiaplacement:UPDATE Singers s SET s.location='asiaplacement' WHERE s.id=1;
gcloud
Después de crear la partición de instancias y la posición a la que deseas mover
tus datos, usa gcloud spanner rows update.
Por ejemplo, mueve singerid=1 en la tabla Singers a asiaplacement:
gcloud spanner rows update --table=Singers --database=example-db \
--instance=test-instance --data=SingerId=1,Location='asiaplacement'
Borra una fila en una tabla de posiciones
Console
- En el menú de navegación, haz clic en Spanner Studio.
- En la página de Spanner Studio, haz clic en Nueva pestaña o usa la pestaña del editor vacía.
Usa DML o mutaciones para borrar datos.
Por ejemplo, borra
singerid=1en la tablaSingers:DELETE FROM Singers s WHERE s.id=1;
gcloud
Para borrar datos, usa gcloud spanner rows delete.
Por ejemplo, borra singerid=1 en la tabla Singers:
gcloud spanner rows delete --table=Singers --database=example-db \
--instance=test-instance --keys=1
Consulta datos en una tabla de posiciones
Console
- En el menú de navegación, haz clic en Spanner Studio.
- En la página de Spanner Studio, haz clic en Nueva pestaña o usa la pestaña del editor vacía.
Ejecuta tu consulta.
Por ejemplo, consulta la tabla
Singers:SELECT * FROM Singers s WHERE s.SingerId=1;
gcloud
Para consultar datos, usa gcloud spanner databases execute-sql.
Por ejemplo, consulta la tabla Singers:
gcloud spanner databases execute-sql example-db \
--instance=test-instance \
--sql='SELECT * FROM Singers s WHERE s.SingerId=1'
¿Qué sigue?
Obtén más información sobre el geo-particionamiento.
Obtén información para crear y administrar particiones de instancias.