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
Buka halaman Instances di konsol Google Cloud .
Pilih instance dengan partisi instance yang dibuat pengguna.
Pilih database yang datanya ingin Anda partisi.
Di menu navigasi, klik Spanner Studio.
Di halaman Spanner Studio, klik
Tab baru atau gunakan tab editor yang kosong.Masukkan pernyataan DDL
CREATE PLACEMENT
(GoogleSQL, PostgreSQL) .Misalnya, Anda dapat menjalankan perintah berikut untuk membuat tabel penempatan
europeplacement
di partisi instanceeurope-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.
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
Buka halaman Instances di konsol Google Cloud .
Pilih instance dengan partisi instance yang dibuat pengguna.
Pilih database yang datanya ingin Anda partisi.
Di menu navigasi, klik Spanner Studio.
Di halaman Spanner Studio, klik
Tab baru atau gunakan tab editor yang kosong.Masukkan pernyataan DDL
CREATE PLACEMENT
(GoogleSQL, PostgreSQL) .Misalnya, Anda dapat menjalankan perintah berikut untuk membuat tabel penempatan
nam8placement
di partisi instancenam8-partition
dengan lokasi pemimpin default yang ditetapkan sebagaius-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.
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
- Di menu navigasi, klik Spanner Studio.
- Di halaman Spanner Studio, klik Tab baru atau gunakan tab editor yang kosong.
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:
- Ubah aplikasi Anda untuk berhenti menyisipkan atau memperbarui baris dengan penempatan yang ingin Anda hapus.
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
- Di menu navigasi, klik Spanner Studio.
- Di halaman Spanner Studio, klik Tab baru atau gunakan tab editor yang kosong.
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:
- Hapus semua baris dalam tabel penempatan.
- Tunggu hingga
version_retention_period
untuk database lulus. Untuk informasi selengkapnya, lihat Pemulihan point-in-time. Kemudian, ikuti langkah-langkah berikut:
Konsol
- Di menu navigasi, klik Spanner Studio.
- Di halaman Spanner Studio, klik Tab baru atau gunakan tab editor yang kosong.
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
- Di menu navigasi, klik Spanner Studio.
- Di halaman Spanner Studio, klik Tab baru atau gunakan tab editor yang kosong.
Masukkan pernyataan DDL
INSERT INTO
(GoogleSQL, PostgreSQL).Misalnya, tambahkan penyanyi, Marc Richards, ke tabel
Singers
dan partisikan dieuropeplacement
: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
- Di menu navigasi, klik Spanner Studio.
- Di halaman Spanner Studio, klik Tab baru atau gunakan tab editor yang kosong.
Gunakan DML atau mutasi untuk memperbarui data dalam tabel penempatan.
Misalnya, perbarui nama
singerid=1
di tabelSingers
menjadiCatalina 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
- Buat partisi dan penempatan instance baru jika Anda belum melakukannya.
- Di menu navigasi, klik Spanner Studio.
- Di halaman Spanner Studio, klik Tab baru atau gunakan tab editor yang kosong.
Gunakan DML atau mutasi untuk memindahkan data ke partisi instance baru.
Misalnya, pindahkan
singerid=1
dalam tabelSingers
keasiaplacement
: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
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
- Di menu navigasi, klik Spanner Studio.
- Di halaman Spanner Studio, klik Tab baru atau gunakan tab editor yang kosong.
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
Pelajari lebih lanjut partisi geografis.
Pelajari cara membuat dan mengelola partisi instance.