1. Pengantar
Dalam codelab ini, Anda akan membangun pipeline akuisisi pengetahuan terdistribusi untuk "Petverse". Anda akan memproses aset multimedia tidak terstruktur (Audio, Video, Gambar, Teks/CSV) dari bucket Cloud Storage, mengekstrak informasi penting tentang hewan peliharaan (makanan favorit, hobi), dan membuat grafik pengetahuan. Anda akan menskalakan pemrosesan file multimedia menggunakan pemrosesan multi-modalitas Gemini di Google Kubernetes Engine (GKE). Terakhir, Anda akan menyimpan data ini di BigQuery dan menggunakan fitur Grafik Properti BigQuery yang baru untuk menganalisis hubungan.
Kita akan menggunakan kecanggihan Google Kubernetes Engine untuk mendemonstrasikan pemrosesan data bervolume tinggi secara paralel.
Mengapa pustaka pengetahuan?
Pustaka pengetahuan lebih cocok daripada database relasional tradisional untuk merepresentasikan dan menganalisis hubungan yang kompleks antar-entitas.
Kita akan menggunakan Gemini 2.5 Flash untuk menganalisis file gambar, audio, dan video serta menetapkan fakta tentang berbagai hewan peliharaan.

Yang akan Anda lakukan
- Bangun dan deploy tugas pemrosesan data terdistribusi di GKE.
- Gunakan Gemini untuk mengekstrak entity dan hubungan dari file multimedia.
- Simpan data grafik pengetahuan di BigQuery.
- Buat dan kueri Grafik Properti di BigQuery menggunakan Graph Query Language (GQL).
Yang Anda butuhkan
- Browser web seperti Chrome
- Project Google Cloud yang mengaktifkan penagihan
- Izin dalam project untuk membuat resource dan mengubah kebijakan IAM
Codelab ini ditujukan bagi developer dari semua level, termasuk para pemula.
Perkiraan Durasi: 45 menit
Biaya: Resource yang dibuat dalam codelab ini seharusnya berbiaya kurang dari $5.
2. Sebelum memulai
Membuat Project Google Cloud
- Buka Konsol Google Cloud: https://console.cloud.google.com, lalu pilih atau buat project Google Cloud.
- ⚠️ Catat Project ID. Anda akan menggunakannya untuk beberapa perintah dalam lab ini.

Mulai Cloud Shell
- Buka Cloud Shell di tab baru: https://shell.cloud.google.com/.
- Jika diminta, klik Authorize
- Ganti
PROJECT_IDdan tempel perintah berikut ke terminal:
export PROJECT_ID="YOUR_PROJECT_ID"
gcloud config set project $PROJECT_ID

📝 Catatan Project Anda akan ditampilkan dengan warna kuning di command line. Jika sesi Anda dimulai ulang, pastikan Anda menjalankan kembali perintah di atas untuk menyetel project ID.
Mengaktifkan API
Jalankan perintah ini untuk mengaktifkan semua API yang diperlukan:
gcloud services enable \
aiplatform.googleapis.com \
bigquery.googleapis.com \
artifactregistry.googleapis.com \
container.googleapis.com \
cloudbuild.googleapis.com \
pubsub.googleapis.com
Meng-clone repositori
Jalankan perintah berikut untuk meng-clone repositori.
cd ~/
git clone --filter=blob:none --no-checkout https://github.com/GoogleCloudPlatform/devrel-demos.git
cd ~/devrel-demos
git sparse-checkout init --cone
git sparse-checkout set codelabs/gke-knowledge-graph
git checkout main
cd codelabs/gke-knowledge-graph/
Jalankan skrip penyiapan
Skrip ini mengotomatiskan konfigurasi backend dengan:
- Membuat image container dan repositori Artifact Registry
- Membuat set data BigQuery
- Membuat Koneksi BigQuery untuk menjalankan fungsi AI Gemini dari SQL
Jalankan perintah berikut di terminal.
./scripts/setup.sh
Jika skrip meminta detail konfigurasi, gunakan nilai berikut:
- Project ID: Gunakan ID yang Anda buat di langkah sebelumnya.
- Region:
us-central1
⚠️ Penting Skrip akan memerlukan waktu beberapa menit untuk diselesaikan. Biarkan jendela terminal ini tetap terbuka untuk menyelesaikan di latar belakang. Untuk melanjutkan ke langkah berikutnya, buka tab atau jendela terminal baru untuk menjalankan perintah berikutnya.

3. Menyiapkan Data Agent Kit
- Aktifkan Editor Cloud Shell dengan ikon pensil di pojok kanan atas.
- Di Cloud Shell Editor, klik ikon Extensions di sidebar kiri.
- Telusuri Google Cloud Data Agent Kit, lalu klik Install jika belum diinstal.

- Login ke Akun Google Anda dengan ekstensi.
- Di Ringkasan Konfigurasi, masukkan project ID Anda dan
us-central1sebagai region.

- Klik Configure MCP Servers. Anda tidak perlu melakukan perubahan apa pun pada jendela ini, cukup klik Mulai.
- Muat ulang jendela jika diminta. Anda dapat menutup tab Panduan Memulai Cepat untuk saat ini.
Menyiapkan tabel di BigQuery
- Di sidebar, kembali ke explorer. Jika folder beranda Anda (misalnya,
/home/your_user_name/) belum terbuka, klik Open Folder, lalu pilih.

- Di jendela explorer, temukan folder yang Anda clone dari repositori (
devrel-demos). Di bagiancodelabs/gke-knowledge-graph/scripts, Anda akan menemukancreate_tables.sql. Buka file tersebut. - Di kanan atas, klik Buka Setelan Kueri.
- Pilih BigQuery. Simpan dan Tutup.
- Klik Run.
Anda akan melihat dua pernyataan berhasil dieksekusi. Sekarang Anda telah membuat tabel untuk menyimpan node dan tepi untuk grafik pengetahuan Anda.
Anda dapat menutup tab create_tables.sql dan konsol hasil.

4. Menginisialisasi Cluster GKE
Kita akan menggunakan GKE Autopilot untuk menjalankan tugas pemrosesan data. Autopilot adalah praktik terbaik yang direkomendasikan karena mengelola infrastruktur cluster untuk Anda.
Saat ini, skrip penyiapan seharusnya sudah selesai. Anda akan melihat pesan berhasil: 🎉🦄 Setup successfully finished! 🎉🦄.
Tempel perintah ini di terminal untuk membuat cluster:
source scripts/setenv.sh
gcloud container clusters create-auto petverse-cluster \
--region=$REGION
🕓 Proses ini akan memakan waktu sekitar 5 menit.
Dapatkan kredensial untuk berinteraksi dengan cluster:
source scripts/setenv.sh
gcloud container clusters get-credentials petverse-cluster --region $REGION
Anda akan melihat output ini:
Fetching cluster endpoint and auth data. kubeconfig entry generated for petverse-cluster.
5. Mengonfigurasi Workload Identity
Workload Identity Federation untuk GKE (menggunakan Akses Langsung ke Resource) memungkinkan workload GKE Anda mengakses layanan Google Cloud dengan aman tanpa perlu mengelola kunci akun layanan.
Jalankan deploy.sh untuk:
- Membuat akun layanan Kubernetes
- Memberikan peran IAM yang diperlukan langsung kepada akun utama Akun Layanan Kubernetes
- Ikat akun layanan IAM ke akun layanan Kubernetes
- Anotasikan akun layanan Kubernetes untuk menyelesaikan penautan
source scripts/setenv.sh
./scripts/deploy.sh
6. Men-deploy Tugas Pemrosesan yang Tidak Terikat
Pada langkah ini, Anda akan men-deploy enqueuer (Produser) dan mesin pemrosesan (Pekerja) ke GKE.
Arsitektur baru kami yang tidak terikat menggunakan Google Cloud Pub/Sub untuk memproses aset secara asinkron:
- Producer memindai GCS dan mengantrekan semua jalur file ke antrean Pub/Sub.
- Kumpulan Pekerja akan di-scale up di GKE, menarik tugas secara paralel secara dinamis, memprosesnya melalui Gemini, dan menulis ke BigQuery.
Skrip setup.sh telah membangun dan mengirim image container Producer dan Worker, mengantrekan topik Pub/Sub, serta membuat manifes deployment GKE Anda secara dinamis: job-producer.yaml dan job-worker.yaml.
- Terapkan Tugas Produser untuk memindai bucket penyimpanan dan mengantrekan semua aset:
kubectl apply -f job-producer.yaml
Tugas ini berjalan dan selesai dengan cepat karena hanya mengantrekan metadata.
- Deploy Tugas Pekerja yang dikonfigurasi untuk menjalankan 6 pekerja paralel untuk menguras antrean:
kubectl apply -f job-worker.yaml
GKE Autopilot akan otomatis mendeteksi pod yang tertunda, menskalakan node komputasi secara dinamis, dan menjalankan pekerja secara paralel untuk memproses audio, video, gambar, dan CSV yang diantrekan.
7. Verifikasi Hasil
- Periksa status tugas Anda:
kubectl get jobs
Tunggu hingga petverse-producer-job dan petverse-worker-job menunjukkan penyelesaian yang berhasil.
🕓 Proses ini akan memakan waktu sekitar 10 menit. Anda dapat melihat progresnya dengan perintah di bawah.
- Periksa log Produser untuk memverifikasi bahwa Produser berhasil mengantrekan file:
cd ~/devrel-demos/codelabs/gke-knowledge-graph
source scripts/setenv.sh
kubectl logs -l app=petverse-producer --tail=50
- Tonton worker paralel Anda memproses file dari antrean:
kubectl logs -l app=petverse-worker --tail=50
(Worker memiliki waktu tunggu tidak aktif 60 detik dan akan otomatis dimatikan serta dibersihkan saat antrean Pub/Sub kosong).
Verifikasi data di BigQuery.
- Buka BigQuery Studio. Anda akan melihat dua tabel yang dibuat: petverse_kg.Nodes dan petverse_kg.Edges.

