Lab: Google Cloud Spanner

Dalam lab ini akan dibahas:

  • Membuat Cloud Spanner instance.
  • Membuat database dan schema.
  • Menambahkan data melalui program menggunakan Python.
  • Query data melalui Cloud Console.

Untuk mengikuti lab ini diperlukan:

  • GCP project.
  • Akses ke Cloud Console.

Perhatian: Biaya Cloud Spanner cukup tinggi, yaitu 1 USD per jam. Setelah lab selesai jangan lupa untuk menghapus instance.

Membuat Spanner Instance

Mari kita mulai lab dengan memilih Spanner melalui burger menu. enabled Spanner API jika ada permintaan untuk melakukannya.

Kemudian tekan tombol create instance seperti pada gambar dibawah.

Pada window create instance, isi data instance name dan instance id, pada tutorial digunakan nama spannerlab.

Untuk configuration pilih Region. Silakan pilih region paling dekat dengan lokasi Anda, atau bebas dimana saja karena untuk kebutuhan tutorial ini tidak menjadi masalah.

Pastikan jumlah node adalah 1.

Kemudian tekan tombol Create.

Membuat Database

Setelah intance selesai dibuat, window berikut akan ditampilkan. Langkah berikutnya adalah membuat database. Tekan tombol create database.

Pada window create database. Pertama masukan nama database. Kemudian tekan tombol Continue.

Langkah selanjutnya membuat schema. Nyalakan button Edit as text, lalu masukan perintah SQL dibawah. Kemudian tekan tombol Create.

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;

Setelah create databse berhasil, window berikut akan ditampilkan.

Perhatian, gunakan schema diatas, karena kita akan menggunakan program snippet yang disediakan oleh Google sebagai contoh, dan program tersebut bekerja dengan schema diatas.

Menambah Data Melalu Program

Untuk itu kita masuk ke Cloud Shell. Kemudian clone Google Git Repo untuk GCP samples. Pada lab akan digunakan Bahasa Python. Kemudian tunggu sampai proses clone selesai.

$ git clone https://github.com/GoogleCloudPlatform/python-docs-samples


# untuk bahasa lainnya:

# https://github.com/GoogleCloudPlatform/dotnet-docs-samples
# https://github.com/GoogleCloudPlatform/golang-samples
# https://github.com/GoogleCloudPlatform/java-docs-samples
# https://github.com/GoogleCloudPlatform/php-docs-samples
# https://github.com/GoogleCloudPlatform/ruby-docs-samples
# https://github.com/googleapis/nodejs-spanner

Setelah clonse selesai, masuk ke direktori spanner.

$ cd python-docs-samples/spanner/cloud-client

Selanjutnya membuat virtual environment untuk membuat Python environment yang terpisah kemudian aktifasi environment tersebut.

$ virtualenv env
$ source env/bin/activate

Kemudian install dependency yang diperlukan. Tunggu sampai selesai.

$ pip install -r requirements.txt

Repo ini berisi Python script snippets.py sebagai contoh bagaimana berinteraksi dengan Spanner melalui program. Disarankan untuk melihat isi file secara menyeluruh untuk pemahaman lebih lanjut.

Untuk menginsert data, kita gunakan perintah dari snippet dengan format berikut:

$ python snippets.py spannerlab --database-id demodb insert _with_dml

Jika berhasil, akan mengembalikan informasi 4 record(s) inserted.

Anda bisa melihat isi program snippets.py dengan menggunakan vim. Untuk kebutuhan modul ini, kita lihat fungsi yang sudah dijalankan diatas. Pada shell panggil vim untuk membuka snippets.py

$ vim snippets.py

Kemudian lihat baris 925. Dapat dilihat fungsi insert_with_dml yang kita jalankan.

Keluar dari vim, kemudian kita akan jalankan fungsi multiple insert dari snippets.py Fungsi ada pada baris 63. Jika berhasil akan ditampilkan message Inserted data.

$ python snippets.py spannerlab --database-id demodb insert_data

Snippets.py juga memiliki contoh fungsi untuk melakukan query retrieve data. Namun untuk kelengkapan tutorial, kita akan coba menggunakan Cloud Console.

Pada window spanner tekan tombol Query.

Kemudian pada input query editor, masukan perintah SQL berikut:

SELECT SingerId, AlbumId, AlbumTitle FROM Albums;

Kemudian tekan tombol Run Query. Akan ditampilkan hasil query seperti berikut:

Untuk Operasi tertentu kita perlu menggunakan DDL. Misalnya akan alter table untuk menambahkan marketing budget untuk setiap album. Kita dapat gunakan perintah alter table, namun tidak melalui visual query window diatas.

Untuk melakukan alter table, kita gunakan program snippets.py. Kembali ke shell, jalankan fungsi add_column yang berada pada baris 348.

$ python snippets.py spannerlab --database-id demodb add_column

Jika berhasil maka akan ditampilkan log Added the MarketingBudget column. Anda dapat lihat melalui console dengan menekan link ke table Albums.

Sampai disini Lab sudah selesai. Semoga dapat memberikan gambaran bagaimana bekerja dengan Google Cloud Spanner.

Perhatian Jangan Lupa untuk menghapus instance.

Masuk ke instance dengan menekan link (spannerlab).

Sharing is caring: