すべてのプロダクト
Search
ドキュメントセンター

:構文仕様

最終更新日:Nov 09, 2025

RDS SQLFlow ステートメントを使用して、モデルのトレーニング、予測、評価を効率的に実行できます。このトピックでは、RDS SQLFlow の構文仕様について詳しく説明します。

概要

RDS SQLFlow ステートメントを使用すると、複雑な Python コードを記述することなく、モデルのトレーニング、予測、評価を効率的に実行できます。RDS SQLFlow はこれらのステートメントを自動的に解析し、同等の Python プログラムに変換するため、モデルのトレーニングプロセスが大幅に簡素化されます。RDS SQLFlow の構文は、以下を含むさまざまな特徴をカバーしています。

たとえば、iris データセットを使用して、TensorFlow DNNClassifier アルゴリズムをトレーニングできます。データセットでは、最初の 4 つの列は各アヤメの花の植物学的形状を示す特徴を表し、最後の列は各アヤメの花の亜種を表すラベルです。

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

...

...

...

...

...

次の単純な RDS SQLFlow ステートメントを使用すると、それぞれが 10 個の隠れユニットを持つ 2 つの隠れ層を持つ DNNClassifier モデルを簡単にトレーニングできます。トレーニング後、モデルは後続の予測のために sqlflow_models.my_dnn_model テーブルに保存されます。RDS SQLFlow はこれらのステートメントを自動的に解析し、同等の Python プログラムに変換するため、モデルのトレーニングプロセスが大幅に簡素化されます。

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;

トレーニング構文

RDS SQLFlow のトレーニングステートメントは、SELECTTRAINCOLUMNLABEL、および INTO 句で構成されます。

SELECT 選択式 [, 選択式 ...]
FROM テーブル参照
  [WHERE where_条件]
  [LIMIT 行数]
TO TRAIN モデル識別子
[WITH
  モデル属性式 [, モデル属性式 ...]
  [, トレーニング属性式 ...]]
COLUMN 列式 [, 列式 ...]
  | COLUMN 列式 [, 列式 ...] FOR 列名
    [COLUMN 列式 [, 列式 ...] FOR 列名 ...]
[LABEL ラベル式]
INTO テーブル参照;

SELECT 句

SELECT 句は、指定されたテーブルからデータを取得するために使用されます。

構文:

SELECT select_expr [, select_expr ...]
FROM table_references
  [WHERE where_condition]
  [LIMIT row_count]

パラメーターの説明:

パラメーター

説明

select_expr

取得するデータ列。少なくとも 1 つの列を指定する必要があります。

table_references

データを取得するテーブル。

where_condition

行をフィルターするために使用される式。

row_count

取得する行の最大数。

例:

たとえば、サンプルデータセット (iris.train) で二項分類モデルを迅速にトレーニングするには、次のようにします。

SELECT * FROM iris.train
WHERE class = 0 OR class = 1
LIMIT 1000
TO TRAIN ...

TRAIN

TRAIN 句は、特定のモデルタイプとそのトレーニングアルゴリズムを記述するために使用されます。

構文:

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

パラメーターの説明:

パラメーター

説明

model_identifier

モデルタイプ (DNNClassifier など)。その他のモデルについては、「モデルとアルゴリズム」をご参照ください。

model_attr_expr

モデル属性 (例: model.n_classes = 3)。

train_attr_expr

トレーニング属性 (例: train.epoch = 10)。

例:

たとえば、それぞれが 10 個の隠れユニットを持つ 2 つの隠れ層と 10 回のトレーニングエポックを持つ DNNClassifier モデルをトレーニングするには、次のようにします。

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

COLUMN

COLUMN 句は、トレーニング特徴のフィールド名と、そのオプションの前処理メソッドを指定するために使用されます。

構文:

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

パラメーターの説明:

パラメーター

説明

column_expr

フィールド名とその内容の前処理メソッド (例: sepal_length,DENSE(dense, 3))。

column_name

モデル入力用の特徴列名。

例:

たとえば、sepal_length、sepal_width、petal_length、petal_width の各フィールドを特徴として使用するには、次のようにします。

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

LABEL 句は、トレーニングラベルのフィールド名と、そのオプションの前処理メソッドを示すために使用されます。

構文:

ラベル label_expr

パラメーターの説明:

パラメーター

説明

label_expr

フィールド名とその内容の前処理メソッド (例: class)。

例:

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

INTO 句は、トレーニング済みモデルが保存されるテーブル名を指定するために使用されます。

構文:

INTO テーブル参照

パラメーターの説明:

パラメーター

説明

table_references

トレーニング済みモデルが保存されるテーブル名。

例:

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;

予測構文