- Untuk melihat isi tabel, klik dua kali nama tabel, lalu klik Pratinjau.

Anda akan melihat tabel Nodes berisi informasi tentang entitas yang diambil oleh Gemini dalam audio, video, dan gambar. Tabel Edges berisi hubungan di antara keduanya. Misalnya, jika Anda mendengarkan audio kucing bernama SQL, dia suka bermain dengan tali sepatu dan menikmati ikan kering beku.
- Gunakan tombol + untuk membuat kueri baru. Tempelkan pernyataan berikut, lalu klik Run:
SELECT n.name, n.entity_id, e.relationship, e.target_id
FROM
`petverse_kg.Nodes` n
JOIN
`petverse_kg.Edges` e
ON n.entity_id = e.source_id
WHERE n.name = 'SQL'
- Gunakan tombol + untuk membuat kueri baru. Tempelkan pernyataan berikut, lalu klik Run:
SELECT name, entity_type, pet_bio,
AI.SIMILARITY('Pets who like to relax', pet_bio, endpoint => 'text-embedding-005') as similarity_score
FROM `petverse_kg.Nodes`
WHERE name IS NOT NULL
ORDER BY similarity_score DESC
LIMIT 5
Anda akan melihat node untuk hewan peliharaan yang suka bersantai. Kueri ini melakukan penelusuran semantik menggunakan fungsi AI AI.SIMILARITY untuk menemukan hewan peliharaan yang bionya paling mirip dengan teks kueri.

Membangun Grafik Properti
Setelah memiliki node dan tepi di BigQuery, kita dapat membuat Grafik Properti untuk mengkueri hubungan dengan mudah.
Buat Grafik
- Timpa kueri sebelumnya dan jalankan DDL berikut untuk membuat grafik properti:
CREATE OR REPLACE PROPERTY GRAPH `petverse_kg.knowledge_graph`
NODE TABLES (
`petverse_kg.Nodes` AS `Nodes`
KEY (`entity_id`)
LABEL `Nodes` PROPERTIES (entity_id AS `entity_id`, entity_type AS `entity_type`, name AS `name`, pet_bio AS `pet_bio`, properties AS `properties`, bio_embedding AS `bio_embedding`))
EDGE TABLES (
`petverse_kg.Edges` AS `Edges`
KEY (`source_id`,`target_id`,`relationship`)
SOURCE KEY (`source_id`)
REFERENCES `Nodes` (`entity_id`)
DESTINATION KEY (`target_id`)
REFERENCES `Nodes` (`entity_id`)
LABEL `Edges` PROPERTIES (properties AS `properties`));
- Klik Buka Grafik. Anda akan melihat visualisasi grafik dengan node yang memiliki tepi ke dirinya sendiri. Hal ini sudah diperkirakan.

