Membuat dan mengelola penempatan data

Halaman ini menjelaskan cara membuat dan mengelola penempatan data di Spanner.

Untuk mengetahui informasi selengkapnya tentang cara kerja partisi geografis, lihat Ringkasan partisi geografis.

Membuat penempatan data

Setelah membuat partisi instance Spanner dan database, buat penempatan Anda.

Konsol

  1. Buka halaman Instances di konsol Google Cloud .

    Instance

  2. Pilih instance dengan partisi instance yang dibuat pengguna.

  3. Pilih database yang datanya ingin Anda partisi.

  4. Di menu navigasi, klik Spanner Studio.

  5. Di halaman Spanner Studio, klik Tab baru atau gunakan tab editor yang kosong.

  6. Masukkan pernyataan DDL CREATE PLACEMENT (GoogleSQL, PostgreSQL) .

    Misalnya, Anda dapat menjalankan perintah berikut untuk membuat tabel penempatan europeplacement di partisi instance europe-partition:

    GoogleSQL

    CREATE PLACEMENT europeplacement OPTIONS (instance_partition="europe-partition");
    

    PostgreSQL

    CREATE PLACEMENT europeplacement WITH (instance_partition='europe-partition');
    

    Opsional: Anda juga dapat menggunakan panel Object Explorer untuk melihat, menelusuri, dan berinteraksi dengan objek Penempatan. Untuk mengetahui informasi selengkapnya, lihat Menjelajahi data.

  7. Klik Run.

gcloud

Untuk membuat penempatan dengan perintah gcloud CLI, gunakan gcloud spanner databases ddl update.

Misalnya, buat penempatan di partisi instance 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')"

Menetapkan pemimpin default untuk penempatan

Anda dapat menetapkan region pemimpin default penempatan jika lokasinya berada di dual-region atau multi-region. Region pemimpin baru harus menjadi salah satu dari dua region baca-tulis dalam lokasi penempatan dual-region atau multi-region. Untuk mengetahui informasi selengkapnya, lihat tabel Konfigurasi yang tersedia untuk region ganda dan Konfigurasi yang tersedia untuk multiregion.

Jika Anda tidak menetapkan region pemimpin, penempatan Anda akan menggunakan region pemimpin default seperti yang ditentukan oleh lokasinya. Untuk mengetahui daftar region utama untuk setiap lokasi dual-region atau multi-region, lihat tabel Konfigurasi yang tersedia untuk dual-region dan Konfigurasi yang tersedia untuk multi-region. Region paling dominan default ditandai dengan L. Misalnya, wilayah pemimpin default nam8 berada di Los Angeles(us-west2). Petunjuk berikut menjelaskan cara menyetelnya ke Oregon(us-west1).

Konsol

  1. Buka halaman Instances di konsol Google Cloud .

    Instance

  2. Pilih instance dengan partisi instance yang dibuat pengguna.

  3. Pilih database yang datanya ingin Anda partisi.

  4. Di menu navigasi, klik Spanner Studio.

  5. Di halaman Spanner Studio, klik Tab baru atau gunakan tab editor yang kosong.

  6. Masukkan pernyataan DDL CREATE PLACEMENT (GoogleSQL, PostgreSQL) .

    Misalnya, Anda dapat menjalankan perintah berikut untuk membuat tabel penempatan nam8placement di partisi instance nam8-partition dengan lokasi pemimpin default yang ditetapkan sebagai us-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');
    

    Opsional: Anda juga dapat menggunakan panel Object Explorer untuk melihat, menelusuri, dan berinteraksi dengan objek Penempatan. Untuk mengetahui informasi selengkapnya, lihat Menjelajahi data.

  7. Klik Run.

gcloud

Untuk membuat penempatan dengan perintah gcloud CLI, gunakan gcloud spanner databases ddl update.

Misalnya, buat tabel penempatan nam8placement di partisi instance nam8-partition dengan lokasi pemimpin default yang ditetapkan sebagai 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')"

Melepas penempatan data

Sebelum melepaskan penempatan, Anda harus menghapus semua data baris dari penempatan. Setelah melakukannya, Anda dapat menggunakan konsol Google Cloud atau gcloud CLI untuk membatalkan penempatan.

