Tutorial ini menunjukkan cara menggunakan kueri SQL, fungsi AI.GENERATE, fungsi AI.EMBED, dan
BigQuery DataFrames untuk
menganalisis data multimodal dari
set data publik toko hewan peliharaan Cymbal.
Fungsi AI.GENERATE memungkinkan Anda menganalisis kombinasi data terstruktur dan tidak terstruktur, dan fungsi AI.EMBED memungkinkan Anda membuat embedding dari data teks atau gambar di BigQuery.
Anda dapat menemukan gambar serupa menggunakan fungsi VECTOR_SEARCH. Fungsi VECTOR_SEARCH memungkinkan Anda melakukan penelusuran semantik atau penelusuran campuran pada embedding untuk menemukan entity yang serupa.
Tutorial ini menggunakan tabel objek persisten
yang menyimpan nilai ObjectRef.
Tujuan
- Gunakan nilai
ObjectRefuntuk menyimpan data gambar bersama dengan data terstruktur dalam tabel BigQuery. - Gunakan fungsi
AI.GENERATEuntuk memperkaya data Anda. - Gunakan fungsi
AI.EMBEDuntuk membuat embedding berdasarkan data gambar. - Gunakan fungsi
VECTOR_SEARCHuntuk menemukan gambar serupa. - Gunakan array nilai
ObjectRefuntuk meringkas panduan pengguna.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen Google Cloudyang dapat ditagih berikut:
- BigQuery: you incur costs for the data that you process in BigQuery.
- Cloud Storage: you incur costs for reading the objects stored in Cloud Storage.
- Gemini Enterprise Agent Platform: you incur costs for calls to Agent Platform models.
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Untuk mengetahui informasi selengkapnya tentang biaya, lihat halaman harga berikut:
Sebelum memulai
-
Di konsol Google Cloud , pada halaman pemilih project, pilih atau buat project Google Cloud .
Peran yang diperlukan untuk memilih atau membuat project
- Pilih project: Memilih project tidak memerlukan peran IAM tertentu—Anda dapat memilih project yang telah diberi peran.
-
Membuat project: Untuk membuat project, Anda memerlukan peran Project Creator
(
roles/resourcemanager.projectCreator), yang berisi izinresourcemanager.projects.create. Pelajari cara memberikan peran.
-
Verifikasi bahwa penagihan diaktifkan untuk project Google Cloud Anda.
-
Aktifkan BigQuery API, BigQuery Connection API, Cloud Storage API, dan Agent Platform API, jika ada yang belum diaktifkan.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan izin
serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Admin Penggunaan Layanan (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk menyelesaikan tutorial ini, minta administrator Anda untuk memberi Anda peran IAM berikut:
-
Membuat set data dan tabel:
BigQuery Data Owner (
roles/bigquery.dataOwner) -
Menjalankan tugas BigQuery:
BigQuery Job User (
roles/bigquery.jobUser) -
Membuat koneksi:
BigQuery Connection Admin (
roles/bigquery.connectionAdmin) -
Memberikan izin ke akun layanan koneksi:
Project IAM Admin (
roles/resourcemanager.projectIamAdmin) -
Membuat URL yang memungkinkan Anda membaca dan mengubah objek Cloud Storage:
BigQuery ObjectRef Admin (
roles/bigquery.objectRefAdmin)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Buat set data, tabel, model, dan koneksi
Di bagian ini, Anda akan membuat set data, koneksi, tabel, dan model yang digunakan dalam tutorial ini.
Membuat set data
Buat set data BigQuery untuk memuat objek yang Anda buat dalam tutorial ini dengan memilih salah satu opsi berikut:
Konsol
Di konsol Google Cloud , buka halaman BigQuery.
Di panel kiri, klik Explorer:

Jika Anda tidak melihat panel kiri, klik Luaskan panel kiri untuk membuka panel.
Di Explorer, luaskan project Anda, lalu klik Datasets.
Di halaman Set Data, klik Buat set data.
Di halaman Create dataset, lakukan hal berikut:
Untuk Dataset ID, masukkan
cymbal_pets.Untuk Lokasi data, pilih Amerika Serikat.
Jangan ubah setelan default yang tersisa, lalu klik Create dataset.
SQL
Gunakan pernyataan CREATE SCHEMA.
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
CREATE SCHEMA
PROJECT_ID.cymbal_pets OPTIONS ( description = 'Dataset for BigQuery ML tutorial', location = 'US');Ganti
PROJECT_IDdengan project ID Anda.Klik Run.
Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.
Anda akan menerima pesan konfirmasi yang mirip dengan berikut ini: The dataset
named cymbal_pets was created.
Membuat koneksi
Buat koneksi resource Cloud dan dapatkan akun layanan koneksi. BigQuery menggunakan koneksi untuk mengakses objek di Cloud Storage.
Di panel kiri, klik Explorer:

Di panel Explorer, klik Connections.
Di halaman Connections, klik Create connection.
Di halaman External data source, lakukan hal berikut:
Untuk Connection type, pilih Vertex AI remote models, remote functions, Lakehouse and Spanner (Cloud Resource).
Di kolom Connection ID, ketik
cymbal_conn.Tetap gunakan nilai default untuk setelan lainnya, lalu klik Buat koneksi.
Di halaman Koneksi, klik
cymbal_conn.Di panel Connection info, salin nilai ID akun layanan. Diperlukan untuk langkah-langkah berikut.
Memberikan izin untuk menggunakan model Agent Platform
Berikan peran Pengguna Agent Platform ke akun layanan koneksi untuk mengakses model jarak jauh di Agent Platform. Anda harus memberikan
peran ini di project yang sama dengan yang Anda buat atau pilih sebelumnya. Pemberian
peran dalam project yang berbeda akan menghasilkan error
bqcx-1234567890-abcd@gcp-sa-bigquery-condel.iam.gserviceaccount.com
does not have the permission to access resource.
Untuk memberikan akses akun layanan agar dapat menggunakan model Agent Platform, ikuti langkah-langkah berikut:
Buka halaman IAM & Admin.
Klik Grant access.
Dalam dialog Berikan akses, lakukan hal berikut:
Di kolom New principals, masukkan ID akun layanan yang Anda salin sebelumnya.
Di kolom Select a role, pilih atau cari Agent Platform User.
Klik Simpan.
Buat tabel products
Untuk membuat tabel standar yang berisi informasi produk hewan peliharaan Cymbal, ikuti langkah-langkah berikut untuk memuat data dari Cloud Storage:
Di konsol Google Cloud , buka halaman Studio.
Untuk membuat tabel
products, pilih salah satu opsi berikut:SQL
Tempel perintah ini ke editor kueri, lalu klik Run:
LOAD DATA OVERWRITE cymbal_pets.products FROM FILES( format = 'avro', uris = [ 'gs://cloud-samples-data/bigquery/tutorials/cymbal-pets/tables/products/products_*.avro']);
Anda akan menerima pesan konfirmasi yang mirip dengan berikut ini:
Data was successfully loaded into managed table.BigQuery DataFrames
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di Panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Buat tabel product_images
Untuk membuat tabel objek (product_images) yang berisi gambar produk hewan peliharaan Cymbal, pilih salah satu opsi berikut:
SQL
Tempel perintah ini ke editor kueri, lalu klik Run:
CREATE OR REPLACE EXTERNAL TABLE cymbal_pets.product_images WITH CONNECTION `us.cymbal_conn` OPTIONS ( object_metadata = 'SIMPLE', uris = ['gs://cloud-samples-data/bigquery/tutorials/cymbal-pets/images/*.png'], max_staleness = INTERVAL 30 MINUTE, metadata_cache_mode = AUTOMATIC);
Anda akan menerima pesan konfirmasi yang mirip dengan berikut ini: This
statement created a new table named product_images.
BigQuery DataFrames
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di Panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Membuat model
Petunjuk SQL dalam tutorial ini menunjukkan cara memanggil fungsi AI yang tidak mengharuskan Anda membuat model. Jika Anda mengikuti petunjuk BigQuery DataFrames, pilih opsi tersebut untuk membuat model jarak jauh yang merepresentasikan model Gemini dan model embedding multimodal.
SQL
Anda dapat melewati langkah ini.
BigQuery DataFrames
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di Panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Membuat tabel products_mm dengan data multimodal
Buat tabel products_mm yang berisi kolom image yang diisi dengan
gambar produk dari tabel objek product_images. Kolom image yang dibuat adalah kolom STRUCT yang menggunakan nilai ObjectRef untuk menyimpan data gambar bersama data terstruktur dalam tabel standar BigQuery.
Nilai ObjectRef adalah jenis STRUCT dengan skema standar yang mereferensikan objek Cloud Storage untuk analisis multimodal.
Nilai ObjectRef dapat diproses oleh fungsi OBJ,
fungsi AI, atau
fungsi yang ditentukan pengguna Python.
Untuk membuat dan mengisi tabel products_mm, ikuti langkah-langkah berikut:
Untuk membuat tabel
products_mm, pilih salah satu opsi berikut:SQL
Tempel perintah ini ke editor kueri, lalu klik Run:
CREATE OR REPLACE TABLE cymbal_pets.products_mm AS SELECT products.* EXCEPT (uri), ot.ref AS image FROM cymbal_pets.products INNER JOIN cymbal_pets.product_images ot ON ot.uri = products.uri;
Anda akan menerima pesan konfirmasi yang mirip dengan berikut ini:
This statement created a new table named products_mm.BigQuery DataFrames
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di Panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Untuk melihat data kolom
image, pilih salah satu opsi berikut:SQL
Tempel perintah ini ke editor kueri, lalu klik Run:
SELECT product_name, image FROM cymbal_pets.products_mm
BigQuery DataFrames
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di Panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Hasilnya akan mirip seperti berikut:
+--------------------------------+--------------------------------------+---------------+-------------------------------+------------------------------------------------+ | product_name | image.uri | image.version | image.authorizer | image.details | +--------------------------------+--------------------------------------+---------------+-------------------------------+------------------------------------------------+ | AquaClear Aquarium Background | gs://cloud-samples-data/bigquery/ | 1234567891011 | myproject.region.myconnection | {"gcs_metadata":{"content_type":"image/png", | | | tutorials/cymbal-pets/images/ | | | "md5_hash":"494f63b9b137975ff3e7a11b060edb1d", | | | aquaclear-aquarium-background.png | | | "size":1282805,"updated":1742492680017000}} | +--------------------------------+--------------------------------------+---------------+-------------------------------+------------------------------------------------+ | AquaClear Aquarium | gs://cloud-samples-data/bigquery/ | 2345678910112 | myproject.region.myconnection | {"gcs_metadata":{"content_type":"image/png", | | Gravel Vacuum | tutorials/cymbal-pets/images/ | | | "md5_hash":"b7bfc2e2641a77a402a1937bcf0003fd", | | | aquaclear-aquarium-gravel-vacuum.png | | | "size":820254,"updated":1742492682411000}} | +--------------------------------+--------------------------------------+---------------+-------------------------------+------------------------------------------------+ | ... | ... | ... | | ... | +--------------------------------+--------------------------------------+---------------+-------------------------------+------------------------------------------------+
Membuat informasi produk
Gunakan fungsi AI.GENERATE
untuk menghasilkan data berikut untuk produk toko hewan peliharaan:
- Tambahkan kolom
image_descriptionke tabelproducts_mm. - Isi kolom
animal_type,search_keywords, dansubcategorypada tabelproducts_mm. - Jalankan kueri yang menampilkan deskripsi setiap merek produk dan juga jumlah produk dari merek tersebut. Deskripsi merek dibuat dengan menganalisis informasi produk untuk semua produk dari merek tersebut, termasuk gambar produk.
Dengan fungsi AI.GENERATE, Anda dapat memilih untuk membuat teks atau
output terstruktur
sesuai dengan skema kustom yang Anda tentukan. Fungsi ini bekerja dengan mengirimkan permintaan ke model Gemini dan menampilkan struct yang berisi data yang dihasilkan, respons model lengkap, dan status.
Untuk membuat data produk, ikuti langkah-langkah berikut:
Untuk membuat informasi produk menggunakan
AI.GENERATE, pilih salah satu opsi berikut:SQL
Untuk membuat dan mengisi kolom
image_description, tempel kode berikut ke editor kueri, lalu klik Run:-- Add the column to the existing table ALTER TABLE bqml_tutorial.products_mm ADD COLUMN IF NOT EXISTS image_description STRING; -- Populate the new column using the AI.GENERATE function UPDATE bqml_tutorial.products_mm SET image_description = AI.GENERATE( ('Describe the following image: ', image), endpoint => 'gemini-3.5-flash' ).result WHERE image_description IS NULL;
Anda akan menerima pesan konfirmasi yang mirip dengan berikut ini:
This statement altered the table named products_mm.BigQuery DataFrames
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di Panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Untuk melihat konten kolom
image_description, tempelkan perintah berikut ke editor kueri, lalu klik Run:SELECT product_name, image_description FROM cymbal_pets.products_mm;
Hasilnya akan mirip seperti berikut:
+--------------------------------+-------------------------------------+ | product_name | image_description | +--------------------------------+-------------------------------------+ | AquaClear Aquarium Background | The image shows a colorful coral | | | reef backdrop. The background is a | | | blue ocean with a bright light... | | | | | | | +--------------------------------+-------------------------------------+ | AquaClear Aquarium | The image shows a long, clear | | Gravel Vacuum | plastic tube with a green hose | | | attached to one end. The tube... | | | | | | | +--------------------------------+-------------------------------------+ | ... | ... | +--------------------------------+-------------------------------------+
Untuk memperbarui kolom
animal_type,search_keywords, dansubcategorydengan data yang dihasilkan, pilih salah satu opsi berikut:SQL
Tempelkan kode berikut ke editor kueri, lalu klik Run:
UPDATE cymbal_pets.products_mm t SET animal_type = r.animal_type, search_keywords = SPLIT(r.search_keywords, ','), subcategory = r.subcategory FROM ( SELECT product_id, g.* EXCEPT(full_response, status) FROM bqml_tutorial.products_mm, UNNEST([AI.GENERATE( ('For the image and description of a pet product, concisely generate the following metadata: 1) animal_type and 2) 5 SEO search keywords (comma separated), and 3) product subcategory. ', image, description), endpoint => 'gemini-3.5-flash', output_schema => 'animal_type STRING, search_keywords STRING, subcategory STRING' )]) AS g ) r WHERE t.product_id = r.product_id;
Anda akan menerima pesan konfirmasi yang mirip dengan berikut ini:
This statement modified 205 rows in products_mm.BigQuery DataFrames
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di Panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Untuk melihat data yang dihasilkan, pilih salah satu opsi berikut:
SQL
Tempelkan kode berikut ke editor kueri, lalu klik Run:
SELECT product_name, image_description, animal_type, search_keywords, subcategory, FROM cymbal_pets.products_mm;
BigQuery DataFrames
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di Panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Hasilnya akan mirip seperti berikut:
+--------------------------------+-------------------------------------+-------------+------------------------+------------------+ | product_name | image_description | animal_type | search_keywords | subcategory | +--------------------------------+-------------------------------------+-------------+------------------------+------------------+ | AquaClear Aquarium Background | The image shows a colorful coral | fish | aquarium background | aquarium decor | | | reef backdrop. The background is a | | fish tank backdrop | | | | blue ocean with a bright light... | | coral reef decor | | | | | | underwater scenery | | | | | | aquarium decoration | | +--------------------------------+-------------------------------------+-------------+------------------------+------------------+ | AquaClear Aquarium | The image shows a long, clear | fish | aquarium gravel vacuum | aquarium | | Gravel Vacuum | plastic tube with a green hose | | aquarium cleaning | cleaning | | | attached to one end. The tube... | | aquarium maintenance | | | | | | fish tank cleaning | | | | | | gravel siphon | | +--------------------------------+-------------------------------------+-------------+------------------------+------------------+ | ... | ... | ... | ... | ... | +--------------------------------+-------------------------------------+-------------+------------------------+------------------+
Untuk membuat deskripsi setiap merek produk dan jumlah produk dari merek tersebut, pilih salah satu opsi berikut:
SQL
Tempelkan kode berikut ke editor kueri, lalu klik Run:
SELECT brand, COUNT(*) AS cnt, AI.GENERATE(('Use the images and text to give one concise brand description ', 'for a website brand page. Return the description only.', ARRAY_AGG(image LIMIT 10), ARRAY_AGG(description), ARRAY_AGG(category), ARRAY_AGG(subcategory)), endpoint => 'gemini-2.5-pro').result AS brand_description FROM cymbal_pets.products_mm GROUP BY brand ORDER BY cnt DESC;
BigQuery DataFrames
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di Panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Hasilnya akan mirip seperti berikut:
+--------------+-------------------------------------+-----+ | brand | brand_description | cnt | +--------------+-------------------------------------+-----+ | AquaClear | AquaClear is a brand of aquarium | 33 | | | and pond care products that offer | | | | a wide range of solutions for... | | +--------------+-------------------------------------+-----+ | Ocean | Ocean Bites is a brand of cat food | 28 | | Bites | that offers a variety of recipes | | | | and formulas to meet the specific.. | | +--------------+-------------------------------------+-----+ | ... | ... |... | +--------------+-------------------------------------+-----+
Membuat embedding dan melakukan penelusuran vektor
Buat embedding dari data gambar, lalu gunakan embedding untuk menampilkan gambar serupa menggunakan penelusuran vektor.
Dalam skenario produksi, sebaiknya buat indeks vektor sebelum menjalankan penelusuran vektor. Indeks vektor memungkinkan Anda melakukan penelusuran vektor lebih cepat, dan menampilkan hasil yang lebih mendekati, tetapi perolehan berkurang.
Untuk membuat sematan dan melakukan penelusuran vektor, ikuti langkah-langkah berikut:
Untuk membuat tabel
products_embeddings, pilih salah satu opsi berikut:SQL
Tempelkan kode berikut ke editor kueri, lalu klik Run:
CREATE OR REPLACE TABLE cymbal_pets.products_embedding AS ( SELECT product_id, AI.EMBED(image, endpoint => 'gemini-embedding-2').result AS embedding, image FROM cymbal_pets.products_mm );
Anda akan menerima pesan konfirmasi yang mirip dengan berikut ini:
This statement created a new table named products_embedding.BigQuery DataFrames
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di Panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Untuk melakukan penelusuran vektor yang menampilkan gambar produk yang mirip dengan gambar input yang diberikan, pilih salah satu opsi berikut:
SQL
Tempelkan kode berikut ke editor kueri, lalu klik Run:
SELECT * FROM VECTOR_SEARCH( TABLE cymbal_pets.products_embedding, 'embedding', query_value => AI.EMBED( OBJ.MAKE_REF('gs://cloud-samples-data/bigquery/tutorials/cymbal-pets/images/cozy-naps-cat-scratching-post-with-condo.png'), endpoint => 'gemini-embedding-2').result);
BigQuery DataFrames
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di Panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Hasilnya akan mirip seperti berikut:
+-----------------+-----------------+----------------+----------------------------------------------+--------------------+-------------------------------+------------------------------------------------+----------------+ | query.embedding | base.product_id | base.embedding | base.image.uri | base.image.version | base.image.authorizer | base.image.details | distance | +-----------------+-----------------+----------------+----------------------------------------------+--------------------+-------------------------------+------------------------------------------------+----------------+ | -0.0112330541 | 181 | -0.0112330541 | gs://cloud-samples-data/bigquery/ | 12345678910 | myproject.region.myconnection | {"gcs_metadata":{"content_type": | 0.0 | | 0.0142525584 | | 0.0142525584 | tutorials/cymbal-pets/images/ | | | "image/png","md5_hash":"21234567hst16555w60j", | | | 0.0135886827 | | 0.0135886827 | cozy-naps-cat-scratching-post-with-condo.png | | | "size":828318,"updated":1742492688982000}} | | | 0.0149955815 | | 0.0149955815 | | | | | | | ... | | ... | | | | | | | | | | | | | | | | | | | | | | | | +-----------------+-----------------+----------------+----------------------------------------------+--------------------+-------------------------------+------------------------------------------------+----------------+ | -0.0112330541 | 187 | -0.0190353896 | gs://cloud-samples-data/bigquery/ | 23456789101 | myproject.region.myconnection | {"gcs_metadata":{"content_type": | 0.4216330832.. | | 0.0142525584 | | 0.0116206668 | tutorials/cymbal-pets/images/ | | | "image/png","md5_hash":"7328728fhakd9937djo4", | | | 0.0135886827 | | 0.0136198215 | cozy-naps-cat-scratching-post-with-bed.png | | | "size":860113,"updated":1742492688774000}} | | | 0.0149955815 | | 0.0173457414 | | | | | | | ... | | ... | | | | | | | | | | | | | | | | | | | | | | | | +-----------------+-----------------+----------------+----------------------------------------------+--------------------+-------------------------------+------------------------------------------------+----------------+ | ... | ... | ... | ... | ... | ... | ... | ... | +-----------------+-----------------+----------------+----------------------------------------------+--------------------+-------------------------------+------------------------------------------------+----------------+
Memproses data multimodal yang diurutkan menggunakan array nilai ObjectRef
Bagian ini menunjukkan cara meringkas panduan pengguna dengan memproses data multimodal yang diurutkan menggunakan array nilai ObjectRef. BigQuery dapat menganalisis beberapa file tidak terstruktur secara bersamaan menggunakan array.
Anda akan menyelesaikan tugas-tugas berikut:
Buat tabel
product_manualssehingga berisi file PDF untuk manual produkCrittercuisine Pro 5000, dan file PDF untuk setiap halaman manual tersebut.Buat tabel yang memetakan manual ke bagian-bagiannya. Manual lengkap dan halaman manual masing-masing disimpan dalam kolom
ObjectRef.Menganalisis array nilai
ObjectRefsecara bersamaan untuk menampilkan satu nilai yang dihasilkan.Analisis array nilai
ObjectRefsecara terpisah dan tampilkan nilai yang dihasilkan untuk setiap nilai array.
Untuk memproses data multimodal yang diurutkan menggunakan nilai ObjectRef, ikuti langkah-langkah berikut:
Untuk membuat tabel
product_manuals, pilih salah satu opsi berikut:SQL
Tempelkan kode berikut ke editor kueri, lalu klik Run:
CREATE OR REPLACE EXTERNAL TABLE `cymbal_pets.product_manuals` WITH CONNECTION `us.cymbal_conn` OPTIONS ( object_metadata = 'SIMPLE', uris = [ 'gs://cloud-samples-data/bigquery/tutorials/cymbal-pets/documents/*.pdf', 'gs://cloud-samples-data/bigquery/tutorials/cymbal-pets/document_chunks/*.pdf']);
Anda akan menerima pesan konfirmasi yang mirip dengan berikut ini:
This statement created a new table named product_manuals.BigQuery DataFrames
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di Panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Untuk menulis data PDF ke tabel
map_manual_to_chunks, pilih salah satu opsi berikut:SQL
Tempelkan kode berikut ke editor kueri, lalu klik Run:
-- Extract the file and chunks into a single table. -- Store the chunks in the chunks column as array of ObjectRefs (ordered by page number) CREATE OR REPLACE TABLE cymbal_pets.map_manual_to_chunks AS SELECT ARRAY_AGG(m1.ref)[0] manual, ARRAY_AGG(m2.ref ORDER BY m2.ref.uri) chunks FROM cymbal_pets.product_manuals m1 JOIN cymbal_pets.product_manuals m2 ON REGEXP_EXTRACT(m1.uri, r'.*/([^.]*).[^/]+') = REGEXP_EXTRACT(m2.uri, r'.*/([^.]*)_page[0-9]+.[^/]+') GROUP BY m1.uri;
Anda akan menerima pesan konfirmasi yang mirip dengan berikut ini:
This statement created a new table named map_manual_to_chunks.BigQuery DataFrames
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di Panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Untuk melihat data PDF dalam tabel
map_manual_to_chunks, pilih salah satu opsi berikut:SQL
Tempelkan kode berikut ke editor kueri, lalu klik Run:
SELECT * FROM cymbal_pets.map_manual_to_chunks;
BigQuery DataFrames
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di Panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Hasilnya akan mirip seperti berikut:
+-------------------------------------+--------------------------------+-----------------------------------+------------------------------------------------------+-------------------------------------------+---------------------------------+------------------------------------+-------------------------------------------------------+ | manual.uri | manual.version | manual.authorizer | manual.details | chunks.uri | chunks.version | chunks.authorizer | chunks.details | +-------------------------------------+--------------------------------+-----------------------------------+------------------------------------------------------+-------------------------------------------+---------------------------------+------------------------------------+-------------------------------------------------------+ | gs://cloud-samples-data/bigquery/ | 1742492785900455 | myproject.region.myconnection | {"gcs_metadata":{"content_type":"application/pef", | gs://cloud-samples-data/bigquery/ | 1745875761227129 | myproject.region.myconnection | {"gcs_metadata":{"content_type":"application/pdf", | | tutorials/cymbal-pets/documents/ | | | "md5_hash":"c9032b037693d15a33210d638c763d0e", | tutorials/cymbal-pets/documents/ | | | "md5_hash":"5a1116cce4978ec1b094d8e8b49a1d7c", | | crittercuisine_5000_user_manual.pdf | | | "size":566105,"updated":1742492785941000}} | crittercuisine_5000_user_manual_page1.pdf | | | "size":504583,"updated":1745875761266000}} | | | | | +-------------------------------------------+---------------------------------+------------------------------------+-------------------------------------------------------+ | | | | | crittercuisine_5000_user_manual_page1.pdf | 1745875760613874 | myproject.region.myconnection | {"gcs_metadata":{"content_type":"application/pdf", | | | | | | tutorials/cymbal-pets/documents/ | | | "md5_hash":"94d03ec65d28b173bc87eac7e587b325", | | | | | | crittercuisine_5000_user_manual_page2.pdf | | | "size":94622,"updated":1745875760649000}} | | | | | +-------------------------------------------+---------------------------------+------------------------------------+-------------------------------------------------------+ | | | | | ... | ... | ... | ... | +-------------------------------------+--------------------------------+-----------------------------------+------------------------------------------------------+-------------------------------------------+---------------------------------+------------------------------------+-------------------------------------------------------+Untuk membuat satu respons dari model Gemini berdasarkan analisis array nilai
ObjectRef, pilih salah satu opsi berikut:SQL
Tempelkan kode berikut ke editor kueri, lalu klik Run:
SELECT AI.GENERATE(( '''Can you provide a page by page summary for the first 3 pages of the attached manual? Only write one line for each page. The pages are provided in serial order''', chunks), endpoint => 'gemini-3.5-flash').result AS Response, FROM cymbal_pets.map_manual_to_chunks;
BigQuery DataFrames
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di Panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Hasilnya akan mirip seperti berikut:
+---------------------------------------------------------------------------+ | Response | +---------------------------------------------------------------------------+ | Here is a one-line summary for each of the first 3 pages: | | | | Page 1 introduces the CritterCuisine Pro 5000 automatic pet feeder and | | presents the initial part of the manual's Table of Contents. | | Page 2 lists the items included with the feeder and details important | | safety precautions for its use. | | Page 3 describes the feeder's key features, provides assembly and initial | | setup instructions, and begins the programming guide with clock setting. | +---------------------------------------------------------------------------+
Untuk membuat beberapa respons dari model Gemini berdasarkan analisis array nilai
ObjectRef, pilih salah satu opsi berikut:SQL
Tempelkan kode berikut ke editor kueri, lalu klik Run:
WITH results AS ( SELECT AI.GENERATE(( '''Can you provide a page by page summary for the first 3 pages of the attached manual? Only write one line for each page. The pages are provided in serial order''', chunks), endpoint => 'gemini-3.5-flash', output_schema => 'page1_summary STRING, page2_summary STRING, page3_summary STRING').* FROM cymbal_pets.map_manual_to_chunks) SELECT page1_summary, page2_summary, page3_summary FROM results;
BigQuery DataFrames
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di Panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Hasilnya akan mirip seperti berikut:
+-----------------------------------------------+-------------------------------------------+----------------------------------------------------+ | page1_summary | page2_summary | page3_summary | +-----------------------------------------------+-------------------------------------------+----------------------------------------------------+ | This manual provides an overview of the | This section explains how to program | This page covers connecting the feeder to Wi-Fi | | CritterCuisine Pro 5000 automatic pet feeder, | the feeder's clock, set feeding | using the CritterCuisine Connect app, remote | | including its features, safety precautions, | schedules, copy and delete meal settings, | feeding, managing feeding schedules, viewing | | assembly instructions, and initial setup. | manually feed your pet, record | feeding logs, receiving low food alerts, | | | a voice message, and understand | updating firmware, creating multiple pet profiles, | | | the low food level indicator. | sharing access with other users, and cleaning | | | | and maintaining the feeder. | +-----------------------------------------------+-------------------------------------------+----------------------------------------------------+
Pembersihan
Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.
- Di konsol Google Cloud , buka halaman Manage resources.
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
Atau, untuk mempertahankan project dan menghapus resource yang digunakan dalam tutorial ini, ikuti langkah-langkah berikut:
Buka halaman BigQuery.
Di panel kiri, luaskan project Anda, lalu klik Set Data.
Untuk set data
bqml_tutorial, klik Open actions > Delete.Di dialog Hapus set data, klik Hapus untuk mengonfirmasi.
Di panel kiri, klik Connections.
Untuk koneksi
cymbal_conn, klik Buka tindakan > Hapus.Di dialog Hapus koneksi, masukkan
delete, lalu klik Hapus untuk mengonfirmasi.
Langkah berikutnya
- Untuk mengetahui informasi selengkapnya tentang cara bekerja dengan data multimodal, lihat Menganalisis data multimodal di BigQuery.
- Untuk mengetahui informasi selengkapnya tentang nilai
ObjectRef, lihat Bekerja dengan nilai ObjectRef.