Membuat Kueri Grafik
- Anda dapat menutup semua kueri sebelumnya dan membuka kueri baru yang kosong dengan tombol +.
- Gunakan GQL untuk menemukan hewan peliharaan yang terkait dengan hewan peliharaan lain melalui minat yang sama (seperti hobi, makanan favorit, atau mainan). Kueri multi-hop ini mencocokkan dua hewan peliharaan berbeda yang terhubung ke node yang sama:
GRAPH `petverse_kg.knowledge_graph`
MATCH p = (pet1:Nodes)-[e1]->(interest:Nodes)<-[e2]-(pet2:Nodes)
WHERE pet1.entity_id != pet2.entity_id
AND (LOWER(pet1.entity_type) = 'pet' AND LOWER(pet2.entity_type) = 'pet')
AND LOWER(interest.entity_type) IN ('hobby', 'action', 'activity', 'food', 'toy')
RETURN TO_JSON(p) as res
LIMIT 100
- Anda akan melihat visualisasi grafik. Anda dapat mengklik node untuk melihat properti node dan tepi.

🕵️ Petunjuk: Anda dapat menyesuaikan nilai yang ditampilkan oleh node dengan mengklik Beralih ke tampilan skema:

- Anda dapat menutup semua tab kueri yang terbuka.
8. Memulai percakapan dengan grafik
- Di samping tanda +, Anda akan menemukan menu drop-down. Pilih Percakapan.

- Anda akan diminta untuk mengaktifkan Data Analytics API dengan Gemini. Aktifkan kedua API. Setelah proses ini selesai, muat ulang jendela atau buat percakapan baru untuk melihat agen.
- Klik New Agent.
- Beri nama agen, misalnya,
petverse. - Klik Tambahkan sumber, lalu Grafik.
- Pilih
knowledge_graphyang Anda buat, lalu klik Tambahkan.

Sekarang Anda dapat mengajukan pertanyaan kepada agen dan melihat jawaban serta alasan di baliknya. Berikut beberapa contoh pertanyaan jika Anda memerlukan inspirasi. Model pemikiran mungkin memerlukan waktu lebih lama, tetapi cenderung membuat kueri GQL yang lebih baik. Anda dapat melihat apa yang dibangunnya dengan meluaskan Show Thinking.
- Temukan hewan peliharaan yang menyukai makanan yang sama, yang berteman dengan hewan peliharaan yang suka tidur siang.
- Apakah ada hewan peliharaan yang memiliki hobi, makanan favorit, atau mainan yang sama persis? Buat daftar pasangan dan minat bersama mereka.
- Temukan hewan peliharaan yang memiliki spesies atau ras yang sama, tetapi hobi yang sangat berbeda.
9. Pembersihan
Untuk menghindari biaya berkelanjutan pada akun Google Cloud Anda, hapus resource yang dibuat selama codelab ini.
- Hapus cluster GKE:
gcloud container clusters delete petverse-cluster --region $REGION --quiet
- Hapus set data BigQuery (tindakan ini akan menghapus semua tabel):
bq rm -r -f -d $PROJECT_ID:petverse_kg
- Hapus resource antrean Pub/Sub:
gcloud pubsub subscriptions delete petverse-sub --quiet
gcloud pubsub topics delete petverse-topic --quiet
- Hapus repositori Artifact Registry:
gcloud artifacts repositories delete gke-cats-repo --location=$REGION --quiet
- Hapus bucket GCS khusus project:
gcloud storage buckets delete gs://$PROJECT_ID-petverse --quiet
10. Selamat
Selamat! Anda telah berhasil membangun pipeline grafik pengetahuan terdistribusi menggunakan GKE dan Gemini, serta membuat kueri menggunakan Grafik Properti BigQuery.
Yang telah Anda pelajari
- Cara men-deploy tugas terdistribusi di GKE Autopilot.
- Cara menggunakan Gemini untuk ekstraksi data multimodal.
- Cara menggunakan sematan otomatis BigQuery.
- Cara membuat dan membuat kueri Grafik Properti di BigQuery.