Konsol

  1. Di menu navigasi, klik Spanner Studio.
  2. Di halaman Spanner Studio, klik Tab baru atau gunakan tab editor yang kosong.
  3. Masukkan pernyataan DDL DROP PLACEMENT(GoogleSQL, PostgreSQL).

    Misalnya, Anda dapat menjalankan perintah berikut untuk menghapus tabel penempatan europeplacement:

    GoogleSQL

    DROP PLACEMENT europeplacement;
    

    PostgreSQL

    DROP PLACEMENT europeplacement;
    

gcloud

Untuk melepaskan penempatan dengan perintah gcloud CLI, gunakan gcloud spanner databases ddl update.

Misalnya, penempatan drop europeplacement:

gcloud spanner databases ddl update example-db \
  --instance=test-instance \
  --ddl="DROP PLACEMENT europeplacement"

Error penempatan drop

Jika penempatan sedang digunakan, operasi DROP PLACEMENT akan gagal dengan pesan error seperti: "Pernyataan gagal: Penempatan PLACEMENT_NAME tidak dapat dihapus karena sedang digunakan oleh tabel penempatan PLACEMENT_TABLE_NAME". Jika Anda mengalami error ini, lakukan hal berikut:

  1. Ubah aplikasi Anda untuk berhenti menyisipkan atau memperbarui baris dengan penempatan yang ingin Anda hapus.
  2. Salah satu:

    • Pindahkan baris penempatan yang ada yang menggunakan penempatan yang ingin Anda hapus ke penempatan lain dengan pernyataan DML berpartisi seperti berikut:

      UPDATE PLACEMENT_TABLE_NAME SET LOCATION = NEW_PLACEMENT_NAME
      WHERE LOCATION = ORIGINAL_PLACEMENT_NAME;
      
    • Hapus baris penempatan dengan pernyataan DML yang dipartisi seperti berikut:

      DELETE FROM PLACEMENT_TABLE_NAME
      WHERE LOCATION = ORIGINAL_PLACEMENT_NAME;
      

      Pernyataan DML khusus penempatan sebelumnya hanya berfungsi dengan DML yang dipartisi. Pernyataan tersebut akan gagal sebagai pernyataan DML reguler. Untuk mengetahui informasi selengkapnya, lihat Batasan. Anda juga dapat menggunakan mutation API untuk memindahkan atau melepaskan baris penempatan.

Membatalkan operasi DROP PLACEMENT

Anda dapat membatalkan operasi DROP PLACEMENT kapan saja sebelum operasi yang berjalan lama menghapus penempatan sepenuhnya dari skema database. Untuk mengetahui detail tentang cara mendapatkan ID operasi yang berjalan lama untuk memeriksa status, atau untuk membatalkan operasi, lihat Mengelola dan memantau operasi yang berjalan lama.

Membuat tabel dengan kunci penempatan

Konsol

  1. Di menu navigasi, klik Spanner Studio.
  2. Di halaman Spanner Studio, klik Tab baru atau gunakan tab editor yang kosong.
  3. Masukkan pernyataan DDL CREATE TABLE (GoogleSQL, PostgreSQL).

    Misalnya, Anda dapat membuat tabel Singers yang menggunakan kunci penempatan untuk mempartisi data penyanyi:

    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

Untuk membuat tabel, gunakan gcloud spanner databases ddl update.

Misalnya, Anda dapat membuat tabel Singers yang menggunakan kunci penempatan untuk mempartisi data penyanyi:

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

Mengedit tabel dengan kunci penempatan

Anda tidak dapat menghapus kunci penempatan dari tabel. Anda juga tidak dapat menambahkan kunci penempatan ke tabel setelah dibuat. Namun, Anda dapat menggunakan pernyataan DDL ALTER TABLE (GoogleSQL, PostgreSQL) untuk mengubah kolom lain dalam tabel, misalnya, dengan menambahkan dan menghapus kolom kunci non-penempatan.

Menghapus tabel dengan kunci penempatan

Sebelum menghapus tabel dengan kunci penempatan, Anda harus:

  1. Hapus semua baris dalam tabel penempatan.
  2. Tunggu hingga version_retention_period untuk database lulus. Untuk informasi selengkapnya, lihat Pemulihan point-in-time. Kemudian, ikuti langkah-langkah berikut:

Konsol

  1. Di menu navigasi, klik Spanner Studio.
  2. Di halaman Spanner Studio, klik Tab baru atau gunakan tab editor yang kosong.
  3. Masukkan pernyataan DDL DROP TABLE (GoogleSQL, PostgreSQL).

    Misalnya, hapus tabel Singers:

    DROP TABLE Singers;
    

