Crea y administra posiciones de datos

En esta página, se describe cómo crear y administrar posiciones de datos en Spanner.

Para obtener más información sobre cómo funciona el particionamiento geográfico, consulta la descripción general del particionamiento geográfico.

Crea una posición de datos

Después de crear tus particiones de Spanner y bases de datos, crea tu ubicación.

Console

  1. Ve a la página Instancias en la consola de Google Cloud .

    Instancias

  2. Selecciona la instancia con las particiones creadas por el usuario.

  3. Selecciona la base de datos en la que deseas particionar los datos.

  4. En el menú de navegación, haz clic en Spanner Studio.

  5. En la página Spanner Studio, haz clic en Nueva pestaña o usa la pestaña del editor vacía.

  6. Ingresa la sentencia DDL CREATE PLACEMENT (GoogleSQL, PostgreSQL).

    Por ejemplo, puedes ejecutar lo siguiente para crear una tabla de posiciones europeplacement en la partición europe-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 y interactuar con tus objetos de posición. Para obtener más información, consulta Cómo explorar tus datos.

  7. Haz clic en Ejecutar.

gcloud

Para crear una ubicación con el comando de gcloud CLI, usa gcloud spanner databases ddl update.

Por ejemplo, crea una posición en la partición 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')"

Borra una posición de datos

No puedes borrar una posición. Debes borrar la base de datos para borrar la ubicación y sus datos asociados. Para obtener más información, consulta Borra una base de datos.

Crea una tabla con una clave de posición

Console

  1. En el menú de navegación, haz clic en Spanner Studio.
  2. En la página Spanner Studio, haz clic en Nueva pestaña o usa la pestaña del editor vacía.
  3. Ingresa la sentencia DDL CREATE TABLE (GoogleSQL, PostgreSQL).

    Por ejemplo, puedes crear una tabla Singers que use una clave de posición para particionar los datos de cantantes:

    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 de cantantes:

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 );"

Cómo editar 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 ubicación a una tabla después de crearla. Sin embargo, puedes usar la sentencia DDL ALTER TABLE (GoogleSQL, PostgreSQL) para cambiar otros campos de la tabla, por ejemplo, agregando y quitando columnas de clave que no sean de posición.

Cómo borrar una tabla con una clave de posición

Antes de borrar una tabla con una clave de posición, debes hacer lo siguiente:

  1. Borra todas las filas de la tabla de posiciones.
  2. Espera a que se apruebe el version_retention_period de la base de datos. Para obtener más información, consulta Recuperación de un momento determinado. Luego, sigue estos pasos:

Console

  1. En el menú de navegación, haz clic en Spanner Studio.
  2. En la página Spanner Studio, haz clic en Nueva pestaña o usa la pestaña del editor vacía.
  3. Ingresa la sentencia 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"

Cómo insertar una fila en una tabla de posiciones

Console

  1. En el menú de navegación, haz clic en Spanner Studio.
  2. En la página Spanner Studio, haz clic en Nueva pestaña o usa la pestaña del editor vacía.
  3. Ingresa la sentencia DDL INSERT INTO (GoogleSQL, PostgreSQL).

    Por ejemplo, agrega un cantante, Marc Richards, a la tabla Singers y divídelo en europeplacement:

    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 divídelo 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

  1. En el menú de navegación, haz clic en Spanner Studio.
  2. En la página Spanner Studio, haz clic en Nueva pestaña o usa la pestaña del editor vacía.
  3. Usa DML o mutaciones para actualizar los datos en una tabla de posiciones.

    Por ejemplo, actualiza el nombre de singerid=1 en la tabla Singers a Catalina Smith:

    UPDATE Singers s
    SET s.name='Catalina Smith'
    WHERE s.id=1;
    

gcloud

Para actualizar los datos de 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'

Cómo mover una fila en una tabla de posiciones

Console

  1. Si aún no lo hiciste, crea una partición y una ubicación nuevas.
  2. En el menú de navegación, haz clic en Spanner Studio.
  3. En la página Spanner Studio, haz clic en Nueva pestaña o usa la pestaña del editor vacía.
  4. Usa DML o mutaciones para mover los datos a la partición nueva.

    Por ejemplo, mueve singerid=1 en la tabla Singers a asiaplacement:

    UPDATE Singers s
    SET s.location='asiaplacement'
    WHERE s.id=1;
    

gcloud

Después de crear la partición y la ubicació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 de una tabla de posiciones

Console

  1. En el menú de navegación, haz clic en Spanner Studio.
  2. En la página Spanner Studio, haz clic en Nueva pestaña o usa la pestaña del editor vacía.
  3. Usa DML o mutaciones para borrar datos.

    Por ejemplo, borra singerid=1 en la tabla Singers:

    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

  1. En el menú de navegación, haz clic en Spanner Studio.
  2. En la página Spanner Studio, haz clic en Nueva pestaña o usa la pestaña del editor vacía.
  3. Ejecuta la 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 \
  --sql='SELECT * FROM Singers s WHERE s.SingerId=1'

¿Qué sigue?