Panduan memulai Spanner CLI

Halaman ini memperkenalkan Spanner CLI dan menjelaskan cara menggunakannya.

Spanner CLI adalah antarmuka command line (CLI) yang memungkinkan Anda terhubung dan berinteraksi dengan database Spanner. Fitur ini disertakan dalam Google Cloud CLI (gcloud CLI) untuk berinteraksi dengan Spanner. Anda dapat menggunakan Spanner CLI untuk menjalankan pernyataan GoogleSQL secara langsung di database Spanner. Pernyataan Anda dapat terdiri dari pernyataan bahasa definisi data (DDL), bahasa pengolahan data (DML), atau bahasa kueri data (DQL). Anda dapat menggunakan Spanner CLI untuk menjalankan skrip perintah SQL dan mengotomatiskan tugas.

Alat ini didasarkan pada project spanner-cli open source.

Untuk mengetahui informasi selengkapnya, lihat daftar semua perintah gcloud spanner cli yang didukung.

Manfaat utama

Anda dapat menggunakan Spanner untuk melakukan tindakan berikut:

  • Jalankan perintah SQL DDL, DML, dan DQL.
  • Menulis dan menjalankan pernyataan SQL di beberapa baris.
  • Gunakan meta-perintah untuk membantu tugas sistem seperti menjalankan perintah shell sistem dan menjalankan SQL dari file.
  • Mengotomatiskan eksekusi SQL dengan menulis serangkaian pernyataan SQL ke dalam file skrip, lalu menginstruksikan Spanner CLI untuk menjalankan skrip. Selain itu, Anda dapat mengalihkan output ke file output.
  • Mulai sesi Spanner CLI interaktif, yang memungkinkan Anda mengetik pernyataan SQL dan meta-perintah secara langsung serta melihat hasilnya di CLI.

Sebelum memulai

Sebelum menggunakan Spanner CLI, pastikan Anda memiliki peran yang diperlukan dan telah menginstal CLI.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk menginstal Spanner, minta administrator untuk memberi Anda peran IAM Cloud Spanner Admin (roles/spanner.admin) di Spanner. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Instal Spanner CLI

Spanner CLI tersedia di gcloud CLI. Saat Anda menjalankan perintah gcloud spanner cli untuk pertama kalinya, gcloud CLI akan otomatis menginstal komponen Spanner CLI.

Untuk menginstal Spanner CLI secara manual, jalankan perintah berikut:

gcloud components install spanner-cli

Jika penginstalan menggunakan perintah Google Cloud CLI tidak berhasil atau tidak layak di lingkungan shell Anda, Spanner menyediakan paket Debian (.deb) dan RPM (.rpm) mandiri. Anda dapat menggunakan paket ini untuk menginstal secara manual di sistem yang kompatibel. Untuk menginstal, jalankan perintah berikut:

apt-get install google-cloud-cli-spanner-cli

Opsi konfigurasi

Spanner CLI mendukung opsi yang dapat dikonfigurasi berikut:

  • Opsi project diambil melalui properti core/project; atau, Anda dapat menentukan project menggunakan opsi --project.
  • Opsi instance diambil melalui properti core/instance; atau, Anda dapat menentukan instance menggunakan opsi --instance.
  • Endpoint API diambil melalui properti api_endpoint_overrides/spanner; atau, Anda dapat menentukan endpoint menggunakan opsi --host dan --port. Endpoint Spanner default akan digunakan jika tidak ada endpoint yang ditentukan.

Menggunakan Spanner CLI

  1. Siapkan Google Cloud project.

  2. Siapkan autentikasi menggunakan gcloud CLI.

  3. Buat instance.

  4. Buat database.

  5. Jalankan perintah berikut untuk memulai Spanner CLI dan berinteraksi dengan database Spanner Anda:

    gcloud spanner cli DATABASE_ID --instance=INSTANCE_ID
    

    Ganti kode berikut:

    • DATABASE_ID: ID database Spanner. Ini adalah nama yang Anda gunakan di langkah Buat database sebelumnya. Anda dapat menggunakan perintah gcloud spanner databases list untuk mencantumkan database Spanner yang ada dalam instance tertentu.
    • INSTANCE_ID: ID instance Spanner. Ini adalah nama yang Anda gunakan di langkah Buat instance sebelumnya. Anda dapat menggunakan perintah gcloud spanner instances list untuk mencantumkan instance Spanner yang ada dalam project tertentu.

