Todos os produtos
Search
Central de documentação

:Syntax specification

Última atualização: Aug 20, 2026

Use instruções do RDS SQLFlow para executar treinamento, previsão e avaliação de modelos com eficiência. Este tópico descreve detalhadamente a especificação de sintaxe do RDS SQLFlow.

Introdução

As instruções do RDS SQLFlow permitem treinar, prever e avaliar modelos sem escrever código Python complexo. O RDS SQLFlow analisa automaticamente essas instruções e as converte em programas Python equivalentes, simplificando significativamente o processo de treinamento. A sintaxe do RDS SQLFlow abrange diversos recursos, incluindo:

Por exemplo, use o conjunto de dados iris para treinar um algoritmo DNNClassifier do TensorFlow. Nesse conjunto, as quatro primeiras colunas representam características botânicas de cada flor de íris, enquanto a última coluna corresponde ao rótulo que identifica a subespécie.

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

...

...

...

...

...

A instrução simples do RDS SQLFlow abaixo treina um modelo DNNClassifier com duas camadas ocultas, cada uma contendo dez unidades ocultas. Após o treinamento, o modelo é salvo na tabela sqlflow_models.my_dnn_model para previsões subsequentes. O RDS SQLFlow analisa automaticamente essas instruções e as converte em programas Python equivalentes, simplificando significativamente o processo de treinamento.

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;

Sintaxe de treinamento

As instruções de treinamento do RDS SQLFlow são compostas pelas cláusulas SELECT, TRAIN, COLUMN, LABEL e INTO.

SELECT select_expr [, select_expr ...]
FROM table_references
  [WHERE where_condition]
  [LIMIT row_count]
TO TRAIN model_identifier
[WITH
  model_attr_expr [, model_attr_expr ...]
  [, train_attr_expr ...]]
COLUMN column_expr [, column_expr ...]
  | COLUMN column_expr [, column_expr ...] FOR column_name
    [COLUMN column_expr [, column_expr ...] FOR column_name ...]
[LABEL label_expr]
INTO table_references;

Cláusula SELECT

A cláusula SELECT recupera dados de uma tabela específica.

Sintaxe:

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

Descrição dos parâmetros:

Parâmetro

Descrição

select_expr

Colunas de dados a recuperar. Especifique pelo menos uma coluna.

table_references

Tabela de onde os dados serão recuperados.

where_condition

Expressão para filtrar linhas.

row_count

Número máximo de linhas a recuperar.

Exemplo:

Para treinar rapidamente um modelo de classificação binária no conjunto de dados de amostra (iris.train):

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

Cláusula TRAIN

A cláusula TRAIN define o tipo específico de modelo e seu algoritmo de treinamento.

Sintaxe:

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

Descrição dos parâmetros:

Parâmetro

Descrição

model_identifier

Tipo de modelo, como DNNClassifier. Para mais modelos, consulte Models and algorithms.

model_attr_expr

Atributos do modelo, como model.n_classes = 3.

train_attr_expr

Atributos de treinamento, como train.epoch = 10.

Exemplo:

Para treinar um modelo DNNClassifier com duas camadas ocultas, cada uma com dez unidades ocultas, e 10 épocas de treinamento:

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

Cláusula COLUMN

A cláusula COLUMN especifica os nomes dos campos das características de treinamento e seus métodos opcionais de pré-processamento.

Sintaxe:

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

Descrição dos parâmetros:

Parâmetro

Descrição

column_expr

Nome do campo e método de pré-processamento para seu conteúdo, como sepal_length,DENSE(dense, 3).

column_name

Nome da coluna de característica para entrada do modelo.

Exemplo:

Para usar os campos sepal_length, sepal_width, petal_length e petal_width como características:

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
...

Cláusula LABEL

A cláusula LABEL indica o nome do campo do rótulo de treinamento e seu método opcional de pré-processamento.

Sintaxe:

LABEL label_expr

Descrição dos parâmetros:

Parâmetro

Descrição

label_expr

Nome do campo e método de pré-processamento para seu conteúdo, como class.

Exemplo:

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
...

Cláusula INTO

A cláusula INTO especifica o nome da tabela onde o modelo treinado será salvo.

Sintaxe:

INTO table_references

Descrição dos parâmetros:

Parâmetro

Descrição

table_references

Nome da tabela onde o modelo treinado será salvo.

Exemplo:

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;

Sintaxe de previsão

As instruções de previsão do RDS SQLFlow consistem nas cláusulas SELECT, PREDICT e 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;
Importante

A estrutura de dados da cláusula SELECT antes de TO PREDICT deve ser consistente com a estrutura de dados usada na operação TO TRAIN da sintaxe de treinamento. Isso garante que a estrutura de dados utilizada nos processos de previsão e explicação corresponda à estrutura empregada durante a fase de treinamento.

