Prosedur tersimpan publik bqutil.procedure.bqml_generate_text BigQuery memungkinkan Anda melakukan iterasi melalui panggilan batch ke fungsi ML.GENERATE_TEXT sehingga Anda dapat memproses set data besar tanpa melebihi kuota dan batas endpoint. Karena tugas kueri BigQuery selesai bahkan saat fungsi gagal pada baris individual, volume permintaan yang tinggi dapat menyebabkan error RESOURCE EXHAUSTED yang dapat dicoba lagi di tabel output Anda. Dalam tutorial ini, Anda akan membuat model jarak jauh dan menjalankan
prosedur tersimpan untuk mencoba ulang baris yang gagal secara berulang hingga semua data dalam
set data berita publik diproses.
Untuk meninjau kode sumber prosedur tersimpan di GitHub, lihat
bqml_generate_text.sqlx.
Untuk mengetahui informasi selengkapnya tentang parameter dan penggunaan prosedur tersimpan, lihat
file README.
Tujuan
- Membuat set data BigQuery.
- Buat model jarak jauh BigQuery ML melalui model
gemini-3.5-flash-lite. - Jalankan prosedur tersimpan
bqutil.procedure.bqml_generate_textuntuk membuat teks secara iteratif dari set data publikbigquery-public-data.bbc_news.fulltext. - Verifikasi hasil teks yang dihasilkan dan pastikan tidak ada lagi error kuota yang dapat dicoba ulang.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen Google Cloudyang dapat ditagih berikut:
- BigQuery ML: You incur costs for the data that you process in BigQuery.
- Gemini Enterprise Agent Platform: You incur costs for calls to the Agent Platform model.
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Untuk mengetahui informasi selengkapnya, lihat Harga BigQuery dan Harga Agent Platform.
Sebelum memulai
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Aktifkan BigQuery API, BigQuery Connection API, dan Agent Platform API, jika 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 Service Usage Admin (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk menyelesaikan tutorial ini, minta administrator untuk memberi Anda peran IAM berikut:
-
Membuat dan menggunakan set data, koneksi, dan model BigQuery:
BigQuery Admin (
roles/bigquery.admin) di project Anda -
Berikan izin ke akun layanan koneksi:
Project IAM Admin (
roles/resourcemanager.projectIamAdmin) pada project Anda
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk menyelesaikan tutorial ini. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk menyelesaikan tutorial ini:
-
Membuat set data:
bigquery.datasets.create -
Membuat, mendelegasikan, dan menggunakan koneksi:
bigquery.connections.* -
Tetapkan koneksi default:
bigquery.config.* -
Tetapkan izin akun layanan:
-
resourcemanager.projects.getIamPolicy -
resourcemanager.projects.setIamPolicy
-
-
Membuat model dan menjalankan inferensi:
-
bigquery.jobs.create -
bigquery.models.create -
bigquery.models.getData -
bigquery.models.updateData -
bigquery.models.updateMetadata
-
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Membuat set data
Untuk membuat set data BigQuery, pilih 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 Datasets, klik Create dataset.
Di panel Create dataset, lakukan hal berikut:
Untuk Dataset ID, masukkan
bqml_tutorial.Untuk lokasi data, pilih US.
Jangan ubah setelan default yang tersisa.
Klik Create dataset.
bq
Untuk membuat set data baru, gunakan
perintah bq mk --dataset.
Buat set data bernama
bqml_tutorialdengan lokasi data yang ditetapkan keUS:bq mk --dataset \ --location=US \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Pastikan set data telah dibuat:
bq ls
API
Panggil metode datasets.insert
dengan resource set data yang ditentukan:
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
Membuat model jarak jauh
Gunakan
pernyataan CREATE MODEL
untuk membuat model jarak jauh yang merepresentasikan model gemini-3.5-flash-lite Agent Platform
yang dihosting:
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, jalankan pernyataan berikut:
CREATE OR REPLACE MODEL `bqml_tutorial.generate_text` REMOTE WITH CONNECTION DEFAULT OPTIONS (ENDPOINT = 'gemini-3.5-flash-lite');
Kueri memerlukan waktu beberapa detik untuk diselesaikan, setelah itu model
generate_textakan muncul di set databqml_tutorialdi panel Explorer. Karena kueri menggunakan pernyataanCREATE MODELuntuk membuat model, tidak akan ada hasil kueri.
Menjalankan prosedur tersimpan
Gunakan
pernyataan CALL
untuk menjalankan prosedur tersimpan bqutil.procedure.bqml_generate_text. Prosedur tersimpan ini melakukan iterasi melalui panggilan ke fungsi ML.GENERATE_TEXT menggunakan model bqml_tutorial.generate_text dan tabel publik bigquery-public-data.bbc_news.fulltext:
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, jalankan pernyataan berikut:
CALL `bqutil.procedure.bqml_generate_text`( "bigquery-public-data.bbc_news.fulltext", -- source table "PROJECT_ID.bqml_tutorial.news_generated_text", -- destination table "PROJECT_ID.bqml_tutorial.generate_text", -- model "body", -- prompt column ["filename"], -- key columns '{"flatten_json_output": true}' -- optional arguments );
Ganti
PROJECT_IDdengan project ID Anda.Prosedur tersimpan membuat tabel
bqml_tutorial.news_generated_textuntuk memuat output fungsiML.GENERATE_TEXT.Setelah kueri selesai berjalan, pastikan tidak ada baris dalam tabel
bqml_tutorial.news_generated_textyang berisi error yang dapat dicoba lagi. Di editor kueri, jalankan pernyataan berikut:SELECT * FROM `bqml_tutorial.news_generated_text` WHERE ml_generate_text_status LIKE '%A retryable error occurred%';
Kueri akan menampilkan pesan
There is no data to display.Di editor kueri, jalankan pernyataan berikut untuk memeriksa sampel hasil teks yang dihasilkan:
SELECT filename, prompt, ml_generate_text_llm_result, ml_generate_text_status FROM `bqml_tutorial.news_generated_text` LIMIT 3;
Outputnya mirip dengan hal berikut ini:
+------------------------+------------------------------------------+-----------------------------------------------------------+-------------------------+ | filename | prompt | ml_generate_text_llm_result | ml_generate_text_status | +------------------------+------------------------------------------+-----------------------------------------------------------+-------------------------+ | bbc/tech/209.txt | A 20-year-old US man is selling... | It looks like you shared a news article about Andrew... | | | bbc/business/375.txt | South Korea's largest credit card... | It looks like you shared a news article about the 2004... | | | bbc/sport/139.txt | A brave defensive display, led by... | It looks like you have shared a match report from a... | | +------------------------+------------------------------------------+-----------------------------------------------------------+-------------------------+
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.
Menghapus project
Menghapus Google Cloud project:
gcloud projects delete PROJECT_ID
Menghapus resource satu per satu
Jika Anda ingin menggunakan kembali project tersebut, hapus resource yang Anda buat untuk tutorial ini:
Konsol
Di konsol Google Cloud , buka halaman BigQuery.
Hapus set data
bqml_tutorial. Menghapus set data juga akan menghapus model jarak jauh dan tabel output:Di panel Explorer, luaskan project Anda dan klik Datasets.
Dalam daftar Set data, klik set data
bqml_tutorial.Di panel detail, klik Delete.
Pada dialog Delete dataset, klik Delete.
bq
Hapus set data bqml_tutorial, model jarak jauh, dan tabel output:
bq rm --dataset --recursive bqml_tutorial
Langkah berikutnya
- Pelajari lebih lanjut
fungsi
ML.GENERATE_TEXTdan fungsiAI.GENERATE_TEXT. - Pelajari lebih lanjut AI generatif di BigQuery.
- Pelajari cara memilih fungsi pembuatan teks.