Halaman ini menjelaskan cara membuat dan mengelola database Spanner:
- Berbagai metode untuk membuat database
- Mengubah opsi database
- Menghapus database
Halaman ini memiliki 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 di 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 CSV, dump MySQL, atau dump PostgreSQL ke database baru atau yang sudah ada.
- Membuat database dengan data contoh: Anda dapat mengisi database menggunakan salah satu set data contoh 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 baik pada saat pembuatan database, atau setelah database dibuat. Untuk database dialek PostgreSQL, Anda harus menentukan skema setelah pembuatan.
Skema ditentukan menggunakan Bahasa Definisi Database, yang didokumentasikan untuk GoogleSQL dan PostgreSQL. Buka 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 perlindungan penghapusan database. Untuk mengetahui informasi selengkapnya, lihat Mencegah penghapusan database secara tidak sengaja.
Google Cloud console
Di konsol Google Cloud , buka halaman Spanner Instances.
Pilih instance untuk membuat database.
Klik Buat database.
Masukkan nilai berikut:
- Nama database untuk 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.
- Secara opsional, pilih kunci enkripsi yang dikelola pelanggan untuk digunakan bagi database ini.
Klik Buat 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, tanda
--instance
dapat dihilangkan. --instance=INSTANCE
- Instance Spanner untuk database.
Opsi berikut bersifat opsional:
--async
- Segera ditampilkan, tanpa menunggu operasi yang sedang berlangsung selesai.
--database-dialect=DATABASE_DIALECT
- Dialek SQL Database Spanner. Harus
salah satu dari:
POSTGRESQL
,GOOGLE_STANDARD_SQL
. --ddl=DDL
- Pernyataan DDL (bahasa definisi data) yang dipisahkan dengan titik koma untuk dijalankan
di dalam database yang baru dibuat. Jika ada error dalam pernyataan apa pun, database tidak akan dibuat. Flag ini diabaikan jika
--ddl_file
ditetapkan. 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 dibuat. Jika
--ddl_file
ditetapkan,--ddl
akan 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 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.
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 dapat menimbulkan biaya.
Jika memilih untuk menggunakan file CSV, Anda juga perlu mengupload file JSON terpisah yang berisi skema database.
Google Cloud console
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.
(Opsional) Jika memilih untuk menggunakan file CSV, Anda juga perlu 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
true
ataufalse
. Setelan defaultnya adalahfalse
.(Opsional): PRIMARY_KEY_ORDER: menentukan urutan kunci utama. Nilai ditetapkan ke
0
untuk kolom kunci non-primer. Tetapkan nilai ke bilangan bulat, misalnya,1
untuk kolom kunci primer. Kolom bernomor lebih rendah muncul lebih awal dalam kunci primer gabungan.
File CSV secara default mengharapkan koma untuk pembatas kolom dan baris baru untuk pembatas baris. 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 tombolENTER
untuk mengimpor data ke database Anda.x
Menggunakan set data sampel
Anda dapat mengisi database baru dalam instance yang ada dari set data sampel yang membantu Anda menjelajahi kemampuan Spanner seperti model relasional, penelusuran teks lengkap, atau penelusuran vektor.
Google Cloud console
Di konsol Google Cloud , buka halaman Spanner Instances.
Pilih instance untuk membuat database.
Klik Jelajahi set data.
Pilih salah satu set data berikut:
- Grafik keuangan: gunakan set data ini untuk mempelajari fitur grafik Spanner.
- 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 grafik dan penelusuran teks lengkap Spanner.
Klik Buat 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 pembaruan skema, lihat Membuat pembaruan skema.
Google Cloud console
Di konsol Google Cloud , buka halaman Spanner Instances.
Pilih instance yang berisi database yang akan diubah.
Pilih database.
Klik Spanner Studio.
Klik
Tab baru atau gunakan tab editor yang kosong. Kemudian, masukkan pernyataan DDL yang akan diterapkan.Klik Jalankan untuk menerapkan update. Jika ada error dalam DDL Anda, konsol Google Cloud akan menampilkan error dan database tidak 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 pembaruan database ke perintah dengan flag --ddl
, atau flag
--ddl-file
. Jika file DDL ditentukan, tanda --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
Google Cloud console
Di menu navigasi Spanner, pilih tab Operations. Halaman Operasi menampilkan daftar operasi aktif yang sedang berjalan.
Temukan operasi skema dalam daftar. Jika masih berjalan, status progres di kolom Waktu berakhir menunjukkan 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 yang ingin Anda periksa.
- INSTANCE-NAME: Nama instance Spanner.
- DATABASE-NAME: Nama database Spanner.
Bagian
progress
dalam output menunjukkan persentase operasi yang telah selesai. Outputnya terlihat mirip dengan yang berikut ini: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, 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 membutuhkan waktu terlalu lama, Anda dapat membatalkannya. Untuk mengetahui informasi selengkapnya, lihat Membatalkan operasi database yang berjalan lama.
Menghapus database
Menghapus database secara permanen akan menghapus database tersebut dan semua datanya. Penghapusan database tidak dapat diurungkan. Jika perlindungan penghapusan database diaktifkan pada database, Anda tidak dapat menghapus database tersebut hingga Anda menonaktifkan perlindungan penghapusannya.
Cadangan yang ada tidak dihapus saat database dihapus. Untuk mengetahui informasi selengkapnya, lihat Mencadangkan dan memulihkan.
Google Cloud console
Di konsol Google Cloud , buka halaman Spanner Instances.
Pilih instance yang berisi database yang akan dihapus.
Pilih database.
Klik Hapus database. Konfirmasi akan muncul.
Ketik nama database, lalu klik Hapus.
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, tanda
--instance
harus dihapus. --instance=INSTANCE
- Instance Spanner untuk database.
Untuk mengetahui detail selengkapnya, lihat
referensi gcloud
.
DDL
DDL tidak mendukung sintaksis penghapusan database.
Langkah berikutnya
- Buat database dan muat 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.