RDS SQLFlow の予測ステートメントは、SELECTPREDICT、および 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;
重要

TO PREDICT の前の SELECT 句のデータ構造は、トレーニング構文の TO TRAIN 操作で使用されるデータ構造と一致している必要があります。これにより、予測および説明プロセスで使用されるデータ構造が、トレーニングフェーズで使用されたデータ構造と一致することが保証されます。

PREDICT および USING 句

PREDICT は予測結果が書き込まれるテーブルを記述するために使用され、USING はモデルがロードされるテーブルを記述するために使用され、WITH は予測に必要な構成を記述するために使用されます。

構文:

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

パラメーターの説明:

パラメーター

説明

result_table_reference

予測結果を格納するテーブル。

attr_expr

構成属性 (例: predict.batch_size = 1)。

model_table_reference

予測のためにモデルがロードされるテーブル。

例:

たとえば、sqlflow.my_dnn_model テーブルに格納されているモデルを使用し、予測結果を iris.predict テーブルの列に保存するには、次のようにします。

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

説明構文

RDS SQLFlow の説明ステートメントは、一連の SELECTEXPLAIN、および 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];
重要

TO EXPLAIN の前の SELECT 句のデータ構造は、トレーニング構文TO TRAIN 操作で使用されるデータ構造と一致している必要があります。

EXPLAIN および USING

EXPLAIN 句は、モデルがロードされるテーブルと必要な構成属性を指定するために使用されます。USING 句は、explainer を指定するために使用されます。

構文:

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

パラメーターの説明:

パラメーター

説明

model_table_reference

予測のためにモデルがロードされるテーブル。

attr_expr

構成属性 (例: summary.plot_type="bar")。

explainer

explainer のタイプ (例: TreeExplainer)。

例:

たとえば、TreeExplainer を使用して sqlflow_models.my_xgb_regression_model に格納されているモデルを説明し、分析結果をソート順にプロットするには、次のようにします。

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

評価構文

RDS SQLFlow の評価ステートメントは、SELECTEVALUATE、および 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;
重要
  • TO EVALUATE の前の SELECT 句のデータ構造は、トレーニング構文TO TRAIN 操作で使用されるデータ構造と一致している必要があります。

  • 機械学習の理論によれば、トレーニングデータセットを評価に使用することは不適切です。これは、過度に理想化された評価結果をもたらす可能性があるためです。

EVALUATE および INTO 句

TO EVALUATE 句は、評価するモデルと評価に使用するメトリックを指定するために使用されます。INTO 句は、評価結果が保存されるテーブルを指定するために使用されます。

構文:

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

パラメーターの説明:

パラメーター

説明

model_table_reference

評価されるモデル。その評価結果は、新しいデータを予測する際のモデルのパフォーマンスを表します。

attr_expr

評価のための属性。

validation.metrics を設定することで、どのメトリックが結果テーブルに出力されるかを指定できます (例: validation.metrics="Accuracy,AUC")。

evaluate_result_table

評価結果を格納するテーブル。

例:

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

最適化構文

RDS SQLFlow は、TO MAXIMIZE および TO MINIMIZE 句を使用して、数理計画法の問題を記述し、解決します。

構文:

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;

例:

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;

パラメーターの説明:

パラメーター

説明

TO MAXIMIZE

objective_exprSUM(x * c1) であり、SUM(x * c1) の値を最大化する必要があることを示します。

CONSTRAINT

  • SUM(x) <= c2 GROUP BY c1: GROUP BY は、異なる c1 ごとに制約式 SUM(x) <= c2 が存在することを意味します。

  • x <= 3: 各 x について、条件 x <= 3 を満たす必要があります。

WITH

  • variables=x(c3): 最適化対象の列が c3 であることを示します。x は解決される変数値を表します。

  • var_type="NonNegativeIntegers": 変数 x が非負整数であることを示します。変数でサポートされているデータの型は次のとおりです。

    • Binary: 変数値は 0 または 1 です。

    • Integers: 変数値は整数です。

    • PositiveIntegersNegativeIntegers: 変数値は正または負の整数です。

    • NonPositiveIntegersNonNegativeIntegers: 変数値は非正または非負の整数です。

    • Reals: 変数値は実数です。

    • PositiveRealsNegativeReals: 変数値は正または負の実数です。

    • NonPositiveRealsNonNegativeReals: 変数値は非正または非負の実数です。

USING

glpk: この問題を解決するために glpk を使用することを示します。RDS SQLFlow は以下をサポートします。

  • GLPK: 線形計画法の問題を解決するために使用されます。

  • BARON: 非線形計画法の問題を解決するために使用されます。

INTO

my_db.my_result_table: ソリューションの結果を格納するテーブル。

リファレンス

RDS Custom の概要