Cláusulas PREDICT e USING

A cláusula PREDICT descreve a tabela onde os resultados da previsão serão gravados, USING indica a tabela de onde o modelo será carregado, e WITH define as configurações necessárias para a previsão.

Sintaxe:

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

Descrição dos parâmetros:

Parâmetro

Descrição

result_table_reference

Tabela que armazena os resultados da previsão.

attr_expr

Atributos de configuração, como predict.batch_size = 1.

model_table_reference

Tabela de onde o modelo é carregado para previsão.

Exemplo:

Para usar um modelo armazenado na tabela sqlflow.my_dnn_model e salvar os resultados da previsão em uma coluna da tabela iris.predict:

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

Sintaxe de explicação

As instruções de explicação do RDS SQLFlow são formadas por uma série de comandos SELECT, EXPLAIN e 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];
Importante

A estrutura de dados da cláusula SELECT que precede TO EXPLAIN deve ser consistente com a estrutura de dados usada pela operação TO TRAIN em training syntax.

Cláusulas EXPLAIN e USING

A cláusula EXPLAIN especifica a tabela de onde o modelo é carregado e os atributos de configuração necessários. Já a cláusula USING define o explicador a ser utilizado.

Sintaxe:

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

Descrição dos parâmetros:

Parâmetro

Descrição

model_table_reference

Tabela de onde o modelo é carregado para previsão.

attr_expr

Atributos de configuração, como summary.plot_type="bar".

explainer

Tipo de explicador, como TreeExplainer.

Exemplo:

Para usar o TreeExplainer na explicação de um modelo armazenado em sqlflow_models.my_xgb_regression_model e plotar os resultados da análise em ordem classificada:

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

Sintaxe de avaliação

As instruções de avaliação do RDS SQLFlow compreendem os comandos SELECT, EVALUATE e 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;
Importante
  • A estrutura de dados da cláusula SELECT antes de TO EVALUATE deve ser consistente com a estrutura de dados usada na operação TO TRAIN descrita em Training syntax.

  • Conforme a teoria de aprendizado de máquina, não é adequado usar o conjunto de dados de treinamento para avaliação, pois isso pode gerar resultados excessivamente otimistas.

Cláusulas EVALUATE e INTO

A cláusula TO EVALUATE define o modelo a ser avaliado e as métricas utilizadas na avaliação. A cláusula INTO especifica a tabela onde os resultados da avaliação serão salvos.

Sintaxe:

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

Descrição dos parâmetros:

Parâmetro

Descrição

model_table_reference

Modelo a ser avaliado, cujos resultados representam o desempenho do modelo ao prever novos dados.

attr_expr

Atributos para avaliação.

Defina quais métricas serão geradas na tabela de resultados configurando validation.metrics, por exemplo, validation.metrics="Accuracy,AUC".

evaluate_result_table

Tabela que armazena os resultados da avaliação.

Exemplo:

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

Sintaxe de otimização

O RDS SQLFlow utiliza as cláusulas TO MAXIMIZE e TO MINIMIZE para descrever e resolver problemas de programação matemática.

Sintaxe:

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;

Exemplo:

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;

Descrição dos parâmetros:

Parâmetro

Descrição

TO MAXIMIZE

objective_expr é SUM(x c1), indicando que o valor de SUM(x c1) deve ser maximizado.

CONSTRAINT

  • SUM(x) <= c2 GROUP BY c1: GROUP BY significa que, para cada valor distinto de c1, haverá uma expressão de restrição SUM(x) <= c2.

  • x <= 3: Para cada x, a condição x <= 3 deve ser satisfeita.

WITH

  • variables=x(c3): Indica que a coluna alvo da otimização é c3; x representa o valor da variável a ser resolvido.

  • var_type="NonNegativeIntegers": Indica que a variável x é um inteiro não negativo. Os tipos de dados suportados para variáveis são:

    • Binary: O valor da variável é 0 ou 1.

    • Integers: O valor da variável é um número inteiro.

    • PositiveIntegers, NegativeIntegers: O valor da variável é um inteiro positivo ou negativo.

    • NonPositiveIntegers, NonNegativeIntegers: O valor da variável é um inteiro não positivo ou não negativo.

    • Reals: O valor da variável é um número real.

    • PositiveReals, NegativeReals: O valor da variável é um número real positivo ou negativo.

    • NonPositiveReals, NonNegativeReals: O valor da variável é um número real não positivo ou não negativo.

USING

glpk: Indica o uso do glpk para resolver este problema. O RDS SQLFlow suporta:

  • GLPK: Utilizado para resolver problemas de programação linear.

  • BARON: Utilizado para resolver problemas de programação não linear.

INTO

my_db.my_result_table: Tabela que armazena os resultados da solução.

Referências

Introduction to RDS Custom