
# AI特性函数
#### check_engine_status(ip text, port text)
描述：测试给定的IP和port上是否有predictor engine提供服务。
参数：predictor engine的IP地址和端口号。
返回值类型：text
![](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
该函数当前版本不可用。
#### encode_plan_node(optname text, orientation text, strategy text, options text, dop int8, quals text, projection text)
描述：对入参的计划算子信息进行编码。
参数：计划算子信息。
返回值类型：text
![](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
该函数为内部功能调用函数，不建议用户直接使用。
#### model_train_opt(template text, model text)
描述：训练给定的查询性能预测模型。
参数：性能预测模型的模板名和模型名。
返回值类型：startup_time_accuracy FLOAT8, total_time_accuracy FLOAT8, rows_accuracy FLOAT8, peak_memory_accuracy FLOAT8
![](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
该函数当前版本不可用。
#### track_model_train_opt(ip text, port text)
描述：返回给定IP和port predictor engine的训练日志地址。
参数：predictor engine的IP地址和端口号。
返回值类型：text
![](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
该函数当前版本不可用。
#### encode_feature_perf_hist(datname text)
描述：将目标数据库已收集的历史计划算子进行编码。
参数：数据库名。
返回值类型：queryid bigint, plan_node_id int, parent_node_id int, left_child_id int, right_child_id int, encode text, startup_time bigint, total_time bigint, rows bigint, peak_memory int
#### gather_encoding_info(datname text)
描述：调用encode_feature_perf_hist，将编码好的数据进行持久化保存。
参数：数据库名。
返回值类型：int
#### db4ai_predict_by_bool (text, VARIADIC "any")
描述：获取返回值为布尔型的模型进行模型推断任务。此函数为内部调用函数，建议直接使用语法PREDICT BY进行推断任务。
参数：模型名称和推断任务的输入列。
返回值类型：bool
#### db4ai_predict_by_float4(text, VARIADIC "any")
描述：获取返回值为float4的模型进行模型推断任务。此函数为内部调用函数，建议直接使用语法PREDICT BY进行推断任务。
参数：模型名称和推断任务的输入列。
返回值类型：float
#### db4ai_predict_by_float8(text, VARIADIC "any")
描述：获取返回值为float8的模型进行模型推断任务。此函数为内部调用函数，建议直接使用语法PREDICT BY进行推断任务。
参数：模型名称和推断任务的输入列。
返回值类型：float
#### db4ai_predict_by_int32(text, VARIADIC "any")
描述：获取返回值为int32的模型进行模型推断任务。此函数为内部调用函数，建议直接使用语法PREDICT BY进行推断任务。
参数：模型名称和推断任务的输入列。
返回值类型：int
#### db4ai_predict_by_int64(text, VARIADIC "any")
描述：获取返回值为int64的模型进行模型推断任务。此函数为内部调用函数，建议直接使用语法PREDICT BY进行推断任务。
参数：模型名称和推断任务的输入列。
返回值类型：int
#### db4ai_predict_by_numeric(text, VARIADIC "any")
描述：获取返回值为numeric的模型进行模型推断任务。此函数为内部调用函数，建议直接使用语法PREDICT BY进行推断任务。
参数：模型名称和推断任务的输入列。
返回值类型：numeric
#### db4ai_predict_by_text(text, VARIADIC "any")
描述：获取返回值为字符型的模型进行模型推断任务。此函数为内部调用函数，建议直接使用语法PREDICT BY进行推断任务。
参数：模型名称和推断任务的输入列。
返回值类型：text
#### db4ai_predict_by_float8_array(text, VARIADIC "any")
描述：获取返回值为字符型的模型进行模型推断任务。此函数为内部调用函数，建议直接使用语法PREDICT BY进行推断任务。
参数：模型名称和推断任务的输入列。
返回值类型：text
#### gs_explain_model(text)
描述：获取返回值为字符型的模型进行模型解析文本化任务。
参数：模型名称。
返回值类型：text
示例：
```
--创建数据表。
gaussdb=# CREATE TABLE houses (
id INTEGER,
tax INTEGER,
bedroom INTEGER,
bath DOUBLE PRECISION,
price INTEGER,
size INTEGER,
lot INTEGER,
mark text
);
--插入训练数据。
gaussdb=# INSERT INTO houses(id, tax, bedroom, bath, price, size, lot, mark) VALUES
(1,590,2,1,50000,770,22100,'a+'),
(2,1050,3,2,85000,1410,12000,'a+'),
(3,20,2,1,22500,1060,3500,'a-'),
(4,870,2,2,90000,1300,17500,'a+'),
(5,1320,3,2,133000,1500,30000,'a+'),
(6,1350,2,1,90500,850,25700,'a-'),
(7,2790,3,2.5,260000,2130,25000,'a+'),
(8,680,2,1,142500,1170,22000,'a-'),
(9,1840,3,2,160000,1500,19000,'a+'),
(10,3680,4,2,240000,2790,20000,'a-'),
(11,1660,3,1,87000,1030,17500,'a+'),
(12,1620,3,2,118500,1250,20000,'a-'),
(13,3100,3,2,140000,1760,38000,'a+'),
(14,2090,2,3,148000,1550,14000,'a-'),
(15,650,3,1.5,65000,1450,12000,'a-');
--训练模型。
gaussdb=# CREATE MODEL gs_explain
USING logistic_regression
 FEATURES size, lot
 TARGET mark
 FROM HOUSES
 WITH learning_rate=0.88, max_iterations=default;
—文本化模型
gaussdb=# select *from gs_explain_model('price_model');
                        gs_explain_model
----------------------------------------------------------------
 Name: price_model                                             +
 Algorithm: logistic_regression                                +
 Query: CREATE MODEL price_model USING logistic_regression     +
  FEATURES size, lot                                           +
  TARGET mark                                                  +
  FROM HOUSES                                                  +
  WITH learning_rate=0.88, max_iterations=default;             +
 Return type: Text                                             +
 Pre-processing time: 0.000000                                 +
 Execution time: 0.000262                                      +
 Processed tuples: 15                                          +
 Discarded tuples: 0                                           +
 batch_size: 1000                                              +
 decay: 0.9500000000                                           +
 learning_rate: 0.8800000000                                   +
 max_iterations: 100                                           +
 max_seconds: 0                                                +
 optimizer: gd                                                 +
 tolerance: 0.0005000000                                       +
 seed: 1719571149                                              +
 verbose: false                                                +
 accuracy: 0.5333333611                                        +
 f1: 0.5333333611                                              +
 precision: 0.5000000000                                       +
 recall: 0.5714285970                                          +
 loss: -nan                                                    +
 weights: {1636.68648564241,-119.516647562169,1.12196231032849}+
 categories: {a+,a-}                                           +
(1 row)
```
#### gs_ai_stats_explain(text, text\[\])
描述：打印对应表和列上的多列智能统计信息。
参数：表名称和列名集合。
返回值类型：text
#### gs_acm_analyze_workload_manual()
描述：手动基于当前数据库下的算子反馈数据训练基数估计模型。
参数：无。
返回值类型：text
#### gs_stat_get_acm_feedback_operator_info()
描述：展示目前全局内存中收集到的所有算子反馈数据。
参数：无。
返回值类型：record
#### gs_stat_get_sql_feedback_info()
描述：展示目前全局内存中反馈基数功能生效范围内SQL使用反馈次数以及使用和不使用分别的执行时间。
参数：无。
返回值类型：record
#### gs_costmodel_calibration_manual()
描述：手动触发算子时间收集并且矫正代价模型参数。
参数：无。
返回值类型：text
#### gs_show_aplan(cstring)
描述：查看本session中缓存的查询的多计划缓存。
参数：表示prepare name用于查找对应的缓存计划。
返回值类型：text
#### ai_watchdog_detection_warnings()
描述：获取AI Watchdog的风险告警信息。需要SYSADMIN或MONADMIN访问权限。
参数：无。
返回值类型：record
#### ai_watchdog_monitor_status(int)
描述：获取AI Watchdog的监控信息。需要SYSADMIN或MONADMIN访问权限。
参数：返回监控序列的长度上限。
返回值类型：record
#### ai_watchdog_parameters()
描述：获取AI Watchdog的内部参数或状态信息。需要SYSADMIN或MONADMIN访问权限。
参数：无。
返回值类型：record
