Memulai Spanner menggunakan REST


Tujuan

Tutorial ini memandu Anda melakukan langkah-langkah berikut menggunakan Cloud Spanner API dengan REST:

  • Membuat instance dan database Spanner.
  • Menulis, membaca, dan menjalankan kueri SQL pada data dalam database.
  • Perbarui skema database.
  • Tambahkan indeks sekunder ke database.
  • Menggunakan indeks untuk membaca dan mengeksekusi kueri SQL pada data.
  • Mengambil data menggunakan transaksi hanya baca.

Jika Anda ingin menggunakan library klien Spanner dan bukan REST API, lihat Tutorial.

Biaya

Tutorial ini menggunakan Spanner, yang merupakan komponen Google Cloud yang dapat ditagih. Untuk mengetahui informasi tentang biaya penggunaan Spanner, lihat Harga.

Sebelum memulai

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  5. Make sure that billing is enabled for your Google Cloud project.

Cara melakukan panggilan REST

Anda dapat melakukan panggilan REST Spanner menggunakan:

Konvensi yang digunakan di halaman ini

  • Contoh tersebut menggunakan [PROJECT_ID] sebagai project ID Google Cloud. Ganti ID project Google Cloud Anda untuk [PROJECT_ID]. (Jangan sertakan [ dan ] dalam project ID Anda.)

  • Contoh tersebut membuat dan menggunakan ID instance test-instance. Ganti ID instance jika Anda tidak menggunakan test-instance.

  • Contoh tersebut membuat dan menggunakan ID database example-db. Ganti ID database jika Anda tidak menggunakan example-db.

  • Contoh ini menggunakan [SESSION] sebagai bagian dari nama sesi. Ganti nilai yang Anda terima saat membuat sesi untuk [SESSION]. (Jangan sertakan [ dan ] dalam nama sesi Anda.)

  • Contoh menggunakan ID transaksi [TRANSACTION_ID]. Ganti nilai yang Anda terima saat membuat transaksi untuk [TRANSACTION_ID]. (Jangan sertakan [ dan ] dalam ID transaksi Anda.)

  • Fungsi Try-It! mendukung penambahan kolom permintaan HTTP satu per satu secara interaktif. Sebagian besar contoh dalam topik ini menyediakan keseluruhan permintaan, bukan menjelaskan cara menambahkan masing-masing kolom secara interaktif ke permintaan.

Instance

Saat pertama kali menggunakan Spanner, Anda harus membuat instance, yang merupakan alokasi resource yang digunakan oleh database Spanner. Saat membuat instance, Anda memilih tempat data disimpan dan berapa banyak kapasitas komputasi yang dimiliki instance.

Mencantumkan konfigurasi instance

Saat membuat instance, Anda menentukan konfigurasi instance, yang menentukan penempatan geografis dan replikasi database Anda dalam instance tersebut. Anda dapat memilih konfigurasi regional, yang menyimpan data di satu region, atau konfigurasi multi-region, yang mendistribusikan data di beberapa region. Pelajari lebih lanjut di Instance.

Gunakan projects.instanceConfigs.list untuk menentukan konfigurasi yang tersedia untuk project Google Cloud Anda.

  1. Klik projects.instanceConfigs.list.
  2. Untuk parent, masukkan:

    projects/[PROJECT_ID]
    
  3. Klik Jalankan. Konfigurasi instance yang tersedia ditampilkan dalam respons. Berikut ini contoh respons (project Anda mungkin memiliki konfigurasi instance yang berbeda):

    {
      "instanceConfigs": [
        {
          "name": "projects/[PROJECT_ID]/instanceConfigs/regional-asia-south1",
          "displayName": "asia-south1"
        },
        {
          "name": "projects/[PROJECT_ID]/instanceConfigs/regional-asia-east1",
          "displayName": "asia-east1"
        },
        {
          "name": "projects/[PROJECT_ID]/instanceConfigs/regional-asia-northeast1",
          "displayName": "asia-northeast1"
        },
        {
          "name": "projects/[PROJECT_ID]/instanceConfigs/regional-europe-west1",
          "displayName": "europe-west1"
        },
        {
          "name": "projects/[PROJECT_ID]/instanceConfigs/regional-us-east4",
          "displayName": "us-east4"
        },
        {
          "name": "projects/[PROJECT_ID]/instanceConfigs/regional-us-central1",
          "displayName": "us-central1"
        }
      ]
    }
    

