All Products
Search
Document Center

:Spesifikasi sintaksis

Last Updated:Nov 10, 2025

Gunakan pernyataan RDS SQLFlow untuk secara efisien melakukan pelatihan model, prediksi, dan evaluasi. Topik ini menjelaskan spesifikasi sintaksis RDS SQLFlow secara rinci.

Pengenalan

RDS SQLFlow memungkinkan Anda melakukan pelatihan model, prediksi, dan evaluasi tanpa menulis kode Python yang kompleks. RDS SQLFlow secara otomatis mengurai pernyataan tersebut dan mengonversinya menjadi program Python yang setara, sehingga menyederhanakan proses pelatihan model secara signifikan. Sintaksis RDS SQLFlow mencakup berbagai fitur, termasuk:

Sebagai contoh, Anda dapat menggunakan dataset iris untuk melatih algoritma TensorFlow DNNClassifier. Empat kolom pertama dalam dataset mewakili fitur yang menunjukkan bentuk botani dari setiap bunga iris, sedangkan kolom terakhir adalah label yang mewakili subspesies dari setiap bunga iris.

sepal_length

sepal_width

petal_length

petal_width

class

6.4

2.8

5.6

2.2

2

5.0

2.3

3.3

1.0

1

...

...

...

...

...

Dengan pernyataan RDS SQLFlow sederhana berikut, Anda dapat dengan mudah melatih model DNNClassifier dengan dua lapisan tersembunyi, masing-masing berisi sepuluh unit tersembunyi. Setelah pelatihan, model akan disimpan ke tabel sqlflow_models.my_dnn_model untuk digunakan dalam prediksi selanjutnya. RDS SQLFlow secara otomatis mengurai pernyataan ini dan mengonversinya menjadi program Python yang setara, sehingga menyederhanakan proses pelatihan model secara signifikan.

SELECT * FROM iris.train
TO TRAIN DNNClassifier
WITH model.hidden_units = [10, 10], model.n_classes = 3, train.epoch= 10
COLUMN sepal_length, sepal_width, petal_length, petal_width
LABEL class
INTO sqlflow_models.my_dnn_model;

Sintaksis Pelatihan

Pernyataan pelatihan RDS SQLFlow terdiri dari klausa SELECT, TRAIN, COLUMN, LABEL, dan INTO.

SELECT select_expr [, select_expr ...]
FROM table_references
  [WHERE kondisi_where]
  [LIMIT jumlah_baris]
TO TRAIN model_identifier
[WITH
  model_attr_expr [, model_attr_expr ...]
  [, train_attr_expr ...]]
COLUMN column_expr [, column_expr ...]
  | COLUMN column_expr [, column_expr ...] UNTUK nama_kolom
    [COLUMN column_expr [, column_expr ...] UNTUK nama_kolom ...]
[LABEL label_expr]
INTO table_references;

Klausa SELECT

Klausa SELECT digunakan untuk mengambil data dari tabel yang ditentukan.

Sintaksis:

SELECT select_expr [, select_expr ...]
FROM table_references
  [WHERE kondisi_where]
  [LIMIT jumlah_baris]

Deskripsi parameter:

Parameter

Deskripsi

select_expr

Kolom data yang akan diambil. Setidaknya satu kolom harus ditentukan.

table_references

Tabel tempat data diambil.

where_condition

Ekspresi yang digunakan untuk memfilter baris.

row_count

Jumlah maksimum baris yang akan diambil.

Contoh:

Sebagai contoh, untuk melatih model klasifikasi biner pada dataset sampel (iris.train) dengan cepat:

SELECT * FROM iris.latih
WHERE kelas = 0 OR kelas = 1
LIMIT 1000
TO TRAIN ...

Klausa TRAIN

Klausa TRAIN digunakan untuk mendeskripsikan jenis model tertentu dan algoritma pelatihannya.

Sintaksis:

TO TRAIN model_identifier
WITH
  model_attr_expr [, model_attr_expr ...]
  [, train_attr_expr ...]

Deskripsi parameter:

Parameter

Deskripsi

model_identifier

Jenis model, seperti DNNClassifier. Untuk lebih banyak model, lihat Model dan algoritma.

model_attr_expr

Atribut model, seperti model.n_classes = 3.

train_attr_expr

Atribut pelatihan, seperti train.epoch = 10.

Contoh:

Sebagai contoh, untuk melatih model DNNClassifier dengan dua lapisan tersembunyi, masing-masing berisi sepuluh unit tersembunyi, dan dengan 10 epoch pelatihan:

SELECT * FROM iris.train
TO TRAIN DNNClassifier
WITH
  model.hidden_units = [10, 10],
  model.n_classes = 3,
  train.epoch = 10
...

Klausa COLUMN

Klausa COLUMN digunakan untuk menentukan nama bidang fitur pelatihan dan metode pra-pemrosesan opsionalnya.

Sintaksis:

COLUMN column_expr [, column_expr ...]
  | COLUMN column_expr [, column_expr ...] FOR column_name
    [COLUMN column_expr [, column_expr ...] FOR column_name ...]

Deskripsi parameter:

Parameter

Deskripsi

column_expr

Nama bidang dan metode pra-pemrosesan untuk kontennya, seperti sepal_length,DENSE(dense, 3).

column_name

Nama kolom fitur untuk input model.

Contoh:

Sebagai contoh, untuk menggunakan bidang sepal_length, sepal_width, petal_length, dan petal_width sebagai fitur:

SELECT * FROM iris.train
TO TRAIN DNNClassifier WITH
  model.hidden_units = [10, 10],
  model.n_classes = 3,
  train.epoch = 10
COLUMN sepal_length, sepal_width, petal_length, petal_width
...

LABEL klausa

Klausa LABEL digunakan untuk menunjukkan nama bidang label pelatihan dan metode pra-pemrosesan opsionalnya.

Sintaksis:

LABEL label_expr

Deskripsi parameter:

Parameter

Deskripsi

label_expr

Nama bidang dan metode pra-pemrosesan untuk kontennya, seperti class.

Contoh:

SELECT * FROM iris.train
TO TRAIN DNNClassifier WITH
  model.hidden_units = [10, 10],
  model.n_classes = 3,
  train.epoch = 10
COLUMN sepal_length, sepal_width, petal_length, petal_width
LABEL class
...

INTO klausa

Klausa INTO digunakan untuk menentukan nama tabel tempat model yang telah dilatih akan disimpan.

Sintaksis:

Deskripsi parameter:

Parameter

Deskripsi

table_references

Nama tabel tempat model yang telah dilatih akan disimpan.

Contoh:

SELECT * FROM iris.train
TO TRAIN DNNClassifier WITH
  model.hidden_units = [10, 10],
  model.n_classes = 3,
  train.epoch = 10
COLUMN sepal_length, sepal_width, petal_length, petal_width
LABEL class
INTO sqlflow_models.my_dnn_model;

Sintaksis Prediksi

Pernyataan prediksi RDS SQLFlow terdiri dari klausa SELECT, PREDICT, dan USING.

SELECT select_expr [, select_expr ...]
FROM table_references
  [WHERE where_condition]
  [LIMIT row_count]
TO PREDICT result_table_reference
[WITH
  attr_expr [, attr_expr ...]]
USING model_table_reference;
Penting

Struktur data klausa SELECT sebelum TO PREDICT harus konsisten dengan struktur data yang digunakan dalam operasi TO TRAIN dalam sintaksis pelatihan untuk memastikan bahwa struktur data yang digunakan dalam proses prediksi dan penjelasan sesuai dengan struktur data yang digunakan selama fase pelatihan.

Klausa PREDICT dan USING

PREDICT digunakan untuk mendeskripsikan tabel tempat hasil prediksi akan ditulis, USING digunakan untuk mendeskripsikan tabel tempat model dimuat, dan WITH digunakan untuk mendeskripsikan konfigurasi yang diperlukan untuk prediksi.

Sintaksis:

TO PREDICT result_table_reference
[WITH
  attr_expr [, attr_expr ...]]
USING model_table_reference;

Deskripsi parameter:

Parameter

Deskripsi

result_table_reference

Tabel yang menyimpan hasil prediksi.

attr_expr

Atribut konfigurasi, seperti predict.batch_size = 1.

model_table_reference

Tabel tempat model dimuat untuk prediksi.

Contoh:

Sebagai contoh, untuk menggunakan model yang disimpan dalam tabel sqlflow.my_dnn_model dan menyimpan hasil prediksi ke kolom dalam tabel iris.predict:

SELECT * FROM iris.train
TO PREDICT iris.predict.class
USING sqlflow.my_dnn_model;

Sintaksis Penjelasan

Pernyataan penjelasan RDS SQLFlow terdiri dari serangkaian pernyataan SELECT, EXPLAIN, dan USING.

SELECT select_expr [, select_expr ...]
FROM table_references
  [WHERE where_condition]
  [LIMIT row_count]
TO EXPLAIN model_table_reference
[WITH
  attr_expr [, attr_expr ...]]
[USING explainer];
Penting

Struktur data klausa SELECT yang mendahului TO EXPLAIN harus konsisten dengan struktur data yang digunakan oleh operasi TO TRAIN dalam sintaksis pelatihan.

EXPLAIN dan USING klausa

Klausa EXPLAIN digunakan untuk menentukan tabel tempat model dimuat dan atribut konfigurasi yang diperlukan. Klausa USING digunakan untuk menentukan penjelas.

Sintaksis:

TO EXPLAIN model_table_reference
[WITH
  attr_expr [, attr_expr ...]]
USING explainer;

Deskripsi parameter:

Parameter

Deskripsi

model_table_reference

Tabel tempat model dimuat untuk prediksi.

attr_expr

Atribut konfigurasi, seperti summary.plot_type="bar".

explainer

Jenis penjelas, seperti TreeExplainer.

Contoh:

Sebagai contoh, untuk menggunakan TreeExplainer untuk menjelaskan model yang disimpan di sqlflow_models.my_xgb_regression_model dan memplot hasil analisis dalam urutan terurut:

SELECT * FROM boston.train
TO EXPLAIN sqlflow_models.my_xgb_regression_model
WITH
    summary.sort=True
USING TreeExplainer;

Sintaksis Evaluasi

Pernyataan evaluasi RDS SQLFlow terdiri dari pernyataan SELECT, EVALUATE, dan INTO.

SELECT select_expr [, select_expr ...]
FROM table_references
  [WHERE where_condition]
  [LIMIT row_count]
TO EVALUATE model_table_reference
[WITH
  attr_expr [, attr_expr ...]]
LABEL class
INTO evaluate_result_table;
Penting
  • Struktur data klausa SELECT sebelum TO EVALUATE harus konsisten dengan struktur data yang digunakan dalam Sintaksis pelatihan TO TRAIN operasi.

  • Menurut teori pembelajaran mesin, tidak tepat menggunakan dataset pelatihan untuk evaluasi, karena ini mungkin menghasilkan hasil evaluasi yang terlalu ideal.

Klausa EVALUATE dan INTO

Klausa TO EVALUATE digunakan untuk menentukan model yang akan dievaluasi dan metrik mana yang akan digunakan untuk evaluasi. Klausa INTO digunakan untuk menentukan tabel tempat hasil evaluasi akan disimpan.

Sintaksis:

TO EVALUATE model_table_reference
[WITH
  attr_expr [, attr_expr ...]]
INTO evaluate_result_table;

Deskripsi parameter:

Parameter

Deskripsi

model_table_reference

Model yang akan dievaluasi, hasil evaluasinya mewakili performa model saat memprediksi data baru.

attr_expr

Atribut untuk evaluasi.

Anda dapat menentukan metrik mana yang akan dikeluarkan ke tabel hasil dengan mengatur validation.metrics, seperti validation.metrics="Accuracy,AUC".

evaluate_result_table

Tabel yang menyimpan hasil evaluasi.

Contoh:

SELECT * FROM iris.test 
TO EVALUATE sqlflow_models.my_dnn_model 
WITH validation.metrics = Accuracy 
LABEL class  
INTO sqlflow_models.evaluate_result_table;

Sintaksis Optimasi

RDS SQLFlow menggunakan klausa TO MAXIMIZE dan TO MINIMIZE untuk mendeskripsikan dan menyelesaikan masalah pemrograman matematika.

Sintaksis:

SELECT select_expr [, select_expr ...]
FROM table_references
  [WHERE where_condition]
  [LIMIT row_count]
TO MAXIMIZE|MINIMIZE
  objective_expr
CONSTRAINT
  constraint_expr [GROUP BY column_name]
  [, constraint_expr [GROUP BY column_name]...]
WITH
  variables="variable_value(column_name, ...)"
  var_type="Integers|Reals|Binary|NonNegativeIntegers|..."
[USING solver_name]
INTO result_table_name;

Contoh:

SELECT c1, c2, c3 FROM my_db.my_table
TO MAXIMIZE SUM(x * c1)
CONSTRAINT
    SUM(x) <= c2 GROUP BY c1
    x <= 3
WITH
    variables="x(c3)",
    var_type="NonNegativeIntegers"
USING glpk
INTO my_db.my_result_table;

Deskripsi parameter:

Parameter

Deskripsi

TO MAXIMIZE

objective_expr adalah SUM(x * c1), menunjukkan bahwa nilai SUM(x * c1) harus dimaksimalkan.

CONSTRAINT

  • SUM(x) <= c2 GROUP BY c1: GROUP BY berarti bahwa untuk setiap c1 yang berbeda, akan ada ekspresi kendala SUM(x) <= c2.

  • x <= 3: Untuk setiap x, kondisi x <= 3 harus dipenuhi.

WITH

  • variables=x(c3): Menunjukkan bahwa kolom target optimasi adalah c3; x mewakili nilai variabel yang akan diselesaikan.

  • var_type="NonNegativeIntegers": Menunjukkan bahwa variabel x adalah bilangan bulat non-negatif. Tipe data yang didukung untuk variabel adalah sebagai berikut:

    • Binary: Nilai variabel adalah 0 atau 1.

    • Integers: Nilai variabel adalah bilangan bulat.

    • PositiveIntegers, NegativeIntegers: Nilai variabel adalah bilangan bulat positif atau negatif.

    • NonPositiveIntegers, NonNegativeIntegers: Nilai variabel adalah bilangan bulat non-positif atau non-negatif.

    • Reals: Nilai variabel adalah bilangan real.

    • PositiveReals, NegativeReals: Nilai variabel adalah bilangan real positif atau negatif.

    • NonPositiveReals, NonNegativeReals: Nilai variabel adalah bilangan real non-positif atau non-negatif.

USING

glpk: Menunjukkan penggunaan glpk untuk menyelesaikan masalah ini. RDS SQLFlow mendukung:

  • GLPK: Digunakan untuk menyelesaikan masalah pemrograman linear.

  • BARON: Digunakan untuk menyelesaikan masalah pemrograman non-linear.

INTO

my_db.my_result_table: Tabel yang menyimpan hasil solusi.

Referensi

Pengenalan RDS Custom