1. 🏰 Disneyland Data Analytics Hackathon (Edisi ke-2 - 3 Desember) 🏰
Ringkasan | Dalam Hackathon ini, Anda akan membangun pipeline analisis data end-to-end yang memanfaatkan kemampuan AI/ML di Google Cloud. Anda akan memuat data ke AlloyDB, database yang kompatibel dengan PostgreSQL yang dikelola sepenuhnya dan dioptimalkan untuk beban kerja yang berat, lalu menggunakan Datastream, layanan change data capture (CDC) serverless, untuk memindahkannya ke BigQuery, data warehouse serverless Google Cloud. Di BigQuery, Anda akan menerapkan BigQuery ML, yang memungkinkan Anda membuat dan menjalankan model machine learning langsung di BigQuery menggunakan SQL standar, untuk analisis ulasan dan perkiraan kehadiran. Terakhir, Anda akan bereksperimen dengan agen, baik yang siap digunakan melalui Conversational Analytics & Agen Data atau membuat agen kustom, yang didukung oleh Agent Development Kit dan MCP toolbox untuk interaksi bahasa alami dengan data Anda. |
kategori | docType:Codelab, product:Bigquery |
Author | Rayhane Rezgui, Matt Cornillon |
Tata letak | men-scroll |
Robot | noindex |
2. Pengantar
Selamat datang, calon ahli data Disney!🪄
Lupakan panduan perjalanan yang membosankan dan penelusuran forum yang tak ada habisnya. Bayangkan merencanakan perjalanan Disneyland yang sempurna, dilengkapi dengan insight berbasis data. Taman mana yang menawarkan pengalaman terbaik? Kapan pengunjung paling sedikit? Dapatkah Anda memprediksi waktu terbaik untuk mengatasi antrean yang terkenal panjang itu?
Dalam Hackathon ini, Anda akan membuat alat perencanaan Disneyland terbaik. Kami memiliki data: ulasan dari pengunjung di seluruh cabang global, histori waktu tunggu, dan angka kehadiran. Misi Anda? Ubah data mentah ini menjadi insight yang dapat ditindaklanjuti:
- Kumpulkan Data: Muat beragam ulasan Disneyland, waktu tunggu, dan angka kehadiran ke dalam AlloyDB, database berperforma tinggi yang kompatibel dengan PostgreSQL.
- Pemindahan yang Lancar: Gunakan Datastream, layanan change data capture tanpa server kami, untuk memindahkan informasi dinamis ini dengan mudah ke BigQuery, data warehouse tanpa server yang canggih dari Google Cloud.
- Prediksi Keajaiban: Manfaatkan BigQuery ML untuk menganalisis sentimen ulasan dan memprediksi waktu tunggu secara langsung dengan SQL. Temukan cabang yang secara konsisten memberikan senyuman dan waktu terbaik untuk berkunjung.
- Berinteraksi dengan data Anda - secara harfiah!: Gunakan alat bawaan yang memungkinkan Anda mendapatkan insight dengan mengayunkan tongkat.
- Interaksi Cerdas: Lengkapi kreasi Anda dengan agen cerdas, yang didukung oleh MCP Toolbox for Databases dan ADK (Agent Development Kit). Tanyakan, "Apa daya tarik terbaik di Disneyland Paris bagi penggemar luar angkasa, dan kapan waktu terbaik untuk mengantre?" dan dapatkan jawaban instan berbasis data.
Bersiaplah untuk mengungkap rahasia tempat-tempat paling ajaib di Bumi dan membangun pipeline analisis data yang akan membuat Mickey bangga.


