SQL 设置
SQL 插件向标准的 UDB-SX 集群设置中添加了一些设置。其中大多数是动态的,因此您可以在不重启集群的情况下更改插件的默认行为。
可以独立禁用 PPL 或 SQL 查询的处理。
您可以像更新其他集群设置一样更新这些设置:
PUT _cluster/settings
{
"transient" : {
"plugins.sql.enabled" : false
}
}
或者,您可以使用以下请求格式:
PUT _cluster/settings
{
"transient": {
"plugins": {
"ppl": {
"enabled": "false"
}
}
}
}
类似地,您可以通过向 _plugins/_query/settings 端点发送请求来更新设置:
PUT _plugins/_query/settings
{
"transient" : {
"plugins.sql.enabled" : false
}
}
或者,您可以使用以下请求格式:
PUT _plugins/_query/settings
{
"transient": {
"plugins": {
"ppl": {
"enabled": "false"
}
}
}
}
发送到 _plugins/_ppl 和 _plugins/_sql 端点的请求在请求体中包含索引名称,因此它们与 bulk、mget 和 msearch 操作具有相同的访问策略考虑因素。将 rest.action.multi.allow_explicit_index 参数设置为 false 会同时禁用 SQL 和 PPL 端点。
可用设置
| 设置 | 默认值 | 描述 |
|---|---|---|
plugins.sql.enabled |
true |
改为 false 以禁用插件中的 SQL 支持。 |
plugins.ppl.enabled |
true |
改为 false 以禁用插件中的 PPL 支持。 |
plugins.sql.slowlog |
2 |
配置慢查询的时间限制(秒)。插件将慢查询以 Slow query: elapsed=xxx (ms) 的形式记录在 opensearch.log 中。 |
plugins.sql.cursor.keep_alive |
1m |
配置游标上下文保持打开的时间量。由于游标上下文非常耗费资源,我们建议设置较低的值。 |
plugins.query.memory_limit |
85% |
配置查询引擎熔断器的堆内存使用限制。 |
plugins.query.size_limit |
10000 |
设置查询执行返回的最大行数。 |
plugins.query.datasources.enabled |
true |
改为 false 以禁用插件中对数据源的支持。 |
plugins.query.field_type_tolerance |
true |
如果为 false,则数组在任何嵌套级别都会被缩减为第一个非数组值。例如,[[1, 2], [3, 4]] 被缩减为 1。如果为 true,则保留数组。默认为 true。 |
plugins.query.buckets |
10000 |
设置单个响应中返回的聚合桶数量。默认值为 plugins.query.size_limit 的值。 |
plugins.calcite.enabled |
true |
启用 Apache Calcite 查询引擎,包括高级 SQL 和 PPL 功能,例如子搜索、join 和 lookup 操作。 |
plugins.calcite.pushdown.enabled |
true |
改为 false 以禁用操作符下推优化。我们建议使用默认值。 |
plugins.calcite.fallback.allowed |
false |
改为 true 以允许回退到 v2 引擎。 |
plugins.calcite.pushdown.rowcount.estimation.factor |
0.9 |
用于乘以表扫描的行数来估算结果行数的因子。我们建议使用默认值。 |
plugins.calcite.all_join_types.allowed |
false |
启用性能敏感的连接类型,例如 RIGHT、FULL 和 CROSS 连接。改为 true 以允许这些连接操作。 |
plugins.ppl.syntax.legacy.preferred |
true |
控制 PPL 语法行为,包括默认参数值。当为 false 时,使用较新的语法标准。更多信息,请参阅 传统语法文档(语法文档可联系售前工作人员获取)。 |
plugins.ppl.values.max.limit |
0 |
设置 VALUES 聚合函数可以返回的唯一值的最大数量。值为 0 表示无限制。 |
plugins.ppl.rex.max_match.limit |
10 |
设置 rex 命令提取的最大匹配数。 |
plugins.ppl.subsearch.maxout |
10000 |
设置子搜索返回的最大行数。 |
plugins.ppl.join.subsearch_maxout |
50000 |
设置连接操作中使用的子搜索返回的最大行数。 |
plugins.ppl.pattern.method |
simple_pattern |
设置 patterns 命令的方法。有效值为 simple_pattern 和 brain。更多信息,请参阅 patterns 语法(语法文档可联系售前工作人员获取)。 |
plugins.ppl.pattern.mode |
label |
设置 patterns 命令的模式。有效值为 label 和 aggregation。更多信息,请参阅 patterns 语法(语法文档可联系售前工作人员获取)。 |
plugins.ppl.pattern.max.sample.count |
10 |
设置聚合模式下每个模式返回的最大样本日志数。 |
plugins.ppl.pattern.buffer.limit |
100000 |
设置 brain 算法使用的内部临时缓冲区的大小。 |
plugins.ppl.pattern.show.numbered.token |
false |
改为 true 以启用编号标记输出格式。 |
plugins.ppl.query.timeout |
5m |
配置 PPL 查询可以运行的最长时间。如果查询超过此限制,执行将停止并返回超时错误。 |