GSP1049

Ringkasan
Cloud Spanner adalah layanan database relasional dari Google yang terkelola sepenuhnya dan dapat diskalakan secara horizontal. Pelanggan di jasa keuangan, game, retail, dan banyak bidang lain memercayai layanan ini untuk menjalankan workload yang paling berat, yang sangat membutuhkan konsistensi dan ketersediaan.
Di lab ini, Anda akan mempelajari berbagai cara untuk memuat data ke Cloud Spanner dan mencadangkan database.
Yang akan Anda lakukan
- Menyisipkan data dengan DML
- Menyisipkan data melalui library klien
- Menyisipkan data batch melalui library klien
- Memuat data menggunakan Dataflow
- Mencadangkan database
Penyiapan dan kebutuhan
Sebelum mengklik tombol Start Lab
Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer yang dimulai saat Anda mengklik Start Lab akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.
Lab interaktif ini dapat Anda gunakan untuk melakukan aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.
Untuk menyelesaikan lab ini, Anda memerlukan:
- Akses ke browser internet standar (disarankan browser Chrome).
Catatan: Gunakan jendela Samaran (direkomendasikan) atau browser pribadi untuk menjalankan lab ini. Hal ini akan mencegah konflik antara akun pribadi Anda dan akun siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
- Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Catatan: Hanya gunakan akun siswa untuk lab ini. Jika Anda menggunakan akun Google Cloud yang berbeda, Anda mungkin akan dikenai tagihan ke akun tersebut.
Cara memulai lab dan login ke Google Cloud Console
-
Klik tombol Start Lab. Jika Anda perlu membayar lab, dialog akan terbuka untuk memilih metode pembayaran.
Di sebelah kiri ada panel Lab Details yang berisi hal-hal berikut:
- Tombol Open Google Cloud console
- Waktu tersisa
- Kredensial sementara yang harus Anda gunakan untuk lab ini
- Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
-
Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome).
Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in.
Tips: Atur tab di jendela terpisah secara berdampingan.
Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
-
Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.
{{{user_0.username | "Username"}}}
Anda juga dapat menemukan Username di panel Lab Details.
-
Klik Next.
-
Salin Password di bawah dan tempel ke dialog Welcome.
{{{user_0.password | "Password"}}}
Anda juga dapat menemukan Password di panel Lab Details.
-
Klik Next.
Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda.
Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan.
-
Klik halaman berikutnya:
- Setujui persyaratan dan ketentuan.
- Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
- Jangan mendaftar uji coba gratis.
Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.
Catatan: Untuk mengakses produk dan layanan Google Cloud, klik Navigation menu atau ketik nama layanan atau produk di kolom Search.
Mengaktifkan Cloud Shell
Cloud Shell adalah mesin virtual yang dilengkapi dengan berbagai alat pengembangan. Mesin virtual ini menawarkan direktori beranda persisten berkapasitas 5 GB dan berjalan di Google Cloud. Cloud Shell menyediakan akses command-line untuk resource Google Cloud Anda.
-
Klik Activate Cloud Shell
di bagian atas Konsol Google Cloud.
-
Klik jendela berikut:
- Lanjutkan melalui jendela informasi Cloud Shell.
- Beri otorisasi ke Cloud Shell untuk menggunakan kredensial Anda guna melakukan panggilan Google Cloud API.
Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke Project_ID, . Output berisi baris yang mendeklarasikan Project_ID untuk sesi ini:
Project Cloud Platform Anda dalam sesi ini disetel ke {{{project_0.project_id | "PROJECT_ID"}}}
gcloud adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.
- (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
gcloud auth list
- Klik Authorize.
Output:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
Untuk menetapkan akun aktif, jalankan:
$ gcloud config set account `ACCOUNT`
- (Opsional) Anda dapat menampilkan daftar ID project dengan perintah ini:
gcloud config list project
Output:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Catatan: Untuk mendapatkan dokumentasi gcloud yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.
Tugas 1. Mengeksplorasi instance
Selama deployment, instance, database, dan tabel Cloud Spanner telah disediakan untuk Anda.
- Dari Konsol, buka menu navigasi (
) > View All Products. Di bagian Databases, klik Spanner.
Klik nama instance banking-instance untuk menjelajahi database.
Database terkait diberi nama banking-db.
Klik untuk menjelajahinya dan melihat bahwa sudah ada tabel bernama Customer.
Klik tabel tersebut untuk memeriksa skemanya.
- Tabel masih kosong. Buka kembali halaman ringkasan
banking-db. Di menu kiri, klik Spanner Studio, lalu jalankan perintah berikut:
SELECT * FROM Customer;
- Tidak ada hasil yang ditampilkan.
Tugas 2. Menyisipkan data dengan DML
Cara termudah untuk menyisipkan data ke Spanner adalah melalui DML. Dengan menggunakan Cloud Shell dan gcloud, Anda dapat menjalankan pernyataan DML apa pun, termasuk INSERT.
- Jalankan perintah berikut di Cloud Shell:
gcloud spanner databases execute-sql banking-db --instance=banking-instance \
--sql="INSERT INTO Customer (CustomerId, Name, Location) VALUES ('bdaaaa97-1b4b-4e58-b4ad-84030de92235', 'Richard Nelson', 'Ada Ohio')"
- Kembali ke Konsol, klik Overview di menu kiri. Buka tabel Customer, lalu pilih Data untuk melihat baris yang baru saja Anda sisipkan.
Seperti yang disebutkan sebelumnya, Anda dapat menggunakan gcloud untuk menjalankan perintah DML apa pun. Lihat dokumentasi untuk DML dan Spanner.
Pemuatan database baris demi baris tentu tidak efisien.
Tugas 3. Menyisipkan data melalui library klien
Cara optimal untuk mengakses Spanner adalah melalui antarmuka terprogram. Berbagai macam library klien tersedia, termasuk C++, C#, Go, Java, Node.js, PHP, Python, dan Ruby.
- Di Cloud Shell, masukkan perintah berikut untuk memanggil editor teks Nano dan membuat file konfigurasi kosong baru bernama insert.py.
nano insert.py
- Tempel blok kode yang tercantum di bawah.
from google.cloud import spanner
from google.cloud.spanner_v1 import param_types
INSTANCE_ID = "banking-instance"
DATABASE_ID = "banking-db"
spanner_client = spanner.Client()
instance = spanner_client.instance(INSTANCE_ID)
database = instance.database(DATABASE_ID)
def insert_customer(transaction):
row_ct = transaction.execute_update(
"INSERT INTO Customer (CustomerId, Name, Location)"
"VALUES ('b2b4002d-7813-4551-b83b-366ef95f9273', 'Shana Underwood', 'Ely Iowa')"
)
print("{} record(s) inserted.".format(row_ct))
database.run_in_transaction(insert_customer)
-
Tekan Ctrl+X untuk keluar dari Nano, tekan Y untuk mengonfirmasi perubahan, dan tekan Enter untuk menyimpan perubahan.
-
Jalankan kode python.
python3 insert.py
- Muat ulang Konsol Cloud, atau klik item lain di menu kiri, lalu klik lagi Data untuk melihat baris baru di database.
Seperti penggunaan gcloud, Anda dapat menjalankan pernyataan DML apa pun dari library klien. Anda dapat menemukan beberapa contoh untuk semua bahasa dalam dokumentasi.
Cara ini lebih fleksibel daripada memuat data menggunakan gcloud, tetapi tetap memiliki batasan saat memuat sumber yang berisi banyak baris.
- Klik Periksa progres saya untuk memverifikasi tujuan.
Menyisipkan data melalui library klien
Tugas 4. Menyisipkan data batch melalui library klien
Cara yang lebih optimal untuk memuat data ke Spanner adalah dengan melakukannya secara bergelombang melalui batch. Semua library klien mendukung pemuatan batch. Contoh ini menggunakan Python.
- Di Cloud Shell, masukkan perintah berikut untuk memanggil editor teks Nano dan membuat file konfigurasi kosong baru bernama batch_insert.py.
nano batch_insert.py
- Tempel blok kode yang tercantum di bawah.
from google.cloud import spanner
from google.cloud.spanner_v1 import param_types
INSTANCE_ID = "banking-instance"
DATABASE_ID = "banking-db"
spanner_client = spanner.Client()
instance = spanner_client.instance(INSTANCE_ID)
database = instance.database(DATABASE_ID)
with database.batch() as batch:
batch.insert(
table="Customer",
columns=("CustomerId", "Name", "Location"),
values=[
('edfc683f-bd87-4bab-9423-01d1b2307c0d', 'John Elkins', 'Roy Utah'),
('1f3842ca-4529-40ff-acdd-88e8a87eb404', 'Martin Madrid', 'Ames Iowa'),
('3320d98e-6437-4515-9e83-137f105f7fbc', 'Theresa Henderson', 'Anna Texas'),
('6b2b2774-add9-4881-8702-d179af0518d8', 'Norma Carter', 'Bend Oregon'),
],
)
print("Rows inserted")
-
Tekan Ctrl+X untuk keluar dari Nano, tekan Y untuk mengonfirmasi perubahan, dan tekan Enter untuk menyimpan perubahan.
-
Jalankan kode python.
python3 batch_insert.py
- Muat ulang Konsol Cloud untuk melihat data baru yang baru saja Anda sisipkan.
Metode batch lebih efisien karena dijalankan sebagai satu permintaan. Hanya perlu satu proses dua arah server-klien, sehingga latensi berkurang.
Namun, metode ini sangat lambat dan menghabiskan banyak resource untuk memuat data.
- Klik Periksa progres saya untuk memverifikasi tujuan.
Menyisipkan data batch melalui library klien
Tugas 5. Memuat data menggunakan Dataflow
Dataflow adalah layanan Google Cloud untuk streaming dan pemrosesan data batch berskala besar. Dataflow menggunakan beberapa worker untuk menjalankan pemrosesan data secara paralel. Cara pemrosesan data ditentukan menggunakan pipeline yang mentransformasi data dari asalnya (sumber) ke tujuannya (sink).
Ada konektor untuk Spanner yang memungkinkan Anda menghubungkan database sebagai sumber atau sink di Dataflow.
Untuk memuat data berukuran besar, Anda dapat menggunakan kemampuan serverless Dataflow yang terdistribusi untuk membaca data dari sumber (misalnya, file CSV di Google Cloud Storage) dan memuatnya ke database Spanner menggunakan konektor sink.
- Untuk mempersiapkan tugas Dataflow, jalankan perintah berikut di Cloud Shell untuk membuat bucket di project Anda dan folder yang berisi file kosong.
gsutil mb gs://{{{project_0.project_id|Project ID}}}
touch emptyfile
gsutil cp emptyfile gs://{{{project_0.project_id|Project ID}}}/tmp/emptyfile
- Untuk memastikan API dan izin yang tepat telah ditetapkan, jalankan blok kode berikut di Cloud Shell.
gcloud services disable dataflow.googleapis.com --force
gcloud services enable dataflow.googleapis.com
-
Dari Konsol, buka menu navigasi (
) > View All Products. Di bagian Analytics, klik Dataflow.
-
Di bagian atas layar, klik Create Job From Template.
-
Masukkan nilai berikut ke template:
-
Job Name: spanner-load
-
Regional endpoint:
-
Scroll pemilih Dataflow template untuk melihat semua template yang dapat digunakan dengan Dataflow. Anda juga dapat membuat pipeline yang disesuaikan sendiri menggunakan Beam SDK.
Ada dua jenis template utama:
-
Stream akan membuat pipeline untuk data yang mengalir dan diproses secara terus-menerus (misalnya, pesanan online dari situs).
-
Batch akan memproses set data yang memiliki awal dan akhir (misalnya, file yang disimpan di Google Cloud Storage).
Di lab ini, Anda akan memuat data ke database perbankan Spanner dari file CSV dengan lebih dari 150.000 baris.
-
Pilih template Text Files on Cloud Storage to Cloud Spanner.
-
Masukkan nilai berikut ke template:
| Item |
Nilai |
| Cloud Spanner Instance Id |
banking-instance |
| Cloud Spanner Database Id |
banking-db |
| Text Import Manifest file |
spls/gsp1049/manifest.json |
Format file manifest.json dijelaskan dalam tutorial untuk template ini (Anda dapat mengaksesnya dengan mengklik open tutorial tepat di atas kolom input parameter).
File manifes harus disimpan di bucket Google Cloud Storage yang dapat diakses dan dibaca Dataflow. Di lab ini, berikut adalah konten manifest.json:
{
"tables": [
{
"table_name": "Customer",
"file_patterns": [
"gs://spls/gsp1049/Customer_List.csv"
],
"columns": [
{"column_name" : "CustomerId", "type_name" : "STRING" },
{"column_name" : "Name", "type_name" : "STRING" },
{"column_name" : "Location", "type_name" : "STRING" }
]
}
]
}
File manifes menyebutkan tabel, nama, dan jenis kolom (sesuai urutan kemunculannya dalam file CSV), serta file CSV itu sendiri, yang juga disimpan di bucket Google Cloud Storage.
File CSV akan terlihat seperti ini:
9d238899-8348-4642-9c00-77dc4481145b,Nicole Anderson,Ada Ohio
360ecaa6-9ec3-4fa0-81a5-3b0dc629e1fa,Ellen Richardson,Ada Ohio
8ee6c2ea-923b-45db-8d51-7f8e7a117af0,Wendy Daniel,Ada Ohio
1d7112cc-c1ee-414f-9325-95c97f9a25d3,Virginia Beasley,Ada Ohio
...
- Untuk parameter Temporary Location, masukkan nilai berikut:
{{{project_0.project_id|Project ID}}}/tmp
-
Luaskan Optional Parameters.
-
Hapus centang Use default machine type.
-
Di bagian General purpose, pilih setelan berikut:
- Series: E2
- Machine type: e2-medium (2 vCPU, 4 GB memory)
-
Klik Run Job untuk memulai pipeline.
-
Proses ini akan memakan waktu sekitar 12 hingga 16 menit. Anda akan melihat Dataflow menjalankan berbagai tahap. Pertama, memulai worker dan menganalisis pipeline dari template. Kemudian, Dataflow akan membaca file manifes dan mulai memproses file CSV.
Catatan: Jika pipeline Anda gagal karena worker node tidak tersedia sehingga menyebabkan error, buat tugas baru dengan nama yang sama dari template yang sama, dimulai dari Langkah 4. Kali ini, pilih endpoint Regional lain di Amerika Serikat. Misalnya, jika Langkah 5 mencantumkan "us-east4" sebagai endpoint Regional, coba "us-east1" untuk percobaan kedua.
Tunggu hingga proses Dataflow selesai sebelum melanjutkan. Statusnya akan menjadi Succeeded setelah selesai.
-
Kembali ke Spanner dengan memilihnya di menu kiri pada Konsol Cloud. Buka tabel Customer dan pilih Data. Anda akan melihat semua baris baru yang telah dimuat menggunakan Dataflow.
-
Buka kembali halaman ringkasan banking-db. Di menu kiri, klik Spanner Studio dan jalankan perintah berikut untuk melihat jumlah total baris di tabel Customer:
SELECT COUNT(*) FROM Customer;
Dengan template Dataflow, Anda dapat memuat data berukuran besar dengan mudah (dan cepat). Anda dapat memuat dump dari database lain, dan memuat tidak hanya file CSV, tetapi juga file Avro dengan prosedur yang sama. Anda bahkan dapat menjalankan proses sebaliknya, yaitu menggunakan database Spanner sebagai sumber di Dataflow untuk mengekspor data ke format CSV atau Avro.
- Klik Periksa progres saya untuk memverifikasi tujuan.
Memuat data menggunakan Dataflow
Tugas 6. Mencadangkan database
Penggunaan Dataflow seperti yang dijelaskan di atas adalah cara untuk mencadangkan data. Namun, Spanner memiliki alat sendiri untuk pencadangan.
Anda dapat mencadangkan database Spanner dari Konsol Cloud, library klien, atau perintah gcloud. Buka link untuk melihat dokumentasi masing-masing.
Di lab ini, Anda akan menggunakan Konsol Cloud untuk mencadangkan database.
-
Pilih Backup/Restore dari menu kiri.
-
Klik Create Backup.
-
Masukkan atau pilih nilai berikut di wizard:
| Item |
Nilai |
| Database Name |
banking-db |
| Backup Name |
banking-backup-001 |
| Expiration Date |
1 year |
-
Klik Create.
-
Pencadangan perlu waktu sekitar 15 menit dan muncul di daftar Backups saat prosesnya berjalan.
Selamat
Anda kini memiliki pemahaman solid tentang berbagai cara untuk memuat data ke Instance Cloud Spanner dan melakukan pencadangan.
Sertifikasi dan pelatihan Google Cloud
...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.
Manual Terakhir Diperbarui: 16 September 2025
Lab Terakhir Diuji: 16 September 2025
Hak cipta 2026 Google LLC. Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.