3. Tugas 1: Dari Operasional ke Analitis; Menganalisis ulasan Disneyland dengan Gemini
Untuk tahap awal ini, Anda akan mengambil data dari database operasional AlloyDB dan memuatnya ke BigQuery untuk analisis data berikutnya.
Anda juga akan menyiapkan semua yang diperlukan di AlloyDB untuk agen Anda di masa mendatang.
Pemuatan data di AlloyDB
Pertama-tama, mari impor beberapa data ke cluster AlloyDB untuk PostgreSQL.
Kita akan memproses 20 ribu ulasan untuk taman hiburan DisneyLand dan daftar atraksi.
Langkah-langkah yang perlu Anda lakukan adalah sebagai berikut:
Pembuatan tabel:
- Buat tabel disneyland_reviews dengan 6 kolom: review_id dan rating sebagai bilangan bulat, year_month, reviewer_location, review_text, branch sebagai teks.
- Buat tabel disneyland_attractions dengan 4 kolom: attraction_id sebagai bilangan bulat, branch, name, dan description sebagai teks.
Dengan menggunakan alat pilihan Anda, impor data dari CSV:
gs://hackathon_data_disneyland_<YOUR_PROJECT_3DIGITS>/reviews.csvuntuk tabel ulasangs://hackathon_data_disneyland_<YOUR_PROJECT_3DIGITS>/attractions.csvuntuk tabel tempat wisata
Untuk memberikan rekomendasi tempat wisata, kita perlu membuat penyematan deskripsi tempat wisata:
- Menginstal ekstensi pgvector di AlloyDB
- Tambahkan kolom vektor bernama "embedding" ke daya tarik tabel Anda
- Buat dan isi embedding deskripsi menggunakan integrasi native antara AlloyDB dan Vertex AI
Dari operasional hingga analitis dengan Datastream
Untuk melakukan streaming data dari AlloyDB ke BigQuery, kita akan menggunakan Google Datastream. Solusi tanpa server yang efektif ini akan memantau semua perubahan pada tabel sumber (menggunakan Pengambilan Data Perubahan) dan mengirimkannya ke BigQuery.
Untuk dapat mereplikasi perubahan dari AlloyDB dengan Datastream, kita perlu membuat apa yang disebut slot replikasi dan publikasi di Postgres.
Jalankan kueri berikut di cluster AlloyDB Anda (Anda harus menjalankannya satu per satu):
CREATE PUBLICATION pub_disney FOR TABLE disneyland_reviews, disneyland_attractions;
ALTER USER postgres WITH REPLICATION;
SELECT PG_CREATE_LOGICAL_REPLICATION_SLOT('slot_disney', 'pgoutput');
Anda akan menggunakan slot publikasi dan replikasi di aliran, jadi ingat nama-namanya.
Itu saja, sekarang kita dapat membuat streaming.
Langkah-langkah yang perlu Anda lakukan di Datastream adalah sebagai berikut:
- Buat profil sumber untuk cluster AlloyDB Anda (gunakan alamat IP publik)
- Membuat profil tujuan untuk BigQuery
- Buat aliran dari AlloyDB ke BigQuery.
Data akan tersedia di BigQuery dalam beberapa menit.
Penemuan Data di BigQuery
Sekarang setelah data kita ada di BigQuery, pastikan kita mengetahui peningkatan baru di antarmuka sebelum mulai bekerja.
Kami memiliki 3 fungsi baru yang sudah dapat Anda lihat di panel eksplorasi BigQuery.

