Menjalankan inferensi AI pada data di luar database Anda memerlukan pipeline terpisah untuk mengekspor data, memberi skor, lalu memuat kembali hasilnya. PolarDB for AI menghilangkan kebutuhan tersebut dengan memungkinkan inferensi langsung di dalam PolarDB for MySQL dan menyimpan output-nya sebagai tabel yang dapat dikueri.
Output tersebut disimpan dalam AI-augmented table (AAT)—sebuah tabel yang satu atau beberapa kolomnya berisi hasil inferensi dari model AI. AAT didukung oleh Object Storage Service (OSS), bukan mesin penyimpanan utama, sehingga mencegah model AI menulis data ke database secara frekuen. Setelah dihasilkan, AAT berperilaku seperti tabel eksternal lainnya: dapat dikueri menggunakan SELECT, digabungkan (join) dengan tabel yang sudah ada, serta difilter atau diagregasikan berdasarkan kolom-kolomnya. Sebagai contoh, Anda dapat dengan mudah mengelompokkan pengguna, memprediksi jumlah penjualan, dan memperoleh konten yang dihasilkan AI menggunakan data yang tersimpan di AAT.
Contoh: Tabel berikut berisi catatan penerbangan dengan atribut seperti maskapai, rute, dan waktu keberangkatan.
Gambar 1. Tabel asli

AAT menambahkan kolom result yang berisi prediksi dari model—dalam kasus ini, apakah suatu penerbangan kemungkinan besar mengalami keterlambatan.
Gambar 2. AAT dengan hasil inferensi AI

Sebelum memulai
Sebelum memulai, pastikan hal-hal berikut:
Arsip data dingin telah diaktifkan pada kluster PolarDB for MySQL Anda. AAT disimpan sebagai tabel eksternal OSS, yang memerlukan fitur ini. Lihat Aktifkan arsip data dingin.
Database bernama
polar4aitelah tersedia dengan set karakterutf8mb4. AAT secara otomatis ditulis ke database ini. Akun database harus sesuai dengan akun yang digunakan oleh PolarDB for AI dan memiliki izin baca serta tulis. Lihat Buat database.
Buat AAT dari model AI
Langkah-langkah berikut menjelaskan contoh lengkap: melatih model LightGBM pada data penerbangan, menjalankan tugas prediksi offline, dan mengkueri hasilnya.
Langkah 1: Buat model
Jalankan pernyataan berikut untuk melatih model LightGBM bernama airlines_gbm_copy1 pada tabel airlines_train:
/*polar4ai*/
CREATE MODEL airlines_gbm_copy1
WITH (model_class='lightgbm',
x_cols ='Airline,Flight,AirportFrom,AirportTo,DayOfWeek,Time,Length',
y_cols='Delay',
model_parameter=(boosting_type='gbdt', n_estimators=100,
max_depth=8, num_leaves=256))
AS (SELECT * FROM airlines_train)Langkah 2: Konfirmasi bahwa model telah terdaftar
/*polar4ai*/SHOW MODELS;Output mencantumkan semua model yang terdaftar di database:

Langkah 3: Jalankan tugas prediksi offline untuk menghasilkan AAT
Kirimkan tugas prediksi menggunakan model yang telah dilatih:
/*polar4ai*/SELECT TripID,Delay
FROM
PREDICT (
MODEL airlines_gbm_copy1,
SELECT * FROM airlines_train_1000_copy1)
WITH
(s_cols='TripID,Delay',
x_cols = 'Airline,Flight,AirportFrom,AirportTo,DayOfWeek,Time,Length',
y_cols='Delay',
primary_key='TripID', mode='async',into_type='db')
INTO lightgbm_v2_predict82201;Parameter utama dalam pernyataan ini:
| Parameter | Nilai | Penjelasan |
|---|---|---|
mode | async | Menjalankan tugas secara asinkron. Inferensi skala besar dapat memakan waktu signifikan—menjalankannya secara sinkron akan memblokir koneksi Anda selama proses berlangsung. |
into_type | db | Menulis output ke tabel yang dapat diakses database. Gunakan db saat Anda perlu mengkueri atau menggabungkan hasilnya dengan SQL. |
primary_key | TripID | Menetapkan kunci utama untuk AAT yang dihasilkan. |
Setelah dieksekusi, ID tugas akan dikembalikan. Contohnya: babc6d66-xxxx-yyyy-a4b8-1b1426ce8614.
lightgbm_v2_predict82201 adalah nama AAT yang akan dibuat secara otomatis.
Langkah 4: Periksa status tugas
Gunakan ID tugas untuk memantau progres. Saat statusnya finish, model telah menyelesaikan inferensi dan AAT siap dikueri.
/*polar4ai*/SHOW TASK `babc6d66-xxxx-yyyy-a4b8-1b1426ce8614`
Langkah 5: Periksa skema AAT
SHOW CREATE TABLE polar4ai.lightgbm_v2_predict82201;Output:
CREATE TABLE `lightgbm_v2_predict82201` (
`TripID` bigint(20) NOT NULL,
`Delay` bigint(20) DEFAULT NULL,
`result` text,
PRIMARY KEY (`TripID`)
) ENGINE=CSV DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!99990 800020204 NULL_MARKER='NULL' */ CONNECTION='default_oss_server'Kolom TripID dan Delay mencerminkan tipe dan panjang dari tabel asli. Kolom result berisi output inferensi model. Entri ENGINE=CSV dan CONNECTION='default_oss_server' mengonfirmasi bahwa tabel ini merupakan tabel eksternal yang didukung OSS.
Langkah 6: Kueri AAT
SELECT * FROM polar4ai.lightgbm_v2_predict82201 LIMIT 1000;
Kolom result berisi hasil prediksi beserta nilai probabilitasnya.
Langkah 7: Gabungkan AAT dengan tabel lain
AAT berfungsi seperti tabel biasa. Gabungkan dengan dataset asli untuk memfilter dan menganalisis hasil:
SELECT * FROM
airlines_train_1000_copy1, polar4ai.lightgbm_v2_predict82204
WHERE
airlines_train_1000_copy1.TripID=polar4ai.lightgbm_v2_predict82204.TripID
AND
airlines_train_1000_copy1.Delay=1
Batasan
AAT disimpan sebagai tabel eksternal OSS, bukan di mesin penyimpanan utama.
Database
polar4aiharus menggunakan set karakterutf8mb4. Set karakter lain tidak didukung untuk penyimpanan AAT.Akun database yang digunakan untuk membuat dan mengkueri AAT harus sesuai dengan akun yang dikonfigurasi untuk PolarDB for AI dan memiliki izin baca serta tulis eksplisit.