Menjalankan SQL

Anda dapat menjalankan pernyataan SQL di Spanner CLI menggunakan opsi execute atau menggunakan metode input dan output berbasis file. Pernyataan SQL Anda dapat terdiri dari DDL, DML, atau DQL.

Menggunakan flag execute

Untuk menggunakan flag execute guna menjalankan SQL, jalankan perintah gcloud spanner cli berikut:

gcloud spanner cli DATABASE_ID --instance INSTANCE_ID \
    --execute "SQL"

Ganti kode berikut:

  • DATABASE_ID: ID database Spanner yang ingin Anda hubungkan.
  • INSTANCE_ID: ID instance Spanner yang ingin Anda hubungkan.
  • SQL: SQL yang ingin Anda jalankan.

Misalnya, untuk menjalankan pernyataan DDL:

gcloud spanner cli test-database --instance test-instance \
    --execute "CREATE TABLE Singers ( \
        SingerId   INT64 NOT NULL, \
        FirstName  STRING(1024), \
        LastName   STRING(1024), \
        SingerInfo STRING(1024), \
        BirthDate  DATE \
      ) PRIMARY KEY(SingerId);"

Untuk menjalankan pernyataan DML:

gcloud spanner cli test-database --instance test-instance \
    --execute "INSERT INTO Singers (SingerId, FirstName, LastName, SingerInfo) \
        VALUES(1, 'Marc', 'Richards', 'nationality: USA'), \
              (2, 'Catalina', 'Smith', 'nationality: Brazil'), \
              (3, 'Andrew', 'Duneskipper', NULL);"

Menggunakan input dan output berbasis file

Jika Anda menggunakan metode input dan output berbasis file, Spanner membaca inputnya dari satu file dan menulis outputnya ke file lain. Untuk menggunakan metode input dan output berbasis file untuk menjalankan SQL, jalankan perintah berikut:

gcloud spanner cli DATABASE_ID --instance INSTANCE_ID \
    --source INPUT_FILE_PATH --tee OUTPUT_FILE_PATH

Anda juga dapat menggunakan metode input dan output pengalihan berbasis file:

gcloud spanner cli DATABASE_ID --instance INSTANCE_ID \
    < INPUT_FILE_PATH > OUTPUT_FILE_PATH

Ganti kode berikut:

  • DATABASE_ID: ID database Spanner yang ingin Anda hubungkan.
  • INSTANCE_ID: ID instance Spanner yang ingin Anda hubungkan.
  • SOURCE_FILE_PATH: file yang berisi SQL yang ingin Anda jalankan.
  • OUTPUT_FILE_PATH: file bernama untuk menambahkan salinan output SQL.

Memulai sesi interaktif

Anda dapat memulai sesi Spanner CLI interaktif, yang memungkinkan Anda mengetik pernyataan SQL dan meta-perintah secara langsung serta melihat hasilnya di CLI. Untuk melakukannya, jalankan perintah berikut:

gcloud spanner cli DATABASE_ID --instance=INSTANCE_ID

Setelah berhasil terhubung antara CLI dan database, Anda akan melihat perintah (misalnya, spanner-cli>) tempat Anda dapat melakukan hal berikut:

Setelah menekan tombol ENTER, pernyataan atau perintah akan dikirim ke database Spanner yang sesuai. Spanner kemudian mengeksekusi pernyataan atau perintah.

Dalam contoh berikut, Anda memulai sesi interaktif di test-database lalu menjalankan SELECT 1;:

gcloud spanner cli test-database --instance test-instance