- Ringkasan: berisi informasi tentang fitur BigQuery, panduan untuk memulai analisis, dan kemungkinan lainnya.
- Penelusuran: lakukan penelusuran semantik pada aset data Anda.
- Agen: Ssst! Kita akan membahasnya nanti 🤫
Menelusuri data Anda secara semantik di BigQuery
Buka tab Penelusuran di panel eksplorasi BigQuery, dan coba istilah yang terkait dengan disney seperti "atraksi" atau "cabang".
Memvisualisasikan Data di BigQuery
Anda kini dapat memvisualisasikan dan memanipulasi data di BigQuery. Untuk melakukannya, Anda dapat menjalankan kueri ini di tab kueri baru;
SELECT
*
FROM
[dataset_name].[table_name];
Membuat insight data di tabel ulasan
Dalam tugas ini, Anda akan mengaktifkan insight data di tabel disneyland_reviews dalam set data disney.
Data insights adalah alat untuk siapa saja yang ingin mengeksplorasi data dan memperoleh insight tanpa menulis kueri SQL yang kompleks.
Proses ini mungkin memerlukan waktu beberapa menit.
Mengkueri tabel disneyland_reviews tanpa SQL
Insight yang Anda buat di bagian sebelumnya kini telah siap. Dalam tugas ini, Anda akan menggunakan perintah yang dibuat dari insight ini untuk mengkueri tabel disneyland_reviews tanpa menggunakan kode.
Pilih insight dan jalankan kueri yang terkait dengan insight tersebut. Misalnya, temukan kueri yang menghitung perbedaan rating rata-rata antara bulan-bulan berturut-turut untuk setiap cabang. Tampilannya akan terlihat seperti ini:
WITH
monthly_avg AS (
SELECT
branch,
year_month,
AVG(rating) AS avg_rating
FROM
[dataset_name].[table_name]
WHERE
year_month IS NOT NULL
GROUP BY
1,
2 )
SELECT
branch,
year_month,
avg_rating,
avg_rating - LAG(avg_rating, 1, 0) OVER (PARTITION BY branch ORDER BY year_month) AS rating_difference
FROM
monthly_avg
ORDER BY
branch,
year_month;
Menggunakan Mesin pengetahuan BigQuery untuk lebih memahami data
Pertama-tama, mari kita mulai dengan melihat tab Insight di tingkat set data. Hal ini akan memberi kita gambaran tentang hubungan tersembunyi di seluruh tabel dalam set data disney. Lalu:
- Buat deskripsi set data menggunakan Gemini dan tambahkan ke detail set data.
- Buat deskripsi ulasan dan tempat menarik dalam tabel; serta semua kolom individual dalam tabel tersebut, lalu simpan.
Melakukan pemindaian profil data Anda
Tujuan bagian ini adalah untuk membersihkan dan menyiapkan data Anda. Namun, Anda tidak terlalu memahami distribusi nilai setiap kolom. Anda perlu membuat profil data untuk mengetahui jenis langkah transformasi yang perlu dilakukan pada data Anda.
Dataplex Universal Catalog Google Cloud mengotomatiskan pemindaian pembuatan profil untuk memberikan metrik kualitas data yang konsisten. Statistik utama yang diidentifikasi mencakup jumlah nilai null, nilai unik, rentang data, dan distribusi nilai. Anda dapat mengaktifkan pemindaian profil melalui Antarmuka BigQuery.
Proses ini dapat memerlukan waktu beberapa menit, jadi Anda dapat melihat bagian berikutnya sambil menunggu.
Jawablah pertanyaan berikut:
- Berapa rating rata-rata Disneyland?
- Di mana lokasi pemberi ulasan terbanyak?
- Apakah semua ulasan unik?
- Berapa persentase data yang hilang dari kolom Year_Month?
Melakukan pemindaian kualitas data Anda
Kualitas data otomatis Dataplex Universal Catalog memungkinkan Anda menentukan dan mengukur kualitas data di tabel BigQuery. Anda dapat mengotomatiskan pemindaian data, memvalidasi data terhadap aturan yang ditentukan, dan mencatat pemberitahuan jika data Anda tidak memenuhi persyaratan kualitas. Anda dapat mengelola aturan dan deployment kualitas data sebagai kode, sehingga meningkatkan integritas pipeline produksi data.
Berdasarkan pemindaian profil, tentukan pemindaian kualitas (pada tidak lebih dari 10% data Anda sebagai ukuran sampel) yang:
- Memeriksa nilai null untuk kolom "branch"
- Melakukan pemeriksaan validitas untuk "rating", karena hanya dapat berupa dalam set : 1,2,3,4,5
- Memeriksa keunikan "review_id"
Pastikan pemindaian mengekspor hasil ke BigQuery Table quality_scan_results.
Pikirkan semua potensi transformasi yang perlu Anda terapkan pada data Anda.
Menyiapkan data Anda menggunakan Persiapan Data Gemini
Setelah pemindaian kualitas dan pembuatan profil data yang Anda lakukan, sekarang saatnya membersihkan data sebelum menganalisisnya.
Persiapan data adalah resource BigQuery, yang menggunakan Gemini di BigQuery untuk menganalisis data Anda dan memberikan saran cerdas untuk membersihkan, mentransformasi, dan memperkayanya. Anda dapat secara signifikan mengurangi waktu dan upaya yang diperlukan untuk tugas penyiapan data manual.
Di bagian ini, Anda akan menggunakan Penyiapan Data untuk melakukan operasi berikut pada tabel disneyland_reviews:
- Memfilter baris yang kolom Cabangnya adalah NULL atau string kosong.
- Ganti "missing" di Year_Month dengan Null.
- Mengganti garis bawah dengan spasi di kolom cabang untuk meningkatkan keterbacaan
- Ekspor ke tabel yang telah diubah disneyland_reviews_cleaned
Menganalisis ulasan dengan Gemini
Setelah membersihkan data, Anda dapat mulai menganalisisnya menggunakan model Gemini dan BigQuery ML. Anda memiliki dua tujuan:
- Mengekstrak kategori dari ulasan
- Analisis Sentimen disneyland_reviews
BigQuery ML memungkinkan Anda membuat dan menjalankan model machine learning (ML) menggunakan kueri GoogleSQL. Model BigQuery ML disimpan dalam set data BigQuery, mirip dengan tabel dan tampilan. BigQuery ML juga memungkinkan Anda mengakses model Vertex AI dan Cloud AI API untuk melakukan tugas kecerdasan buatan (AI) seperti pembuatan teks atau terjemahan mesin. Gemini untuk Google Cloud juga memberikan bantuan berteknologi AI untuk tugas BigQuery.
Anda dapat memilih untuk menggunakan ML.GENERATE_TEXT atau AI.GENERATE (pratinjau) dengan model Gemini Pro atau Flash.
Langkah-langkah berikut akan memandu Anda jika ingin menggunakan ML.GENERATE_TEXT.
Membuat koneksi resource cloud dan memberikan peran IAM
Anda perlu membuat koneksi resource Cloud di BigQuery ke model Vertex AI agar Anda dapat bekerja dengan model Gemini Pro dan Gemini Flash. Anda juga akan memberikan izin IAM akun layanan untuk koneksi resource cloud, melalui sebuah peran, untuk mengaktifkan akses ke layanan Vertex AI.
Memberikan peran Vertex AI User ke akun layanan koneksi
Izinkan akun layanan koneksi menggunakan model pilihan Anda (misalnya gemini-2.5-flash), dengan memberikan peran Vertex AI User kepadanya. Diperlukan waktu 1 menit agar izin diterapkan.
Membuat model Gemini di BigQuery
Buat model Anda menggunakan koneksi di atas. Misalnya, gunakan endpoint gemini-2.5-flash.
Memerintahkan Gemini menganalisis ulasan pelanggan berdasarkan kategori dan sentimen
Dalam tugas ini, Anda akan menggunakan model Gemini untuk menganalisis setiap ulasan pelanggan terkait kategori dan sentimen, baik positif maupun negatif.
Menganalisis ulasan pelanggan untuk mengidentifikasi kategori
Catatan: Mulai sekarang, untuk analisis, kita hanya akan mengambil 100 baris, karena panggilan Gemini pada 20 ribu baris dapat memerlukan waktu.
Extract categories by modifying and running the following SQL Query:
CREATE OR REPLACE TABLE
[dataset_name].[results_table_name] AS (
SELECT Review_ID, Rating, Year_Month, Reviewer_Location, Review_Text, Branch, ml_generate_text_llm_result AS categories FROM
ML.GENERATE_TEXT(
MODEL [model_name],
(
SELECT Review_ID, Rating, Year_Month, Reviewer_Location, Review_Text, Branch, CONCAT(
'[WRITE YOUR PROMPT HERE].',
Review_Text) AS prompt
FROM (SELECT * FROM [dataset_name].[table_name] LIMIT 100)
),
STRUCT(
0.2 AS temperature, TRUE AS flatten_json_output)));
Kueri ini mengambil ulasan pelanggan dari tabel disneyland_reviews, menyusun perintah untuk model gemini guna mengidentifikasi kategori dalam setiap ulasan. Hasilnya harus disimpan dalam tabel baru reviews_categories
. Harap tunggu. Model ini memerlukan waktu sekitar 30 detik untuk memproses kumpulan data ulasan pelanggan dan menampilkan hasilnya dalam tabel output.
Tampilkan hasilnya:
SELECT * FROM [dataset_name].[results_table_name];
Luangkan waktu untuk membaca beberapa kategori.
Menganalisis ulasan pelanggan untuk mengidentifikasi sentimen positif dan negatif
Berdasarkan kueri SQL untuk Ekstraksi kata kunci, tulis kueri yang menganalisis ulasan menjadi Positif, Negatif, dan Netral dalam kolom yang disebut "sentimen".
Kueri ini mengambil ulasan pelanggan dari tabel disneyland_reviews, menyusun perintah untuk model gemini guna mengklasifikasikan sentimen setiap ulasan. Hasilnya kemudian disimpan dalam tabel baru reviews_analysis, sehingga Anda dapat menggunakannya untuk melakukan analisis lebih lanjut di kemudian hari. Harap tunggu. Model ini perlu waktu beberapa detik untuk memproses kumpulan data ulasan pelanggan. Setelah selesai, hasilnya ada di tabel reviews_analysis yang dibuat.
Jelajahi hasilnya:
SELECT * FROM [...];
Tabel reviews_analysis memiliki kolom Sentiment yang berisi analisis sentimen, dengan kolom social_media_source, review_text, customer_id, location_id, dan review_datetime disertakan. Perhatikan beberapa kumpulan data. Anda mungkin mendapati beberapa hasil ulasan positif dan negatif mungkin memiliki format yang tidak tepat, misalnya berisi karakter yang tidak relevan seperti titik atau spasi berlebih. Anda dapat membuat tampilan bersih kumpulan data tersebut dengan cara berikut.
Membuat tabel virtual untuk membersihkan kumpulan data
Buat tampilan yang membersihkan nilai sentimen kolom dengan:
- Menggunakan LOWER untuk memastikan semua nilai berupa huruf kecil.
- Menghapus tanda baca (. dan , dan spasi) menggunakan REPLACE
CREATE OR REPLACE VIEW [view_name] AS
SELECT [SANITIZATION_EXPRESSION] AS sentiment,
Review_ID, Rating, Year_Month, Reviewer_Location, Review_Text, Branch,
FROM `disney.reviews_analysis`;
Kueri ini membuat tabel virtual cleaned_data_view dan menyertakan hasil sentimen, teks ulasan, Review_ID, Rating, Year_Month, Reviewer_Location, Review_Text and Branch. Kode ini selanjutnya mengambil hasil sentimen (positif atau negatif) dan memastikan semua huruf ditulis menggunakan huruf kecil, serta karakter yang tidak relevan seperti spasi atau titik dihapus. Tabel virtual yang dihasilkan akan memudahkan analisis lebih lanjut pada langkah berikutnya dalam lab ini.
- Anda dapat mengajukan kueri di bawah pada tabel virtual untuk melihat baris yang dibuat.
SELECT * FROM [view_name];
Membuat laporan jumlah ulasan positif dan negatif dengan Kanvas Data
Sekarang, saatnya menganalisis hasil Anda. Mari kita mulai dengan melakukannya langsung di BigQuery, melalui Kanvas Data. Alat ini memungkinkan Anda menelusuri data (secara semantik atau kata kunci), membuat kueri dan menggabungkan tabel, membuat grafik, serta mendapatkan insight dengan membuat alur kanvas.
Tujuan akhir Anda adalah membuat grafik pilihan Anda tentang persentase ulasan positif vs. negatif. Berikut contohnya:

Buat grafik jumlah ulasan per kategori, serta distribusi ulasan positif dan negatif untuk setiap kategori
Tips: Aktifkan dan gunakan Analisis Lanjutan Data Canvas, yang menjalankan Notebook Python di dalam kanvas.
4. Tugas 2: Analisis gambar taman hiburan untuk mengidentifikasi foto Disneyland & ekstrak fakta menarik dari Brosur Taman
Analisis Gambar di BigQuery
Anda memiliki akses ke beberapa foto taman hiburan yang menarik dan memukau yang diambil pengunjung selama bertahun-tahun. Anda sangat bersemangat untuk perjalanan mendatang. Namun, Anda tidak tahu mana yang merupakan foto Disneyland yang sebenarnya. Anda ditugaskan untuk mengidentifikasi orang-orang tersebut. Gambar terletak di gs://hackathon_data_disneyland_<YOUR_PROJECT_3DIGITS>/attraction_parc_photos/.

Is_disneyland: False

Is_disneyland: True
Untuk melakukan analisis ini dengan cepat. Anda harus menggunakan tabel objek BigQuery dan Gemini melalui BigQuery ML (ML.GENERATE_TEXT).
Dapatkah Anda memverifikasi output Gemini dengan memeriksa beberapa foto?
Membuat sistem RAG Anda sendiri dengan BigQuery pada brosur Disneyland
Saat mengantre, Anda ingin mendapatkan beberapa fakta menarik/detail teknis tentang tempat wisata yang sedang Anda tunggu.
Di gs://hackathon_data_disneyland_<YOUR_PROJECT_3DIGITS>/disneyland_brochures/,, Anda akan menemukan file PDF yang berisi brosur untuk semua taman di seluruh dunia.
Tujuan: Membuat sistem Retrieval-Augmented Generation (RAG) sepenuhnya dalam BigQuery untuk memungkinkan pengguna mengajukan pertanyaan kompleks tentang taman berdasarkan beberapa dokumen PDF.
Untuk melakukannya, Anda harus:
- Membuat tabel objek file PDF
- Buat UDF Python untuk membagi file PDF. Berikut contoh yang dapat Anda gunakan:
CREATE OR REPLACE FUNCTION disney.chunk_pdf(src_json STRING, chunk_size INT64, overlap_size INT64)
RETURNS ARRAY<STRING>
LANGUAGE python
WITH CONNECTION `[LOCATION].[CONN_NAME]`
OPTIONS (entry_point='chunk_pdf', runtime_version='python-3.11', packages=['pypdf'])
AS """
import io
import json
from pypdf import PdfReader # type: ignore
from urllib.request import urlopen, Request
def chunk_pdf(src_ref: str, chunk_size: int, overlap_size: int) -> str:
src_json = json.loads(src_ref)
srcUrl = src_json["access_urls"]["read_url"]
req = urlopen(srcUrl)
pdf_file = io.BytesIO(bytearray(req.read()))
reader = PdfReader(pdf_file, strict=False)
# extract and chunk text simultaneously
all_text_chunks = []
curr_chunk = ""
for page in reader.pages:
page_text = page.extract_text()
if page_text:
curr_chunk += page_text
# split the accumulated text into chunks of a specific size with overlaop
# this loop implements a sliding window approach to create chunks
while len(curr_chunk) >= chunk_size:
split_idx = curr_chunk.rfind(" ", 0, chunk_size)
if split_idx == -1:
split_idx = chunk_size
actual_chunk = curr_chunk[:split_idx]
all_text_chunks.append(actual_chunk)
overlap = curr_chunk[split_idx + 1 : split_idx + 1 + overlap_size]
curr_chunk = overlap + curr_chunk[split_idx + 1 + overlap_size :]
if curr_chunk:
all_text_chunks.append(curr_chunk)
return all_text_chunks
""";
- Mengurai file PDF menjadi beberapa bagian
- Membuat embedding setelah membuat model jarak jauh
- Menjalankan penelusuran vektor untuk menemukan "
Ou manger un repas tex-mex à volonté?" atau "where to eat a tex-mex meal buffet-style?" - Buat jawaban yang ditingkatkan dengan hasil penelusuran vektor dari pertanyaan "
Ou manger un repas tex-mex à volonté?" atau ""where to eat a tex-mex meal buffet-style?"
5. Tugas 3: Machine Learning dalam skala besar dengan BigQuery: Peramalan, klasifikasi & peringkat
Perkiraan Waktu tunggu
Gambarnya keren sekali! Anda sudah tidak sabar! Sekarang, untuk mengetahui atraksi mana yang harus dipilih dan mana yang harus dihindari, Anda perlu mengetahui waktu tunggu sebenarnya untuk beberapa atraksi antara Paris dan California. Tugas Anda adalah memperkirakan waiting_times setiap tempat wisata menggunakan Machine Learning (Arima plus atau TimesFM) untuk setiap 30 menit pada tahun 2025.
Data yang akan Anda gunakan ada dalam file CSV ini: gs://hackathon_data_disneyland_<YOUR_PROJECT_3DIGITS>/waiting_times.csv
Langkah-langkah tugas Anda adalah:
- Muat file ke set data BigQuery Anda dalam tabel bernama waiting_times.
- Melatih model perkiraan pada data Anda (Arima_Plus) atau membuat perkiraan secara langsung menggunakan AI.Forecast
- Mengevaluasi performa model atau membandingkan data perkiraan dengan data input
Mengklasifikasikan perjalanan berdasarkan intensitas
Anda mengunjungi Disneyland bersama teman, dan meskipun taman ini umumnya cocok untuk keluarga, beberapa wahana bisa terlalu berat bagi sebagian orang. Mari kita gunakan fungsi AI Terkelola BigQuery untuk mengklasifikasikan dan memberi peringkat tempat wisata berdasarkan tingkat keseruan & intensitas, tanpa bias manusia, sehingga kita dapat mengakomodasi semua orang.
- Gunakan
AI.CLASSIFYuntuk mengategorikan perjalanan berdasarkan deskripsinya ke dalam salah satu dari tiga kategori ajaib: [easy-peasy, thrilling, extreme]
Mengurutkan perjalanan berdasarkan tingkat keseruan
- Gunakan
AI.SCOREuntuk membandingkan dan mengurutkan tempat wisata berdasarkan tingkat keseruan, dengan Peringkat 10 adalah yang paling ekstrem dan Peringkat 1 adalah yang paling rendah.
6. Tugas 3-Bonus: Reverse-ETL, dari BigQuery ke AlloyDB
Anda telah memanfaatkan kemampuan canggih BigQuery untuk menghasilkan insight pada data dalam jumlah besar. Sekarang Anda ingin wawasan tersebut dapat ditindaklanjuti oleh aplikasi operasional (dan agen AI).
Tetapi bagaimana caranya? Dengan melakukan hal sebaliknya. AlloyDB untuk Postgres unggul dalam menyajikan data dengan latensi rendah dan kecepatan tinggi, sangat cocok untuk aplikasi penting yang berinteraksi dengan pengguna. Jadi, mari kita lakukan reverse-ETL pada data yang baru saja kita buat.
Untuk melakukannya, kita akan menggunakan fitur baru, yang masih dalam pratinjau pribadi, yang disebut "tampilan BigQuery" di AlloyDB. Fitur ini memungkinkan Anda membuat kueri data BigQuery langsung di database Postgres.
Pertama, Anda harus memberikan hak istimewa yang diperlukan kepada akun layanan cluster AlloyDB untuk membuat kueri BigQuery.
gcloud beta alloydb clusters describe <CLUSTER ID> --region=europe-west1
Output berisi kolom serviceAccountEmail, yang merupakan akun layanan untuk cluster ini.
Di Konsol Google Cloud, buka halaman IAM dan berikan hak istimewa berikut kepada pokok ini:
- BigQuery Data Viewer (roles/bigquery.dataViewer)
- BigQuery Read Session User (roles/bigquery.readSessionUser)
Sekarang, buka AlloyDB Studio di Konsol dan hubungkan ke database "postgres".
Jalankan kueri berikut untuk menginstal dan mengonfigurasi fitur baru:
CREATE EXTENSION bigquery_fdw;
CREATE SERVER bq_disney FOREIGN DATA WRAPPER bigquery_fdw;
CREATE USER MAPPING FOR postgres SERVER bq_disney ;
Anda kini dapat membuat "tabel asing" yang akan dipetakan ke tabel saat ini di BigQuery. Gunakan tabel apa pun yang Anda buat di Tugas 3. Berikut contoh sintaksisnya:
CREATE FOREIGN TABLE reviews_analysis ( "Review_ID" int,
"Sentiment" text) SERVER bq_disney OPTIONS (PROJECT 'bqml-hack25par-xxx',
dataset 'disney',
TABLE 'reviews_analysis');
Semua sudah siap, mari kita buat kueri tabel. Jalankan SELECT pertama untuk memvalidasi link antara AlloyDB dan BigQuery, lalu buat tabel baru di AlloyDB untuk menyerap data dari tabel asing Anda.
7. Tugas 4: Agen Data Siap Pakai
Anda memiliki teman yang ingin berkontribusi pada project Aplikasi Disneyland. Mereka memiliki akses ke data di BigQuery, tetapi memiliki tingkat yang berbeda dalam SQL dan rekayasa data. Anda ingin memanfaatkan pengumuman terbaru BigQuery terkait agen data yang sudah terintegrasi ke dalam UI untuk membantu teman Anda:
- Buat pipeline Data.
- Berkolaborasi pada kode SQL.
- Mulai percakapan dengan Data mereka.
Agen Data Engineering untuk mengotomatiskan Pipeline Data Anda
Buat tampilan baru average_waiting_time yang menggabungkan tabel waiting_time dan attractions, serta menghitung average_waiting_time per attraction, menggunakan Agen Data Engineering.
Membuat agen Analisis Percakapan di BigQuery
Bagaimana jika Anda dapat membuat agen untuk berinteraksi dengan data Anda, tanpa coding, tanpa SQL, dan tanpa deployment, serta dari antarmuka BigQuery, bukankah itu keren? Sekarang hal itu dapat dilakukan dengan tab "Agen" di BigQuery.