Anda menggunakan nilai name untuk salah satu konfigurasi instance saat membuat instance.

Membuat instance

  1. Klik projects.instances.create.
  2. Untuk parent, masukkan:

    projects/[PROJECT_ID]
    
  3. Klik Tambahkan parameter isi permintaan, lalu pilih instance.

  4. Klik balon petunjuk untuk instance guna melihat kemungkinan kolom. Tambahkan nilai untuk kolom berikut:

    1. nodeCount: Masukkan 1.
    2. config: Masukkan nilai name dari salah satu konfigurasi instance regional yang ditampilkan saat Anda mencantumkan konfigurasi instance.
    3. displayName: Masukkan Test Instance.
  5. Klik balon petunjuk yang mengikuti tanda kurung tutup untuk instance lalu pilih instanceId.

  6. Untuk instanceId, masukkan test-instance.
    Halaman pembuatan instance Coba! sekarang akan terlihat seperti ini:

    Screenshot pembuatan instance

  7. Klik Jalankan. Respons menampilkan operasi yang berjalan lama yang dapat Anda kueri untuk memeriksa statusnya.

Anda dapat mencantumkan instance menggunakan projects.instances.list.

Buat database

Buat database bernama example-db.

  1. Klik projects.instances.databases.create.
  2. Untuk parent, masukkan:

    projects/[PROJECT_ID]/instances/test-instance
    
  3. Klik Tambahkan parameter isi permintaan, lalu pilih createStatement.

  4. Untuk createStatement, masukkan:

    CREATE DATABASE `example-db`
    

    (Nama database, example-db, berisi tanda hubung, sehingga harus diapit dengan tanda kutip tunggal (`).

  5. Klik Jalankan. Respons menampilkan operasi yang berjalan lama yang dapat Anda kueri untuk memeriksa statusnya.

Anda dapat mencantumkan database menggunakan projects.instances.databases.list.

Membuat skema

Gunakan Data Definition Language (DDL) Spanner untuk membuat, mengubah, atau menghapus tabel, dan untuk membuat atau menghapus indeks.

  1. Klik projects.instances.databases.updateDdl.
  2. Untuk database, masukkan:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db
    
  3. Untuk Isi permintaan, gunakan parameter berikut:

    {
      "statements": [
        "CREATE TABLE Singers ( SingerId INT64 NOT NULL, FirstName STRING(1024), LastName STRING(1024), SingerInfo BYTES(MAX) ) PRIMARY KEY (SingerId)",
        "CREATE TABLE Albums ( SingerId INT64 NOT NULL, AlbumId INT64 NOT NULL, AlbumTitle STRING(MAX)) PRIMARY KEY (SingerId, AlbumId), INTERLEAVE IN PARENT Singers ON DELETE CASCADE"
      ]
    }
    

    Array statements berisi pernyataan DDL yang menentukan skema.

  4. Klik Jalankan. Respons menampilkan operasi yang berjalan lama yang dapat Anda kueri untuk memeriksa statusnya.

Skema ini menentukan dua tabel, Singers dan Albums, untuk aplikasi musik dasar. Tabel tersebut digunakan di seluruh halaman ini. Lihat skema contoh jika Anda belum melakukannya.

Anda dapat mengambil skema menggunakan projects.instances.databases.getDdl.

Membuat sesi

Agar dapat menambahkan, memperbarui, menghapus, atau membuat kueri data, Anda harus membuat sesi, yang mewakili saluran komunikasi dengan layanan database Spanner. (Anda tidak menggunakan sesi secara langsung jika menggunakan library klien Spanner, karena library klien mengelola sesi untuk Anda.)

  1. Klik projects.instances.databases.sessions.create.
  2. Untuk database, masukkan:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db
    
  3. Klik Jalankan.

  4. Respons akan menampilkan sesi yang Anda buat, dalam bentuk

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/sessions/[SESSION]
    

    Anda akan menggunakan sesi ini saat membaca atau menulis ke database.

Sesi dimaksudkan untuk berlangsung lama. Layanan database Spanner dapat menghapus sesi jika sesi tidak ada aktivitas selama lebih dari satu jam. Upaya untuk menggunakan hasil sesi yang dihapus akan menghasilkan NOT_FOUND. Jika Anda mengalami error ini, buat dan gunakan sesi baru. Anda dapat melihat apakah sesi masih aktif menggunakan projects.instances.databases.sessions.get. Untuk informasi terkait, lihat Membuat sesi tidak ada aktivitas tetap aktif.

Langkah selanjutnya adalah menulis data ke database Anda.

Menulis data

Anda menulis data menggunakan jenis Mutation. Mutation adalah penampung untuk operasi mutasi. Mutation mewakili urutan penyisipan, pembaruan, penghapusan, dan tindakan lainnya yang dapat diterapkan secara atomik ke berbagai baris dan tabel di database Spanner.

  1. Klik projects.instances.databases.sessions.commit.
  2. Untuk sesi, masukkan:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/sessions/[SESSION]
    

    (Anda menerima nilai ini saat membuat sesi.)

  3. Untuk Isi permintaan, gunakan parameter berikut:

    {
      "singleUseTransaction": {
        "readWrite": {}
      },
      "mutations": [
        {
          "insertOrUpdate": {
            "table": "Singers",
            "columns": [
              "SingerId",
              "FirstName",
              "LastName"
            ],
            "values": [
              [
                "1",
                "Marc",
                "Richards"
              ],
              [
                "2",
                "Catalina",
                "Smith"
              ],
              [
                "3",
                "Alice",
                "Trentor"
              ],
              [
                "4",
                "Lea",
                "Martin"
              ],
              [
                "5",
                "David",
                "Lomond"
              ]
            ]
          }
        },
        {
          "insertOrUpdate": {
            "table": "Albums",
            "columns": [
              "SingerId",
              "AlbumId",
              "AlbumTitle"
            ],
            "values": [
              [
                "1",
                "1",
                "Total Junk"
              ],
              [
                "1",
                "2",
                "Go, Go, Go"
              ],
              [
                "2",
                "1",
                "Green"
              ],
              [
                "2",
                "2",
                "Forever Hold Your Peace"
              ],
              [
                "2",
                "3",
                "Terrified"
              ]
            ]
          }
        }
      ]
    }
    
  4. Klik Jalankan. Respons menunjukkan stempel waktu commit.

Contoh ini menggunakan insertOrUpdate. operations lainnya untuk Mutations adalah insert, update, replace, dan delete.

Untuk informasi tentang cara mengenkode jenis data, lihat TypeCode.

Membuat kueri data menggunakan SQL

  1. Klik projects.instances.databases.sessions.executeSql.
  2. Untuk sesi, masukkan:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/sessions/[SESSION]
    

    (Anda menerima nilai ini saat membuat sesi.)

  3. Untuk Isi permintaan, gunakan parameter berikut:

    {
      "sql": "SELECT SingerId, AlbumId, AlbumTitle FROM Albums"
    }
    
  4. Klik Jalankan. Respons akan menampilkan hasil kueri.

Membaca data menggunakan read API

  1. Klik projects.instances.databases.sessions.read.
  2. Untuk sesi, masukkan:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/sessions/[SESSION]
    

    (Anda menerima nilai ini saat membuat sesi.)

  3. Untuk Isi permintaan, gunakan parameter berikut:

    {
      "table": "Albums",
      "columns": [
        "SingerId",
        "AlbumId",
        "AlbumTitle"
      ],
      "keySet": {
        "all": true
      }
    }
    
  4. Klik Jalankan. Respons akan menampilkan hasil operasi baca.

Memperbarui skema database

Asumsikan Anda perlu menambahkan kolom baru bernama MarketingBudget ke tabel Albums, yang memerlukan pembaruan pada skema database Anda. Spanner mendukung pembaruan skema ke database, sementara database terus melayani traffic. Update skema tidak memerlukan pembuatan database secara offline dan update tersebut tidak mengunci seluruh tabel atau kolom. Anda dapat terus menulis data ke database selama update skema.

Menambahkan kolom

  1. Klik projects.instances.databases.updateDdl.
  2. Untuk database, masukkan:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db
    
  3. Untuk Isi permintaan, gunakan parameter berikut:

    {
      "statements": [
        "ALTER TABLE Albums ADD COLUMN MarketingBudget INT64"
      ]
    }
    

    Array statements berisi pernyataan DDL yang menentukan skema.

  4. Klik Jalankan. Proses ini mungkin memerlukan waktu beberapa menit, bahkan setelah panggilan REST menampilkan respons. Respons menampilkan operasi yang berjalan lama yang dapat Anda kueri untuk memeriksa statusnya.

Menulis data ke kolom baru

Kode berikut menulis data ke kolom baru. Fungsi ini menetapkan MarketingBudget ke 100000 untuk baris yang dikunci oleh Albums(1, 1) dan 500000 untuk baris yang dikunci oleh Albums(2, 2).

  1. Klik projects.instances.databases.sessions.commit.
  2. Untuk sesi, masukkan:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/sessions/[SESSION]
    

    (Anda menerima nilai ini saat membuat sesi.)

  3. Untuk Isi permintaan, gunakan parameter berikut:

    {
      "singleUseTransaction": {
        "readWrite": {}
      },
      "mutations": [
        {
          "update": {
            "table": "Albums",
            "columns": [
              "SingerId",
              "AlbumId",
              "MarketingBudget"
            ],
            "values": [
              [
                "1",
                "1",
                "100000"
              ],
              [
                "2",
                "2",
                "500000"
              ]
            ]
          }
        }
      ]
    }
    
  4. Klik Jalankan. Respons menunjukkan stempel waktu commit.

Anda juga dapat menjalankan kueri SQL atau panggilan baca untuk mengambil nilai yang baru saja Anda tulis.

Berikut adalah cara mengeksekusi kueri:

  1. Klik projects.instances.databases.sessions.executeSql.
  2. Untuk sesi, masukkan:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/sessions/[SESSION]
    

    (Anda menerima nilai ini saat membuat sesi.)

  3. Untuk Isi permintaan, gunakan parameter berikut:

    {
      "sql": "SELECT SingerId, AlbumId, MarketingBudget FROM Albums"
    }
    
  4. Klik Jalankan. Sebagai bagian dari respons, Anda akan melihat dua baris berisi nilai MarketingBudget yang diupdate:

    "rows": [
      [
        "1",
        "1",
        "100000"
      ],
      [
        "1",
        "2",
        null
      ],
      [
        "2",
        "1",
        null
      ],
      [
        "2",
        "2",
        "500000"
      ],
      [
        "2",
        "3",
        null
      ]
    ]
    

Menggunakan indeks sekunder

Misalnya Anda ingin mengambil semua baris Albums yang memiliki nilai AlbumTitle dalam rentang tertentu. Anda dapat membaca semua nilai dari kolom AlbumTitle menggunakan pernyataan SQL atau panggilan baca, lalu menghapus baris yang tidak memenuhi kriteria, tetapi melakukan pemindaian tabel penuh ini mahal, terutama untuk tabel yang memiliki banyak baris. Sebagai gantinya, Anda dapat mempercepat pengambilan baris saat melakukan penelusuran berdasarkan kolom kunci non-utama dengan membuat indeks sekunder pada tabel.

Menambahkan indeks sekunder ke tabel yang ada memerlukan pembaruan skema. Seperti update skema lainnya, Spanner mendukung penambahan indeks sementara database terus menyalurkan traffic. Spanner secara otomatis mengisi indeks dengan data yang ada. Pengisian ulang mungkin memerlukan waktu beberapa menit untuk diselesaikan, tetapi Anda tidak perlu membuat database menjadi offline atau menghindari penulisan ke tabel atau kolom tertentu selama proses ini. Untuk detail lebih lanjut, lihat pengisian ulang indeks.

Setelah Anda menambahkan indeks sekunder, Spanner akan otomatis menggunakannya untuk kueri SQL yang kemungkinan akan berjalan lebih cepat dengan indeks. Jika menggunakan antarmuka baca, Anda harus menentukan indeks yang ingin digunakan.

Menambahkan indeks sekunder

Anda dapat menambahkan indeks menggunakan updateDdl.

  1. Klik projects.instances.databases.updateDdl.
  2. Untuk database, masukkan:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db
    
  3. Untuk Isi permintaan, gunakan parameter berikut:

    {
      "statements": [
        "CREATE INDEX AlbumsByAlbumTitle ON Albums(AlbumTitle)"
      ]
    }
    
  4. Klik Jalankan. Proses ini mungkin memerlukan waktu beberapa menit, bahkan setelah panggilan REST menampilkan respons. Respons menampilkan operasi yang berjalan lama yang dapat Anda kueri untuk memeriksa statusnya.

Membuat kueri menggunakan indeks

  1. Klik projects.instances.databases.sessions.executeSql.
  2. Untuk sesi, masukkan:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/sessions/[SESSION]
    

    (Anda menerima nilai ini saat membuat sesi.)

  3. Untuk Isi permintaan, gunakan parameter berikut:

    {
      "sql": "SELECT AlbumId, AlbumTitle, MarketingBudget FROM Albums WHERE AlbumTitle >= 'Aardvark' AND AlbumTitle < 'Goo'"
    }
    
  4. Klik Jalankan. Sebagai bagian dari respons, Anda akan melihat baris berikut:

    "rows": [
      [
        "2",
        "Go, Go, Go",
        null
      ],
      [
        "2",
        "Forever Hold Your Peace",
        "500000"
      ]
    ]
    

Membaca menggunakan indeks

  1. Klik projects.instances.databases.sessions.read.
  2. Untuk sesi, masukkan:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/sessions/[SESSION]
    

    (Anda menerima nilai ini saat membuat sesi.)

  3. Untuk Isi permintaan, gunakan parameter berikut:

    {
      "table": "Albums",
      "columns": [
        "AlbumId",
        "AlbumTitle"
      ],
      "keySet": {
        "all": true
      },
      "index": "AlbumsByAlbumTitle"
    }
    
  4. Klik Jalankan. Sebagai bagian dari respons, Anda akan melihat baris berikut:

    "rows": [
      [
        "2",
        "Forever Hold Your Peace"
      ],
      [
        "2",
        "Go, Go, Go"
      ],
      [
        "1",
        "Green"
      ],
      [
        "3",
        "Terrified"
      ],
      [
        "1",
        "Total Junk"
      ]
    ]
    

Menambahkan indeks dengan klausa STORING

Anda mungkin telah melihat bahwa contoh operasi baca di atas tidak menyertakan pembacaan kolom MarketingBudget. Hal ini karena antarmuka baca Spanner tidak mendukung kemampuan untuk menggabungkan indeks dengan tabel data guna mencari nilai yang tidak disimpan dalam indeks.

Buat definisi alternatif AlbumsByAlbumTitle yang menyimpan salinan MarketingBudget dalam indeks.

Anda dapat menambahkan indeks STORING menggunakan updateDdl.

  1. Klik projects.instances.databases.updateDdl.
  2. Untuk database, masukkan:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db
    
  3. Untuk Isi permintaan, gunakan parameter berikut:

    {
      "statements": [
        "CREATE INDEX AlbumsByAlbumTitle2 ON Albums(AlbumTitle) STORING (MarketingBudget)"
      ]
    }
    
  4. Klik Jalankan. Proses ini mungkin memerlukan waktu beberapa menit, bahkan setelah panggilan REST menampilkan respons. Respons menampilkan operasi yang berjalan lama yang dapat Anda kueri untuk memeriksa statusnya.

Sekarang Anda dapat menjalankan operasi baca yang mengambil semua kolom AlbumId, AlbumTitle, dan MarketingBudget dari indeks AlbumsByAlbumTitle2:

  1. Klik projects.instances.databases.sessions.read.
  2. Untuk sesi, masukkan:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/sessions/[SESSION]
    

    (Anda menerima nilai ini saat membuat sesi.)

  3. Untuk Isi permintaan, gunakan parameter berikut:

    {
      "table": "Albums",
      "columns": [
        "AlbumId",
        "AlbumTitle",
        "MarketingBudget"
      ],
      "keySet": {
        "all": true
      },
      "index": "AlbumsByAlbumTitle2"
    }
    
  4. Klik Jalankan. Sebagai bagian dari respons, Anda akan melihat baris berikut:

    "rows": [
      [
        "2",
        "Forever Hold Your Peace",
        "500000"
      ],
      [
        "2",
        "Go, Go, Go",
        null
      ],
      [
        "1",
        "Green",
        null
      ],
      [
        "3",
        "Terrified",
        null
      ],
      [
        "1",
        "Total Junk",
        "100000"
      ]
    ]
    

Mengambil data menggunakan transaksi hanya baca

Misalnya Anda ingin mengeksekusi lebih dari satu pembacaan pada stempel waktu yang sama. Transaksi hanya baca mengamati awalan yang konsisten dari histori commit transaksi, sehingga aplikasi Anda selalu mendapatkan data yang konsisten.

Membuat transaksi hanya baca

  1. Klik projects.instances.databases.sessions.beginTransaction.
  2. Untuk sesi, masukkan:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/sessions/[SESSION]
    
  3. Untuk Isi Permintaan, gunakan:

    {
      "options": {
        "readOnly": {}
      }
    }
    
  4. Klik Jalankan.

  5. Respons akan menampilkan ID transaksi yang Anda buat.

Anda kini dapat menggunakan transaksi hanya baca untuk mengambil data pada stempel waktu yang konsisten, meskipun data telah berubah sejak Anda membuat transaksi hanya baca.

Menjalankan kueri menggunakan transaksi hanya baca

  1. Klik projects.instances.databases.sessions.executeSql.
  2. Untuk sesi, masukkan:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/sessions/[SESSION]
    

    (Anda menerima nilai ini saat membuat sesi.)

  3. Untuk Isi permintaan, gunakan parameter berikut:

    {
      "sql": "SELECT SingerId, AlbumId, AlbumTitle FROM Albums",
      "transaction": {
        "id": "[TRANSACTION_ID]"
      }
    }
    
  4. Klik Jalankan. Anda akan melihat baris yang mirip dengan berikut ini dalam respons:

    "rows": [
      [
        "2",
        "2",
        "Forever Hold Your Peace"
      ],
      [
        "1",
        "2",
        "Go, Go, Go"
      ],
      [
        "2",
        "1",
        "Green"
      ],
      [
        "2",
        "3",
        "Terrified"
      ],
      [
        "1",
        "1",
        "Total Junk"
      ]
    ]
    

Membaca menggunakan transaksi hanya baca

  1. Klik projects.instances.databases.sessions.read.
  2. Untuk sesi, masukkan:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/sessions/[SESSION]
    

    (Anda menerima nilai ini saat membuat sesi.)

  3. Untuk Isi permintaan, gunakan parameter berikut:

    {
      "table": "Albums",
      "columns": [
        "SingerId",
        "AlbumId",
        "AlbumTitle"
      ],
      "keySet": {
        "all": true
      },
      "transaction": {
        "id": "[TRANSACTION_ID]"
      }
    }
    
  4. Klik Jalankan. Anda akan melihat baris yang mirip dengan berikut ini dalam respons:

    "rows": [
      [
        "1",
        "1",
        "Total Junk"
      ],
      [
        "1",
        "2",
        "Go, Go, Go"
      ],
      [
        "2",
        "1",
        "Green"
      ],
      [
        "2",
        "2",
        "Forever Hold Your Peace"
      ],
      [
        "2",
        "3",
        "Terrified"
      ]
    ]
    

Spanner juga mendukung transaksi baca-tulis, yang menjalankan serangkaian bacaan dan menulis secara atomik pada satu titik waktu logis. Untuk mengetahui informasi selengkapnya, lihat Transaksi baca-tulis. (Fungsi Try-It! tidak cocok untuk mendemonstrasikan transaksi baca-tulis.)

Pembersihan

Agar tidak menimbulkan biaya tambahan pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus database dan hapus instance yang Anda buat.

Melepaskan database

  1. Klik projects.instances.databases.dropDatabase.
  2. Untuk name, masukkan:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db
    
  3. Klik Jalankan.

Menghapus instance

  1. Klik projects.instances.delete.
  2. Untuk name, masukkan:

    projects/[PROJECT_ID]/instances/test-instance
    
  3. Klik Jalankan.

Langkah selanjutnya