Welcome to Spanner-Cli Client.
Type 'help;' or '\h' for help.
Type 'exit;' or 'quit;' or '\q' to exit.

spanner-cli> SELECT 1;
+---+
|   |
+---+
| 1 |
+---+

1 rows in set (1.11 msecs)

Menjalankan pernyataan DDL

Untuk menjalankan pernyataan DDL, Anda dapat menjalankan perintah berikut:

spanner-cli> CREATE TABLE Singers (
          ->         SingerId   INT64 NOT NULL,
          ->         FirstName  STRING(1024),
          ->         LastName   STRING(1024),
          ->         SingerInfo STRING(1024),
          ->         BirthDate  DATE
          -> ) PRIMARY KEY(SingerId);

Query OK, 0 rows affected (17.08 sec)

Menjalankan pernyataan DML

Untuk menjalankan pernyataan DML, Anda dapat menjalankan perintah berikut:

spanner-cli> INSERT INTO Singers (SingerId, FirstName, LastName, SingerInfo)
          -> VALUES(1, 'Marc', 'Richards', 'nationality: USA'),
          -> (2, 'Catalina', 'Smith', 'nationality: Brazil'),
          -> (3, 'Andrew', 'Duneskipper', NULL);

Query OK, 3 rows affected (0.32 sec)

Jalankan pernyataan DML yang dipartisi

Di Spanner CLI, Anda dapat menggunakan kata kunci PARTITIONED dengan perintah UPDATE dan DELETE untuk menjalankan pernyataan DML berpartisi skala besar yang efisien. Saat menemukan PARTITIONED UPDATE atau PARTITIONED DELETE, Spanner CLI akan mengenalinya sebagai operasi DML yang dipartisi. Kata kunci ini berguna untuk operasi yang memengaruhi sebagian besar tabel tanpa mengunci seluruh tabel dalam jangka waktu yang lama. Spanner tidak menerapkan pernyataan DML berpartisi secara atomik di seluruh tabel. Pernyataan DML berpartisi diterapkan secara atomik di setiap partisi.

Untuk menjalankan pernyataan DML berpartisi, Anda dapat menjalankan perintah berikut:

-- Update all rows in the 'Products' table by multiplying the price by 2
spanner-cli> PARTITIONED UPDATE Products SET Price = Price * 2 WHERE Price > 100;

-- Delete all rows in the 'Products' table with price less than 500
spanner-cli> PARTITIONED DELETE FROM Products WHERE Price < 500;

Perintah meta yang didukung

Spanner CLI mendukung meta-perintah utilitas, yaitu perintah yang beroperasi pada klien, dalam hal ini Spanner CLI. Meta-perintah berikut didukung di Spanner CLI:

Perintah Sintaksis Deskripsi
? \? Menampilkan informasi bantuan. Sama seperti \h.
Pembatas \d Menetapkan pembatas pernyataan. Pemisah defaultnya adalah titik koma.
Keluar \q Keluar dari Spanner CLI. Sama seperti keluar.
Go \g Mengirim dan menjalankan pernyataan SQL di Spanner.
Bantuan \h Menampilkan informasi bantuan. Sama seperti \?.
Catatan \t Menonaktifkan penulisan ke set file output yang ditetapkan oleh \T.
Perintah \R Mengubah perintah Anda menjadi string perintah pengguna.
Keluar \q Menutup Spanner CLI. Sama seperti keluar.
Sumber \. Mengeksekusi SQL dari file input. Menggunakan [filename] sebagai argumen.
Sistem \! Menjalankan perintah shell sistem.
Tee \T Menambahkan output perintah ke [nama file] tertentu bersama dengan output standar.
Gunakan \u Menghubungkan ke database lain. Menggunakan nama database baru sebagai argumen.

Perintah tambahan yang didukung

CLI Spanner mendukung perintah tambahan. Untuk mengetahui informasi selengkapnya, lihat perintah Spanner CLI.

Mendapatkan dukungan

Untuk melaporkan masalah terkait Spanner CLI, buat masalah baru.

Langkah berikutnya