Lab 2: Analisis Data & Insight Multimodal

1. Pengantar

Penampung tidak ada

Di lab sebelumnya, Anda telah menggabungkan log pengiriman yang terfragmentasi dan melacak transponder kargo ke New York. Namun, catatan kedatangan menunjukkan bahwa kontainer segera dialihkan untuk menghindari deteksi bea cukai. Jalur ini kini membawa Anda ke Pelabuhan Rio de Janeiro, sebuah pelabuhan luas dengan ribuan kontainer. Menemukan container yang tepat di antara ribuan container lainnya adalah tugas yang sulit.

Di lab ini, Anda akan menggunakan kemampuan AI bawaan BigQuery untuk "membaca" gambar keamanan pelabuhan yang tidak terstruktur dan mendeteksi anomali termal dalam data sensor, semuanya menggunakan SQL standar. Kemudian, Anda akan mengekspor embedding vektor ke AlloyDB dan menjalankan penelusuran vektor untuk mencocokkan sinyal telemetri yang terfragmentasi dengan penampung yang hilang.

Yang akan Anda lakukan

  • Memindai gambar keamanan port untuk mengidentifikasi kontainer yang dicuri menggunakan BigQuery AI
  • Mendeteksi anomali termal menggunakan AI BigQuery untuk mengonfirmasi bahwa kontainer dicuri, bukan salah taruh
  • Membuat embedding vektor dan memuatnya ke AlloyDB untuk penelusuran real-time
  • Mencocokkan sinyal suar telemetri yang terfragmentasi untuk menemukan lokasi container yang dicuri menggunakan Vector Search
  • Jelajahi data investigasi dengan bahasa alami menggunakan Conversational Analytics

Yang Anda butuhkan

  • Browser web seperti Chrome
  • Project Google Cloud yang mengaktifkan penagihan
  • Pemahaman dasar tentang SQL dan Konsol Google Cloud

Codelab ini ditujukan untuk developer tingkat menengah.

Resource yang dibuat dalam codelab ini seharusnya berbiaya kurang dari $5.

2. Sebelum Memulai

Mulai Cloud Shell

Anda akan menggunakan Google Cloud Shell untuk mendownload kode, menjalankan skrip penyiapan, dan men-deploy aplikasi.

  1. Di tab browser baru, buka Cloud Shell: shell.cloud.google.com
  2. Setelah terhubung, tetapkan project ID Anda dan konfirmasi lingkungan Anda:
gcloud config set project <<YOUR_PROJECT_ID>>
export PROJECT_ID=$(gcloud config get-value project)
export REGION=us-central1

Anda akan melihat pesan yang mirip dengan:

Your active configuration is: [cloudshell-####]
Updated property [core/project]

Membuat Clone Repositori

Clone repositori codelab ke lingkungan Cloud Shell Anda:

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/bigquery-alloydb-insights
git checkout main
cd codelabs/bigquery-alloydb-insights/

Mengaktifkan API

Jalankan perintah ini di Cloud Shell untuk mengaktifkan semua API yang diperlukan untuk lab ini:

gcloud services enable \
  aiplatform.googleapis.com \
  bigquery.googleapis.com \
  bigqueryconnection.googleapis.com \
  alloydb.googleapis.com

Setelah berhasil dieksekusi, Anda akan melihat pesan yang mirip dengan:

Operation "operations/..." finished successfully.

3. Menyiapkan Lingkungan Anda

Sebelum dapat menganalisis gambar dan data telemetri, Anda perlu menyiapkan infrastruktur untuk lab ini. Anda akan menjalankan dua skrip: satu untuk memulai penyediaan AlloyDB di latar belakang, dan yang lainnya untuk membuat semua resource BigQuery yang Anda perlukan.

Langkah 1: Mulai Deployment AlloyDB (Latar Belakang)

Penyediaan cluster AlloyDB memerlukan waktu sekitar 10 menit, jadi Anda akan memulainya terlebih dahulu dan membiarkannya berjalan di latar belakang saat Anda mengerjakan bagian BigQuery. Skrip akan otomatis mencatat setelan project aktif Anda ke file .env lokal sehingga konfigurasi Anda disimpan meskipun terminal Cloud Shell Anda ditutup atau dimulai ulang.

chmod +x scripts/setup_alloydb.sh
nohup ./scripts/setup_alloydb.sh > /dev/null 2>&1 &
echo "AlloyDB deployment started in background (PID: $!)"

Langkah 2: Jalankan Skrip Penyiapan

Skrip ini membuat set data BigQuery, koneksi resource Cloud, pemberian IAM, bucket GCS, dan memuat semua data sensor yang akan Anda analisis di lab ini. Skrip ini juga akan membaca dan memverifikasi variabel lingkungan yang disimpan dalam file .env.

chmod +x scripts/setup_lab.sh
./scripts/setup_lab.sh

Skrip memerlukan waktu sekitar satu menit untuk dijalankan. Setelah selesai, Anda akan melihat ringkasan semua yang dibuatnya.

📝 Catatan tentang reset lingkungan Jika sesi Cloud Shell Anda habis atau dimulai ulang kapan saja selama lab ini, Anda dapat memulihkan variabel terminal Anda dengan segera dengan menjalankan:

source scripts/setenv.sh

Langkah 3: Buka Cloud Shell Editor

Anda telah menggunakan terminal Cloud Shell sejauh ini. Sekarang beralihlah ke Cloud Shell Editor lengkap, yang memberi Anda ruang kerja seperti VS Code dengan dukungan BigQuery terintegrasi.

  1. Di panel terminal Cloud Shell di bagian bawah layar, klik tombol Open Editor untuk meluncurkan ruang kerja Cloud Shell Editor.

Buka Cloud Shell Editor

Langkah 4: Instal Ekstensi Data Agent Kit

Ekstensi Google Cloud Data Agent Kit memberikan integrasi yang mendalam dengan layanan data Google Cloud langsung dalam editor Anda, sehingga Anda dapat berinteraksi dengan BigQuery, AlloyDB, Cloud Storage, dan lainnya tanpa perlu berganti konteks.

  1. Di Cloud Shell Editor, klik ikon Extensions di Panel Aktivitas di sisi paling kiri layar (terlihat seperti empat persegi).
  2. Di kotak penelusuran di bagian atas panel Ekstensi, ketik googlecloudtools.datacloud.
  3. Temukan ekstensi bernama Google Cloud Data Agent Kit yang dipublikasikan oleh Google Cloud.
  4. Klik tombol Install.
  5. Perintah akan muncul dan menanyakan, "Apakah Anda memercayai penayang 'googlecloudtools' dan ekstensinya?". Klik Percayai Penayang & Instal untuk melanjutkan.

Menginstal ekstensi Data Agent Kit

Langkah 5: Lakukan Autentikasi dan Konfigurasi Ekstensi

Setelah penginstalan, hubungkan ekstensi ke project Google Cloud Anda.

  1. Halaman aktivasi berjudul "Aktivasi Kit Agen Data Google Cloud" akan terbuka secara otomatis. Klik Sign in to Google Cloud. Ikuti petunjuk browser untuk mengizinkan akses.
  2. Modal "Penyiapan sedang berlangsung" akan muncul. Ekstensi akan otomatis memeriksa dependensi yang diperlukan seperti Google Cloud CLI.
  3. Di bagian Ringkasan Konfigurasi, temukan kolom project. Klik dropdown, lalu pilih project Google Cloud Anda. Tetapkan region Anda sebagai us-central1.
  4. Tunggu hingga pemeriksaan penyiapan selesai. Setelah Anda melihat "Penyiapan Selesai!", klik Konfigurasi Server MCP.

Mengonfigurasi ekstensi

  1. Pilih BigQuery dan AlloyDB di bagian Konfigurasi MCP, lalu klik Mulai.

Langkah 6: Jelajahi Opsi Konfigurasi

Setelah penyiapan selesai, Anda akan diarahkan ke dasbor "Mulai menggunakan Kit Agen Data Google Cloud".

  1. Di bagian "Penyiapan & Konfigurasi", klik Mulai.
  2. Tindakan ini akan membuka panel Konfigurasi Agen Data. Jelajahi tab:
    • Project dan Region: Verifikasi Project ID yang Anda pilih dan periksa apakah API yang diperlukan (Cloud Storage API, BigQuery API, Catalog API, dan AlloyDB API) sudah diaktifkan.
    • BigQuery: Konfigurasi lokasi default untuk kueri BigQuery Anda. Gunakan region us-central1.
    • Mengonfigurasi Server MCP: Lihat server MCP yang diaktifkan (BigQuery, Notebook, AlloyDB, dll.) yang memungkinkan agen AI berinteraksi dengan data Anda secara aman.
    • Keahlian: Jelajahi keahlian bawaan yang memberikan kemampuan khusus kepada agen untuk menangani tugas data yang kompleks.

Panel Konfigurasi Agen Data

Langkah 7: Verifikasi dengan BigQuery

Pastikan semuanya berfungsi dengan menjalankan kueri cepat terhadap set data publik.

  1. Di panel Data Agent Kit di sebelah kiri, luaskan bagian BigQuery, lalu klik New Query untuk membuka tab editor kueri baru.
  2. Simpan file dengan menekan Ctrl+S (Windows/Linux) atau Cmd+S (macOS) dan beri nama bigquery. Tab ini akan digunakan untuk semua operasi BigQuery Anda.
  3. Klik Setelan Kueri dengan tab bigquery.sql aktif, pilih BigQuery sebagai Sumber Data, lalu klik Simpan.

Membuka Setelan Kueri

  1. Jalankan kueri berikut terhadap set data publik:
SELECT
  term,
  MIN(rank) AS peak_rank,
  ROUND(AVG(score)) AS avg_score
FROM `bigquery-public-data.google_trends.top_terms`
WHERE refresh_date = DATE_SUB(CURRENT_DATE(), INTERVAL 2 DAY)
GROUP BY term
ORDER BY peak_rank ASC
LIMIT 10;
  1. Anda akan melihat 10 istilah penelusuran Google trending teratas dari beberapa hari terakhir. Jika hasil muncul, ekstensi Anda terhubung dan siap.

Memverifikasi hasil kueri BigQuery

Sekarang coba kueri terhadap data lab yang baru saja dibuat oleh skrip penyiapan Anda. Ganti kueri yang ada dengan kueri ini:

SELECT * FROM `lost_cargo_dataset.telemetry_data` LIMIT 5;

Anda akan melihat entri log telemetri dengan kolom shipment_id dan telemetry_string. Ini adalah data yang akan Anda analisis di sepanjang lab.

Ringkasan Bagian: Anda memulai deployment AlloyDB di latar belakang, menjalankan skrip penyiapan, dan mengonfigurasi Editor Cloud Shell dengan ekstensi Data Agent Kit.

4. Memindai Rekaman Video Keamanan

Tim investigasi telah memulihkan rekaman video keamanan dari Pelabuhan Rio de Janeiro yang menunjukkan deretan peti kemas. Dari Lab 1, Anda tahu bahwa penampung target adalah merah. Sekarang Anda perlu mengidentifikasi dengan tepat kontainer merah yang dimaksud.

Anda akan membuat Tabel Objek yang memungkinkan BigQuery "melihat" gambar keamanan di Cloud Storage, lalu menggunakan fungsi AI.GENERATE untuk meminta Gemini mengekstrak data terstruktur dari setiap gambar.

Langkah 1: Buat Tabel Objek

Tabel Objek adalah tabel BigQuery khusus yang berfungsi sebagai indeks atas file tidak terstruktur (gambar, PDF, audio) yang disimpan di Cloud Storage. File tidak disalin ke BigQuery, tetapi referensi yang dapat dikueri dibuat sehingga fungsi AI dapat "melihat" file tersebut.

Di tab bigquery.sql di editor, jalankan pernyataan berikut untuk membuat Tabel Objek yang mengarah ke gambar keamanan port di bucket project Anda:

SET @@location = 'us-central1';

EXECUTE IMMEDIATE CONCAT("""
  CREATE OR REPLACE EXTERNAL TABLE `lost_cargo_dataset.port_security_images`
  WITH CONNECTION `us-central1.lost_cargo_conn`
  OPTIONS (
    object_metadata = 'SIMPLE',
    uris = ['gs://""", @@project_id, """-lab2/images/*']
  );
""");

Lihat sekilas apa yang kini dapat dilihat BigQuery:

SELECT uri, content_type FROM `lost_cargo_dataset.port_security_images` LIMIT 5;

Setiap baris mewakili satu file gambar di Cloud Storage. BigQuery kini dapat meneruskan gambar ini langsung ke model AI.

Langkah 2: Analisis Gambar Keamanan

Sekarang gunakan fungsi AI.GENERATE BigQuery untuk menganalisis setiap gambar keamanan. Satu kueri SQL ini akan meminta Gemini untuk memeriksa setiap gambar dan menampilkan data terstruktur:

SELECT
  uri,
  AI.GENERATE(
    (
      'Examine this port security image. Identify any shipping container IDs visible on the container and provide a one-word color of the container.',
      ref
    ),
    output_schema => 'detected_container_id STRING, color STRING'
  ).* EXCEPT (full_response, status)
FROM `lost_cargo_dataset.port_security_images`;

Langkah 3: Identifikasi Container Target

Periksa hasilnya. Cari baris tempat kolom color menampilkan "Merah" (atau beberapa variasi merah). Catat detected_container_id. Ini adalah target Anda: MV-CAPYBARA-003.

Langkah 4: Verifikasi Kecocokan Visual

Untuk melihat gambar sebenarnya yang dianalisis tanpa keluar dari editor:

  1. Klik Cloud Storage di panel Data Agent Kit di sebelah kiri.
  2. Luaskan bucket Anda (YOUR_PROJECT_ID-lab2/images/) dan klik file gambar yang sesuai dengan penampung merah untuk melihatnya langsung di editor.

Pratinjau gambar Cloud Storage

Ringkasan Bagian: Anda telah membuat Tabel Objek untuk memberi BigQuery akses ke gambar keamanan port, lalu menggunakan AI.GENERATE untuk mengekstrak data penampung terstruktur dari setiap gambar. Penampung Merah telah diidentifikasi sebagai MV-CAPYBARA-003.

5. Mengonfirmasi Pencurian

Anda telah mengidentifikasi penampung yang hilang sebagai MV-CAPYBARA-003, tetapi apakah penampung tersebut dicuri atau hanya salah taruh? Log manifes menunjukkan bahwa container tertentu ini diparkir di dekat sensor lingkungan SENS-99. Jika pencuri dengan sengaja menonaktifkan unit pendingin di dalam kontainer sebelum memindahkannya, SENS-99 mungkin telah merekam lonjakan pelepasan panas yang tiba-tiba.

Mari kita gunakan deteksi anomali untuk membuktikan bahwa penampung telah dirusak.

  1. Pertama, pelajari dasar historis. Berikut adalah pembacaan normal dari SENS-99 selama beberapa jam terakhir:
SELECT * FROM `lost_cargo_dataset.thermal_history`
ORDER BY reading_time DESC
LIMIT 50;

Perhatikan suhu yang berada dalam rentang sempit sekitar 75-78 °F. Seperti inilah tampilan normalnya.

  1. Sekarang lihat kumpulan data saat ini dari sensor yang sama:
SELECT * FROM `lost_cargo_dataset.thermal_current`
ORDER BY thermal_reading DESC
LIMIT 50;

Lihat angka 148,4 °F di dekat bagian atas? Semuanya tampak normal. Lonjakan tersebut akan menunjukkan kegagalan unit pendingin atau gangguan yang disengaja. Let's find out.

  1. Jalankan deteksi anomali. AI.DETECT_ANOMALIES BigQuery menggunakan model dasar TimesFM yang telah dilatih sebelumnya untuk menganalisis pola deret waktu dan menandai pencilan secara otomatis, tanpa memerlukan pelatihan model:
SELECT *
FROM AI.DETECT_ANOMALIES(
  TABLE `lost_cargo_dataset.thermal_history`,
  TABLE `lost_cargo_dataset.thermal_current`,
  data_col => 'thermal_reading',
  timestamp_col => 'reading_time',
  id_cols => ['sensor_id']
)
WHERE is_anomaly = TRUE;
  1. Periksa hasilnya. Pembacaan 148,4 °F harus ditandai sebagai anomali dengan probabilitas anomali yang tinggi, yang mengonfirmasi bahwa sesuatu yang tidak biasa terjadi di dekat area penampung.

Ringkasan Bagian: Anda menggunakan fungsi AI.DETECT_ANOMALIES BigQuery untuk memanfaatkan model TimesFM terlatih. Dengan menjalankan satu kueri SQL, Anda secara otomatis mengidentifikasi pencilan dan mengisolasi peristiwa manipulasi anomali tanpa menulis kode machine learning yang rumit atau melatih model dari awal.

6. Menyiapkan Sistem Pelacakan

Kontainer tersebut telah dikonfirmasi dicuri dan tidak lagi berada di Rio de Janeiro. Setiap penampung di armada menyiarkan sinyal beacon telemetri: pembacaan sensor, fragmen GPS, dan log status. Jika beacon penampung yang dicuri masih memancarkan sinyal, Anda dapat mencocokkannya dengan tanda tangan yang diketahui untuk menemukannya.

BigQuery unggul dalam pekerjaan analisis yang telah Anda lakukan sejauh ini, tetapi menemukan lokasi penampung secara real time memerlukan kueri operasional berlatensi rendah. AlloyDB, database yang kompatibel dengan PostgreSQL dan terkelola sepenuhnya, dibuat untuk tujuan ini: kueri penelusuran vektor yang cukup cepat untuk sistem pelacakan langsung. Anda akan memuat sematan telemetri ke AlloyDB dan menggunakannya untuk mencocokkan sinyal suar.

Cluster AlloyDB yang Anda mulai di latar belakang sebelumnya seharusnya sudah siap sekarang. Mari kita konfigurasikan langsung dari editor Anda.

Langkah 1: Hubungkan ke AlloyDB dari Editor

Daripada beralih ke Konsol Cloud, Anda dapat terhubung ke AlloyDB secara langsung menggunakan ekstensi Data Agent Kit.

  1. Di panel Data Agent Kit di sebelah kiri di bagian BigQuery, klik New Query untuk membuka tab editor kueri baru.
  2. Simpan file dengan menekan Ctrl+S (Windows/Linux) atau Cmd+S (macOS) dan beri nama alloydb. Tab ini akan digunakan untuk semua kueri AlloyDB.
  3. Klik ikon roda gigi untuk membuka modal Setelan Kueri.

Membuka Setelan Kueri untuk AlloyDB

  1. Di modal Setelan Kueri, di bagian Sumber Data, pilih Database.
  2. Di bagian Database, pilih AlloyDB.
  3. Lengkapi detail Pemilihan Resource:
    • Project ID: Masukkan Project ID Google Cloud Anda.
    • Cluster: Pilih lost-cargo-cluster.
    • Instance: Pilih lost-cargo-instance.
    • Database: Pilih postgres.
  4. Klik Simpan.

Modal Setelan Kueri AlloyDB

Langkah 2: Aktifkan Ekstensi Vektor dan Buat Tabel

Setelah terhubung ke AlloyDB, Anda perlu mengaktifkan ekstensi AI yang diperlukan dan membuat tabel yang akan menerima data telemetri tersemat.

  1. Di tab .sql yang aktif, tempel perintah berikut untuk mengaktifkan ekstensi yang diperlukan:
CREATE EXTENSION IF NOT EXISTS vector;
CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;
  1. Tandai teks, lalu klik tombol Run Query (ikon putar) di kanan atas editor.
  2. Periksa panel terminal Query Results di bagian bawah layar. Tulisannya harus Statement executed successfully.

Membuat Ekstensi AlloyDB

  1. Selanjutnya, ganti teks di editor Anda dengan pernyataan berikut untuk membuat tabel telemetri:
CREATE TABLE IF NOT EXISTS vessel_telemetry (
    entry_id SERIAL PRIMARY KEY,
    shipment_id VARCHAR(50),
    telemetry_string TEXT,
    embedding_vector vector(768)
);
  1. Jalankan kueri ini seperti kueri terakhir. Konfirmasi bahwa perintah berhasil dieksekusi di panel bawah.

Jenis vector(768) berasal dari ekstensi pgvector yang baru saja Anda aktifkan. 768 dimensi cocok dengan output model text-embedding-005 Google, yang akan Anda gunakan di BigQuery untuk membuat embedding.

Ringkasan Bagian: Anda terhubung ke AlloyDB langsung dari Editor Cloud Shell, mengaktifkan ekstensi pgvector dan google_ml_integration, serta membuat tabel target. AlloyDB kini siap berfungsi sebagai backend operasional untuk pencocokan telemetri real-time.

7. Membangun Indeks Penelusuran

Sekarang Anda perlu memasukkan data telemetri ke AlloyDB agar dapat mendukung pencocokan beacon real-time. Log telemetri mentah berantakan dan memiliki panjang yang bervariasi, sehingga tidak ideal untuk penelusuran kemiripan. Anda akan menggunakan fungsi AI BigQuery untuk meringkas setiap log dengan Gemini dan mengonversi setiap ringkasan menjadi sematan vektor berdimensi 768. Kemudian, Anda akan mengekspor data yang telah di-enrich ke Cloud Storage dan mengimpornya ke AlloyDB.

Langkah 1: Buat Embedding di BigQuery

Beralih kembali tab editor Anda ke bigquery.sql (yang tetap terhubung ke BigQuery).

Sekarang, jalankan kueri berikut untuk meringkas setiap log telemetri dengan Gemini dan membuat embedding vektor:

CREATE OR REPLACE TABLE `lost_cargo_dataset.telemetry_embeddings_export` AS
WITH summarized_telemetry AS (
  SELECT
    shipment_id,
    telemetry_string,
    AI.GENERATE(
      CONCAT('Summarize this telemetry log for vector search: ', telemetry_string)
    ).result AS summary
  FROM `lost_cargo_dataset.telemetry_data`
),
telemetry_embeddings AS (
  SELECT
    shipment_id,
    telemetry_string,
    AI.EMBED(summary, endpoint => 'text-embedding-005').result AS embedding
  FROM summarized_telemetry
)
SELECT
  shipment_id,
  telemetry_string,
  TO_JSON_STRING(embedding) AS embedding_vector
FROM telemetry_embeddings;

Langkah 2: Lihat Pratinjau Data yang Diperkaya

Sebelum mengekspor, lihat apa yang telah Anda buat. Kueri ini menampilkan ID pengiriman dan 80 karakter pertama dari setiap ringkasan dan penyematan:

SELECT
  shipment_id,
  SUBSTR(telemetry_string, 1, 80) AS telemetry_preview,
  SUBSTR(embedding_vector, 1, 80) AS embedding_preview
FROM `lost_cargo_dataset.telemetry_embeddings_export`
LIMIT 5;

Setiap baris kini berisi ID pengiriman, log telemetri asli, dan vektor sematan 768 dimensi. Inilah data yang akan Anda kirim ke AlloyDB.

Langkah 3: Mengekspor Embedding ke Cloud Storage

Gunakan pernyataan EXPORT DATA BigQuery untuk menulis tabel penyematan ke bucket GCS lab Anda sebagai file CSV.

EXECUTE IMMEDIATE CONCAT("""
  EXPORT DATA OPTIONS (
    uri = 'gs://""", @@project_id, """-lab2/data/embeddings_export/*.csv',
    format = 'CSV',
    overwrite = true,
    header = false
  ) AS
  SELECT
    shipment_id,
    telemetry_string,
    embedding_vector
  FROM `lost_cargo_dataset.telemetry_embeddings_export`;
""");

Langkah 4: Impor ke AlloyDB dari Cloud Storage

  1. Di Cloud Shell Editor, klik tab Terminal di bagian bawah layar untuk membuka sesi terminal.
  2. Jalankan perintah berikut untuk memuat lingkungan Anda dan mengimpor file CSV langsung ke tabel vessel_telemetry di AlloyDB:
source devrel-demos/codelabs/bigquery-alloydb-insights/scripts/setenv.sh

gcloud alloydb clusters import lost-cargo-cluster \
  --region=$REGION \
  --gcs-uri="gs://${PROJECT_ID}-lab2/data/embeddings_export/000000000000.csv" \
  --database=postgres \
  --user=postgres \
  --table=vessel_telemetry \
  --columns=shipment_id,telemetry_string,embedding_vector \
  --csv

Tab terminal yang menampilkan perintah gcloud alloydb clusters import

Ringkasan Bagian: Anda telah menggunakan fungsi AI BigQuery untuk meringkas dan menyematkan data telemetri, mengekspor hasilnya ke Cloud Storage sebagai CSV, lalu mengimpornya ke AlloyDB menggunakan gcloud. Database pelacakan operasional kini dimuat dan siap.

8. Mencocokkan Sinyal Beacon

Tim lapangan di dekat Sydney telah mencegat sinyal suar telemetri yang terfragmentasi. Log parsial akan berbunyi:

"Unit pendingin offline. Penggantian manual."

Jika ini berasal dari penampung yang dicuri, penelusuran vektor AlloyDB akan dapat mencocokkannya meskipun sinyalnya tidak lengkap. Ini adalah jenis kueri operasional real-time yang dibuat untuk AlloyDB.

Langkah 1: Verifikasi Data yang Diimpor

Beralihlah kembali tab editor Anda ke alloydb.sql (yang tetap terhubung ke AlloyDB).

Pastikan data telemetri berhasil dimuat dengan menjalankan:

SELECT shipment_id, LEFT(telemetry_string, 80) AS telemetry_preview
FROM vessel_telemetry
LIMIT 10;

Anda akan melihat baris dengan nilai shipment_id dan teks telemetri. Ini adalah tanda tangan telemetri armada, yang kini siap untuk pencocokan real-time.

Langkah 2: Menelusuri Container yang Hilang

Sekarang, gunakan ekstensi google_ml_integration AlloyDB untuk menelusuri kecocokan menggunakan fragmen sinyal yang dicegat:

SELECT
    shipment_id,
    telemetry_string,
    1 - (embedding_vector <=> embedding('text-embedding-005', 'Refrigeration unit offline. Manual override.')::vector) AS search_relevance_score
FROM vessel_telemetry
ORDER BY embedding_vector <=> embedding('text-embedding-005', 'Refrigeration unit offline. Manual override.')::vector
LIMIT 5;

Fungsi embedding(), yang disediakan oleh ekstensi google_ml_integration AlloyDB, memanggil Agent Platform langsung dari SQL untuk menghasilkan penyematan vektor secara inline. Operator <=> menghitung jarak kosinus antara dua vektor (makin dekat ke 0, makin identik kedua vektor tersebut). Kami mengurangi 1 untuk menyatakan hasil sebagai skor relevansi yang lebih tinggi lebih baik.

Langkah 3: Konfirmasi Kecocokan

Periksa hasilnya. Hasil teratas harus berupa MV-CAPYBARA-003, dengan skor relevansi tertinggi.

Itu adalah penampung yang sama yang telah Anda lacak di setiap langkah penyelidikan ini:

  • 📷 Rekaman video keamanan mengidentifikasi bahwa kapal tersebut meninggalkan Pelabuhan Rio de Janeiro pada malam hari.
  • 🌡️ Deteksi anomali termal mengonfirmasi bahwa unit pendinginnya sengaja dinonaktifkan.
  • 📡 Pencocokan sinyal beacon baru saja menunjukkan tanda tangan telemetrinya di dekat Sydney.

Tiga bukti independen. Tiga kemampuan AI Google Cloud yang berbeda. Satu penampung dicuri.

🎯 Kasus selesai: MV-CAPYBARA-003 telah ditemukan di dekat Sydney!

Detektif Bugdroid sedang tos dengan kapibara di dermaga Sydney, dengan container MV-CAPYBARA-003 yang ditandai DITEMUKAN di latar belakang

Ringkasan Bagian: Anda menggunakan integrasi AI bawaan AlloyDB untuk membuat embedding penelusuran dan melakukan penelusuran kesamaan kosinus dalam satu kueri SQL. Pencocokan beacon mengonfirmasi lokasi kontainer yang dicuri, sehingga menyelesaikan penyelidikan.

9. Menjelajahi Bukti

Setelah mengidentifikasi penampung melalui analisis gambar multimodal dan penelusuran vektor, Anda dapat menggunakan Analisis Konversasional langsung di dalam editor untuk menjelajahi data investigasi menggunakan bahasa alami, tanpa menulis kode SQL apa pun.

Langkah 1: Temukan Data di Knowledge Catalog

Data Agent Kit menyertakan fitur penelusuran universal yang memungkinkan Anda menemukan dan menjelajahi aset data di seluruh lingkungan Google Cloud Anda.

  1. Di panel Data Agent Kit di sebelah kiri, luaskan bagian Catalog.
  2. Klik Penelusuran Universal.
  3. Di kotak penelusuran, ketik telemetry_data.
  4. Klik tabel telemetry_data (di bagian lost_cargo_dataset) dari hasil penelusuran.

Telusuri tabel telemetry_data di Katalog

Langkah 2: Luncurkan Analisis Percakapan

Mengklik hasil penelusuran akan membuka tab penampil data tempat Anda dapat melihat pratinjau data mentah, melihat skema, dan memeriksa kualitas data.

  1. Di panel kiri, set data dan tabel BigQuery Anda akan terlihat. Klik tombol Chat untuk membuka jendela chat baru.

Klik tombol Chat

Langkah 3: Ajukan Pertanyaan dalam Bahasa Alami

Tab chat "Selamat datang di Conversational Analytics" yang baru akan terbuka. Agen memiliki konteks tentang skema dan konten tabel Anda.

  1. Di jendela chat, ketik:"Show me the telemetry status and log for the Capybara shipment." (Tampilkan status telemetri dan log untuk pengiriman Capybara).
  2. Tekan Enter.

Agen akan menerjemahkan pertanyaan Anda ke dalam SQL BigQuery, menjalankan kueri, dan menampilkan hasilnya, termasuk tabel data dan Insight yang merangkum temuan. Anda dapat beralih antara mode Berpikir (analisis lebih mendalam, lebih lambat) dan Cepat (respons lebih cepat) bergantung pada kompleksitas pertanyaan Anda. Karena ini adalah respons yang dihasilkan AI, hasil Anda mungkin terlihat sedikit berbeda dari screenshot di bawah.

Hasil dan insight Analisis Percakapan

Langkah 4: Ajukan Pertanyaan Lanjutan

Agen mengingat konteks percakapan Anda. Coba ajukan pertanyaan lanjutan:

  • "Berapa banyak pengiriman unik dalam data telemetri?"
  • "Berapa banyak pengiriman lain dalam armada yang saat ini memiliki status KRITIS?"

Ringkasan Bagian: Anda menggunakan fitur Penelusuran Universal Knowledge Catalog untuk menemukan set data dan meluncurkan Analytics Percakapan untuk membuat kueri data investigasi dengan bahasa alami. Agen AI menerjemahkan pertanyaan Anda ke dalam SQL dan memberikan insight yang menguatkan temuan Anda.

10. Pembersihan

Untuk menghindari biaya berkelanjutan pada akun Google Cloud Anda, hapus resource yang Anda buat di lab ini. Anda dapat menjalankan perintah ini di terminal terintegrasi di dalam Cloud Shell Editor (tempat Anda menggunakan Data Agent Kit) untuk membersihkan lingkungan.

Pertama, muat variabel lingkungan Anda:

source scripts/setenv.sh
  1. Hapus Resource BigQuery (hanya jika Anda tidak melanjutkan ke Lab 3):

Jika Anda berencana melanjutkan ke Lab 3, lewati langkah ini. Lab 3 menggunakan set data dan koneksi BigQuery yang sama untuk analisis grafik properti.

Untuk menghapus set data dan koneksi BigQuery Anda:

# Drop the dataset
bq rm -r -f $PROJECT_ID:lost_cargo_dataset

# Delete the connections
bq rm --connection --location=us-central1 $PROJECT_ID.us-central1.lost_cargo_conn
bq rm --connection --location=us-central1 $PROJECT_ID.us-central1.lost_cargo_alloydb_conn
  1. Hapus bucket Cloud Storage:
gcloud storage rm --recursive gs://${PROJECT_ID}-lab2
  1. Hapus instance dan cluster AlloyDB:

AlloyDB tidak digunakan di Lab 3, jadi Anda dapat menghentikannya sekarang.

gcloud alloydb instances delete lost-cargo-instance \
  --region=$REGION \
  --cluster=lost-cargo-cluster \
  --quiet

gcloud alloydb clusters delete lost-cargo-cluster \
  --region=$REGION \
  --force \
  --quiet
  1. Hapus setelan lingkungan lokal:

Terakhir, hapus file setelan lingkungan lokal dari ruang kerja Anda:

rm -f .env

11. Selamat!

Anda telah berhasil menyelesaikan Lab 2: Analisis Data & Insight Multimodal. Anda mengikuti jejak dari pelabuhan yang penuh dengan ribuan peti kemas hingga pencurian yang terkonfirmasi dan lokasi yang tepat.

Yang telah Anda capai

  1. Memindai rekaman video: Anda menggunakan AI.GENERATE BigQuery untuk menganalisis gambar keamanan port dan mengidentifikasi container MV-CAPYBARA-003 dalam warna Merah Crimson.
  2. Mengonfirmasi pencurian: Anda menjelajahi data sensor termal, melihat lonjakan suhu 148,4 °F yang mencurigakan, dan menggunakan AI.DETECT_ANOMALIES untuk membuktikan bahwa itu adalah gangguan yang disengaja.
  3. Menyiapkan sistem pelacakan: Anda mengonfigurasi AlloyDB dengan pgvector dan google_ml_integration untuk pencocokan beacon real-time.
  4. Membuat indeks penelusuran: Anda menggunakan AI.GENERATE dan AI.EMBED di BigQuery untuk membuat embedding, lalu mengekspornya ke Cloud Storage dan mengimpornya ke AlloyDB.
  5. Mencocokkan sinyal beacon: Anda menggunakan penelusuran vektor AlloyDB untuk mencocokkan sinyal telemetri yang terfragmentasi, menemukan kontainer yang dicuri di dekat Sydney.
  6. Mengeksplorasi bukti: Anda menggunakan Analisis Percakapan langsung dari editor untuk membuat kueri data investigasi dengan bahasa alami.

Penampung ditemukan!

Langkah Berikutnya

Anda telah menemukan di mana container berada. Sekarang Anda perlu mengetahui siapa yang menggunakannya.

Di Lab 3: Konsumsi Data & Agentic Workflows, Anda akan membangun grafik properti jaringan logistik untuk memetakan hubungan antara perusahaan cangkang, menggunakan Analisis Percakapan untuk melakukan percakapan dengan grafik, dan menelusuri Knowledge Catalog untuk menemukan kode izin yang diamankan yang diperlukan untuk memulihkan kontainer.