- Buat agen my_disney_friend, yang terhubung ke tabel disney Anda. Anda dapat meningkatkan performa agen dengan mengisi petunjuk Agen. Ajukan pertanyaan seperti "berapa persentase ulasan positif vs. negatif, berapa rata-rata waktu tunggu per tempat wisata,dll ...?"
- Publikasikan agen di BigQuery dan di API (Anda akan menggunakannya nanti).
8. Tugas 5: Meningkatkan pengalaman pengembangan Anda dengan Gemini-CLI
Di era AI ini, membangun software tidak pernah semudah ini. Anda memiliki ribuan ide untuk aplikasi Disneyland, dan Anda ingin menggunakan data Anda dengan kapasitas maksimum. Anda ingin melangkah lebih jauh dari sekadar berbicara dengan data, sekarang Anda perlu tindakan.
Untuk membantu Anda dalam perjalanan tersebut, Anda akan memerlukan bantuan. Dan kami siap membantu Anda.
Gemini CLI adalah agen AI open source yang menghadirkan kecanggihan Gemini langsung ke terminal Anda. Developer dapat membangun aplikasi yang canggih dan berkat ekstensi, mereka juga dapat berinteraksi dengan berbagai server MCP (Model Context Protocol).
Di antaranya, Anda tentu saja dapat menemukan ekstensi untuk membuat kueri data AlloyDB atau BigQuery.
Dalam tugas ini, sasaran Anda adalah:
- Instal Gemini-CLI (di terminal Anda sendiri atau di Cloud Shell)
- Menginstal ekstensi Gemini-CLI BigQuery dan AlloyDB
- Buat file lingkungan yang memungkinkan Gemini-CLI terhubung ke instance BigQuery dan AlloyDB Anda
- Minta Gemini-CLI untuk membuat satu halaman HTML menarik yang menjelaskan konten database AlloyDB Anda
- Lakukan hal yang sama untuk BigQuery
Berikut beberapa contoh hal yang dapat Anda hasilkan dalam satu (atau beberapa) perintah dengan Gemini-CLI dan ekstensinya. Sekarang bayangkan Anda dapat melakukannya dengan aplikasi kehidupan nyata? 

