Halaman ini menjelaskan cara membuat dan mengelola database Spanner:
- Berbagai metode untuk membuat database
- Mengubah opsi database
- Menghapus database
Halaman ini berisi informasi untuk database dialek GoogleSQL dan database dialek PostgreSQL. Untuk mempelajari cara memperbarui skema database, lihat Membuat pembaruan skema. Untuk mengetahui informasi selengkapnya tentang cara membuat instance, lihat Membuat dan mengelola instance. Anda dapat membuat database dalam instance yang ada dengan salah satu cara berikut:
- Membuat database: Anda dapat membuat database baru dengan memilih dialek SQL dan menentukan skema Anda.
- Mengimpor data Anda sendiri: Anda dapat mengimpor file dump CSV, MySQL, atau PostgreSQL ke database baru atau yang sudah ada.
- Mengimpor database Cloud SQL: Anda dapat mengimpor database Cloud SQL untuk MySQL ke Spanner.
- Membuat database dengan data sampel: Anda dapat mengisi database menggunakan salah satu set data sampel yang tersedia untuk mencoba kemampuan Spanner.
Buat database
Anda dapat membuat database baru di instance yang sudah ada. Untuk database dialek GoogleSQL, Anda dapat menentukan skema database pada saat pembuatan database, atau setelah database dibuat. Untuk database dialek PostgreSQL, Anda harus menentukan skema setelah pembuatan.
Skema ditentukan menggunakan Database Definition Language, yang didokumentasikan untuk GoogleSQL dan PostgreSQL. Lihat link berikut untuk mengetahui informasi selengkapnya tentang cara membuat dan memperbarui skema:
Setelah membuat database, Anda dapat mengamankan database yang penting untuk aplikasi dan layanan Anda dengan mengaktifkan proteksi dari penghapusan database. Untuk mengetahui informasi selengkapnya, lihat Mencegah penghapusan database yang tidak disengaja.
Konsol Google Cloud
Di konsol Google Cloud , buka halaman Spanner instances.
Pilih instance untuk membuat database.
Klik Create database.
Masukkan nilai berikut:
- Nama database yang akan ditampilkan di konsol Google Cloud .
- Dialek yang akan digunakan untuk database ini.
- Untuk database dialek GoogleSQL, Anda dapat memberikan serangkaian pernyataan DDL yang menentukan skema Anda. Gunakan template DDL untuk mengisi otomatis elemen umum. Jika ada error dalam pernyataan DDL, konsol Google Cloud akan menampilkan error saat Anda mencoba membuat database.
- Atau, pilih kunci enkripsi yang dikelola pelanggan untuk digunakan pada database ini.
Klik Create untuk membuat database.
gcloud
Gunakan perintah gcloud spanner databases create.
```sh
gcloud spanner databases create DATABASE \
--instance=INSTANCE \
[--async] \
[--database-dialect=DATABASE_DIALECT] \
[--ddl=DDL] \
[--ddl-file=DDL_FILE] \
[--kms-key=KMS_KEY : --kms-keyring=KMS_KEYRING --kms-location=KMS_LOCATION --kms-project=KMS_PROJECT] \
[GCLOUD_WIDE_FLAG …]
```
Opsi berikut diperlukan:
DATABASE- ID database atau ID yang sepenuhnya memenuhi syarat untuk database. Jika menentukan ID yang sepenuhnya memenuhi syarat, flag
--instancedapat dihilangkan. --instance=INSTANCE- Instance Spanner untuk database.
Opsi berikut bersifat opsional:
--async- Tampilkan segera, tanpa menunggu operasi yang sedang berlangsung selesai.
--database-dialect=DATABASE_DIALECT- Dialek SQL Database Spanner. Harus berupa salah satu dari:
POSTGRESQL,GOOGLE_STANDARD_SQL. --ddl=DDL- Pernyataan DDL (bahasa definisi data) yang dipisahkan titik koma untuk dijalankan
di dalam database yang baru dibuat. Jika terjadi error dalam pernyataan apa pun, database tidak akan dibuat. Flag ini diabaikan jika
--ddl_fileditetapkan. Tidak didukung oleh database dialek PostgreSQL. --ddl-file=DDL_FILE- Jalur file yang berisi pernyataan DDL (bahasa definisi data) yang dipisahkan titik koma untuk dijalankan di dalam database yang baru dibuat. Jika ada error dalam pernyataan apa pun, database tidak akan dibuat. Jika
--ddl_fileditetapkan,--ddlakan diabaikan. Tidak didukung oleh database dialek PostgreSQL.
Jika Anda menentukan kunci Cloud Key Management Service yang akan digunakan saat membuat database, sertakan opsi berikut:
--kms-key=KMS_KEY- ID kunci atau ID yang sepenuhnya memenuhi syarat untuk kunci.
Flag ini harus ditentukan jika ada argumen lain dalam grup ini yang ditentukan. Argumen lainnya dapat dihilangkan jika ID yang sepenuhnya memenuhi syarat diberikan.
--kms-keyring=KMS_KEYRING- ID key ring Cloud KMS dari kunci.
--kms-location=KMS_LOCATION- Google Cloud lokasi untuk kunci.
--kms-project=KMS_PROJECT- Google Cloud project ID untuk kunci.
Klien (GoogleSQL)
C++
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk melakukan autentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk melakukan autentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk melakukan autentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk melakukan autentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk melakukan autentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk melakukan autentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Ruby
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk melakukan autentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Klien (PostgreSQL)
C++
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk melakukan autentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk melakukan autentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk melakukan autentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk melakukan autentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk melakukan autentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk melakukan autentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Ruby
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk melakukan autentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Impor data Anda sendiri
Anda dapat mengimpor data Anda sendiri ke database Spanner menggunakan file CSV, file dump MySQL, atau file dump PostgreSQL. Anda dapat mengupload file lokal menggunakan Cloud Storage atau langsung dari bucket Cloud Storage. Mengupload file lokal menggunakan Cloud Storage mungkin akan dikenai biaya.
Jika memilih untuk menggunakan file CSV, Anda juga harus mengupload file JSON terpisah yang berisi skema database.
Konsol Google Cloud
Di konsol Google Cloud , buka halaman Spanner Instances.
Pilih instance untuk membuat database.
Klik Impor data saya sendiri.
Masukkan nilai berikut:
Pilih jenis file.
Upload file dari komputer Anda atau pilih jalur bucket Cloud Storage ke file tersebut.
(Opsional) Jika memilih untuk menggunakan file CSV, Anda juga harus mengupload file JSON terpisah yang berisi skema database. File JSON harus menggunakan struktur berikut untuk menentukan skema:
{ "name": "COLUMN_NAME", "type": "TYPE", "notNull": NOT_NULL_VALUE, "primaryKeyOrder": PRIMARY_KEY_ORDER }
Ganti kode berikut:
COLUMN_NAME: nama kolom dalam tabel.
TYPE: jenis data kolom.
(Opsional) NOT_NULL_VALUE: apakah kolom dapat menyimpan nilai null atau tidak. Input yang valid adalah
trueataufalse. Setelan defaultnya adalahfalse.(Opsional): PRIMARY_KEY_ORDER: menentukan urutan kunci utama. Tetapkan nilai ke
0untuk kolom kunci non-utama. Tetapkan nilai ke bilangan bulat, misalnya,1untuk kolom kunci utama. Kolom dengan nomor lebih rendah muncul lebih awal dalam kunci utama gabungan.
File CSV mengharapkan koma untuk pembatas kolom dan baris baru untuk pembatas baris secara default. Untuk mengetahui informasi selengkapnya tentang penggunaan pembatas kustom, lihat referensi
gcloud alpha spanner databases import.Pilih database baru atau yang sudah ada sebagai tujuan.
Klik Import.
Spanner akan membuka Cloud Shell dan mengisi perintah yang menginstal alat migrasi Spanner dan menjalankan perintah
gcloud alpha spanner databases import. Tekan tombolENTERuntuk mengimpor data ke database Anda.x
Mengimpor database dari Cloud SQL
Jika Anda menggunakan Cloud SQL untuk MySQL dan ingin mengevaluasi Spanner, Anda dapat mengimpor data dari instance Cloud SQL untuk MySQL ke Spanner. Fitur ini mengonversi skema MySQL dan membuat skema Spanner yang sesuai. Kemudian, alat ini akan memuat data dari database Cloud SQL untuk MySQL ke Spanner.
Fungsi ini hanya melakukan pemuatan data massal satu kali. Template ini tidak mendukung pengambilan perubahan data langsung atau penggantian dari Spanner ke database sumber Anda.
Untuk mengetahui informasi selengkapnya, lihat Mengimpor dari Cloud SQL ke Spanner.
Menggunakan set data sampel
Untuk mempelajari Spanner Graph, penelusuran vektor, atau model relasional, Anda dapat membuat database baru yang telah diisi otomatis dengan set data contoh. Set data sampel yang tersedia bergantung pada dialek database yang dipilih (GoogleSQL atau PostgreSQL).
Di konsol Google Cloud , buka halaman Spanner instances.
Pilih instance untuk membuat database.
Klik Explore datasets.
Pilih set data, bergantung pada dialek database Anda:
GoogleSQL
- Finance graph: gunakan set data ini untuk mempelajari fitur database relasional dan grafik Spanner.
- Perbankan online: gunakan set data ini untuk mempelajari fitur penelusuran teks lengkap dan penelusuran vektor Spanner.
- Game online: gunakan set data ini untuk mempelajari fitur database relasional Spanner.
- Retail: gunakan set data ini untuk mempelajari fitur grafik, penelusuran teks lengkap, dan penelusuran vektor Spanner.
PostgreSQL
- Perbankan online: gunakan set data ini untuk mempelajari fitur penelusuran teks lengkap Spanner.
- Game online: gunakan set data ini untuk mempelajari fitur database relasional Spanner.
- Retail: gunakan set data ini untuk mempelajari fitur penelusuran teks lengkap dan penelusuran vektor Spanner.
Klik Create database.
Memperbarui skema atau opsi database
Anda dapat memperbarui skema dan opsi database menggunakan pernyataan DDL.
Misalnya, untuk menambahkan kolom ke tabel, gunakan pernyataan DDL berikut:
GoogleSQL
ALTER TABLE Songwriters ADD COLUMN Publisher STRING(10);
PostgreSQL
ALTER TABLE Songwriters ADD COLUMN Publisher VARCHAR(10);
Untuk mengupdate versi pengoptimal kueri, gunakan pernyataan DDL berikut:
GoogleSQL
ALTER DATABASE Music SET OPTIONS(optimizer_version=null);
PostgreSQL
ALTER DATABASE DB-NAME SET spanner.optimizer_version TO DEFAULT;
Untuk mengetahui informasi selengkapnya tentang opsi yang didukung, lihat referensi DDL ALTER DATABASE untuk GoogleSQL atau PostgreSQL.
Untuk mengetahui informasi tentang update skema, lihat Membuat update skema.
Konsol Google Cloud
Di konsol Google Cloud , buka halaman Spanner instances.
Pilih instance yang berisi database yang akan diubah.
Pilih database.
Klik Spanner Studio.
Klik New tab atau gunakan tab editor kosong. Kemudian, masukkan pernyataan DDL yang akan diterapkan.
Klik Run untuk menerapkan update. Jika ada error dalam DDL Anda, konsol Google Cloud akan menampilkan error dan database tidak akan diubah.
gcloud
Untuk mengubah database dengan alat command line gcloud, gunakan
gcloud spanner databases ddl update.
gcloud spanner databases ddl update \ (DATABASE : --instance=INSTANCE) \ [--async] \ [--ddl=DDL] \ [--ddl-file=DDL_FILE] \
Lihat referensi gcloud untuk mengetahui detail tentang opsi yang tersedia.
Teruskan update database ke perintah dengan flag --ddl, atau flag --ddl-file. Jika file DDL ditentukan, flag --ddl akan diabaikan.
Lihat referensi DDL ALTER DATABASE
untuk GoogleSQL atau
PostgreSQL untuk pernyataan DDL yang akan disertakan.
DDL
Lihat referensi DDL ALTER DATABASE
untuk GoogleSQL atau
PostgreSQL untuk mengetahui detailnya.
Memeriksa progres operasi update skema
Untuk memeriksa progres operasi update skema, pilih salah satu metode berikut:
Konsol Google Cloud
Di menu navigasi Spanner, pilih tab Operations. Halaman Operations menampilkan daftar operasi yang sedang berjalan.
Temukan operasi skema dalam daftar. Jika masih berjalan, status progres di kolom End time akan menampilkan persentase operasi yang telah selesai, seperti yang ditunjukkan pada gambar berikut:

gcloud
Gunakan gcloud spanner operations describe
untuk memeriksa progres operasi.
Dapatkan ID operasi:
gcloud spanner operations list --instance=INSTANCE-NAME \ --database=DATABASE-NAME --type=DATABASE_UPDATE_DDL
Ganti kode berikut:
- INSTANCE-NAME dengan nama instance Spanner.
- DATABASE-NAME dengan nama database.
Jalankan
gcloud spanner operations describe:gcloud spanner operations describe OPERATION_ID\ --instance=INSTANCE-NAME \ --database=DATABASE-NAME
Ganti kode berikut:
- OPERATION-ID: ID operasi dari operasi yang ingin Anda periksa.
- INSTANCE-NAME: Nama instance Spanner.
- DATABASE-NAME: Nama database Spanner.
Bagian
progressdalam output menunjukkan persentase operasi yang telah selesai. Outputnya akan terlihat mirip seperti berikut:done: true metadata: ... progress: - endTime: '2022-03-01T00:28:06.691403Z' progressPercent: 100 startTime: '2022-03-01T00:28:04.221401Z' - endTime: '2022-03-01T00:28:17.624588Z' startTime: '2022-03-01T00:28:06.691403Z' progressPercent: 100 ...
REST v1
Dapatkan ID operasi:
gcloud spanner operations list --instance=INSTANCE-NAME \ --database=DATABASE-NAME --type=DATABASE_UPDATE_DDL
Ganti kode berikut:
- INSTANCE-NAME dengan nama instance Spanner.
- DATABASE-NAME dengan nama database.
Periksa progres operasi.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT-ID: project ID.
- INSTANCE-ID: ID instance.
- DATABASE-ID: ID database.
- OPERATION-ID: ID operasi.
Metode HTTP dan URL:
GET https://spanner.googleapis.com/v1/projects/PROJECT-ID/instances/INSTANCE-ID/databases/DATABASE-ID/operations/OPERATION-ID
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ ... "progress": [ { "progressPercent": 100, "startTime": "2023-05-27T00:52:27.366688Z", "endTime": "2023-05-27T00:52:30.184845Z" }, { "progressPercent": 100, "startTime": "2023-05-27T00:52:30.184845Z", "endTime": "2023-05-27T00:52:40.750959Z" } ], ... "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
Jika operasi memerlukan waktu terlalu lama, Anda dapat membatalkannya. Untuk mengetahui informasi selengkapnya, lihat Membatalkan operasi database yang berjalan lama.
Spanner juga otomatis mendeteksi peluang untuk menerapkan praktik terbaik desain skema. Jika rekomendasi tersedia untuk database, Anda dapat melihatnya di halaman Spanner Studio untuk database tersebut. Untuk mengetahui informasi selengkapnya, lihat Melihat rekomendasi praktik terbaik desain skema.
Menghapus database
Menghapus database secara permanen akan menghapus database tersebut dan semua datanya. Penghapusan database tidak dapat diurungkan. Jika proteksi dari penghapusan database diaktifkan pada database, Anda tidak dapat menghapus database tersebut hingga Anda menonaktifkan proteksi dari penghapusannya.
Cadangan yang ada tidak akan dihapus saat database dihapus. Untuk mengetahui informasi selengkapnya, lihat Pencadangan dan pemulihan.
Konsol Google Cloud
Di konsol Google Cloud , buka halaman Spanner instances.
Pilih instance yang berisi database yang akan dihapus.
Pilih database.
Klik Delete database. Konfirmasi akan muncul.
Ketik nama database, lalu klik Delete.
gcloud
Untuk menghapus database dengan alat command line gcloud, gunakan
gcloud spanner databases delete.
gcloud spanner databases delete \ (DATABASE : --instance=INSTANCE)
Opsi berikut diperlukan:
DATABASE- ID database atau ID yang sepenuhnya memenuhi syarat untuk database. Jika
ID yang sepenuhnya memenuhi syarat diberikan, flag
--instanceharus dihilangkan. --instance=INSTANCE- Instance Spanner untuk database.
Untuk mengetahui detail selengkapnya, lihat
referensi gcloud.
DDL
DDL tidak mendukung sintaksis penghapusan database.
Langkah berikutnya
- Membuat database dan memuatnya dengan data sampel.
- Pelajari lebih lanjut referensi DDL GoogleSQL.
- Pelajari lebih lanjut referensi DDL PostgreSQL.
- Pelajari cara mencadangkan dan memulihkan database.
- Pelajari cara mencegah penghapusan database secara tidak sengaja.
- Pelajari cara membuat pembaruan skema.