gcloud

Untuk menghapus tabel, gunakan gcloud spanner databases ddl update.

Misalnya, hapus tabel Singers:

gcloud spanner databases ddl update example-db \
  --instance=test-instance \
  --ddl="DROP TABLE Singers"

Menyisipkan baris dalam tabel penempatan

Konsol

  1. Di menu navigasi, klik Spanner Studio.
  2. Di halaman Spanner Studio, klik Tab baru atau gunakan tab editor yang kosong.
  3. Masukkan pernyataan DDL INSERT INTO (GoogleSQL, PostgreSQL).

    Misalnya, tambahkan penyanyi, Marc Richards, ke tabel Singers dan partisikan di europeplacement:

    INSERT INTO Singers(SingerId, SingerName, Location)
    VALUES (1, 'Marc Richards', 'europeplacement')
    

gcloud

Untuk menulis data ke tabel, gunakan gcloud spanner rows insert.

Misalnya, tambahkan penyanyi, Marc Richards, ke tabel Singers dan partisikan di europeplacement:

gcloud spanner rows insert --table=Singers --database=example-db \
  --instance=test-instance --data=SingerId=1,SingerName='Marc Richards',Location='europeplacement'

Memperbarui baris dalam tabel penempatan

Konsol

  1. Di menu navigasi, klik Spanner Studio.
  2. Di halaman Spanner Studio, klik Tab baru atau gunakan tab editor yang kosong.
  3. Gunakan DML atau mutasi untuk memperbarui data dalam tabel penempatan.

    Misalnya, perbarui nama singerid=1 di tabel Singers menjadi Catalina Smith:

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

gcloud

Untuk memperbarui data dalam tabel penempatan, gunakan gcloud spanner rows update.

Misalnya, perbarui nama singerid=1 di tabel Singers menjadi Catalina Smith:

gcloud spanner rows update --table=Singers --database=example-db \
  --instance=test-instance --data=SingerId=1,SingerName='Catalina Smith'

Memindahkan baris dalam tabel penempatan

Konsol

  1. Buat partisi dan penempatan instance baru jika Anda belum melakukannya.
  2. Di menu navigasi, klik Spanner Studio.
  3. Di halaman Spanner Studio, klik Tab baru atau gunakan tab editor yang kosong.
  4. Gunakan DML atau mutasi untuk memindahkan data ke partisi instance baru.

    Misalnya, pindahkan singerid=1 dalam tabel Singers ke asiaplacement:

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

gcloud

Setelah membuat partisi dan penempatan instance tempat Anda ingin memindahkan data, gunakan gcloud spanner rows update.

Misalnya, pindahkan singerid=1 dalam tabel Singers ke asiaplacement:

gcloud spanner rows update --table=Singers --database=example-db \
  --instance=test-instance --data=SingerId=1,Location='asiaplacement'

Menghapus baris dalam tabel penempatan

Konsol

  1. Di menu navigasi, klik Spanner Studio.
  2. Di halaman Spanner Studio, klik Tab baru atau gunakan tab editor yang kosong.
  3. Gunakan DML atau mutasi untuk menghapus data.

    Misalnya, hapus singerid=1 di tabel Singers:

    DELETE FROM Singers s
    WHERE s.id=1;
    

gcloud

Untuk menghapus data, gunakan gcloud spanner rows delete.

Misalnya, hapus singerid=1 di tabel Singers:

gcloud spanner rows delete --table=Singers --database=example-db \
  --instance=test-instance --keys=1

Membuat kueri data dalam tabel penempatan

Konsol

  1. Di menu navigasi, klik Spanner Studio.
  2. Di halaman Spanner Studio, klik Tab baru atau gunakan tab editor yang kosong.
  3. Jalankan kueri Anda.

    Misalnya, buat kueri tabel Singers:

    SELECT * FROM Singers s WHERE s.SingerId=1;
    

gcloud

Untuk membuat kueri data, gunakan gcloud spanner databases execute-sql.

Misalnya, buat kueri tabel Singers:

gcloud spanner databases execute-sql example-db \
  --instance=test-instance \
  --sql='SELECT * FROM Singers s WHERE s.SingerId=1'

Langkah berikutnya