9. Tugas 6: Membuat agen AI untuk berinteraksi dengan data Anda
Untuk menawarkan pengalaman pengguna yang benar-benar baru kepada pengunjung Disneyland, Anda akan membuat asisten yang dapat membantu mereka selama perjalanan. Agen Anda akan dapat:
- Mencantumkan semua tempat wisata yang tersedia di taman
- Merekomendasikan tempat wisata berdasarkan ekspektasi
- Menambahkan ulasan untuk tempat wisata
- Memberikan perkiraan waktu tunggu untuk suatu tempat wisata dalam beberapa jam ke depan
- Memberikan ringkasan ulasan untuk tempat wisata tertentu
Anda akan memastikan bahwa asisten Anda hanya dapat menjawab pertanyaan terkait DisneyLand, dan menggunakan nada yang ramah dengan pengguna. Sesuaikan perintah agen Anda untuk memastikan agen memilih alat yang tepat untuk kebutuhan pengguna.
Langkah-langkah yang perlu Anda ikuti adalah:
- Men-deploy server MCP Toolbox for Databases yang menggunakan AlloyDB dan BigQuery sebagai sumber
- Nyatakan 5 alat berbeda untuk server MCP Anda yang mengkueri AlloyDB dan BigQuery serta memetakan tindakan agen yang tercantum sebelumnya
- Menggunakan UI MCP Toolbox untuk memvalidasi setiap alat Anda
- Men-deploy agen menggunakan Agent Development Kit yang dapat menggunakan alat yang diekspos oleh server MCP Toolbox Anda
- Hubungkan ke antarmuka web ADK dan tunjukkan diskusi lengkap dengan asisten Anda, termasuk semua alat yang tersedia
Langkah bonus jika Anda selesai lebih awal:
Agen Anda sudah siap? Mari kita deploy ke Agent Engine.