SQL 设置

SQL 插件向标准的 UDB-SX 集群设置中添加了一些设置。其中大多数是动态的,因此您可以在不重启集群的情况下更改插件的默认行为。

可以独立禁用 PPLSQL 查询的处理。

您可以像更新其他集群设置一样更新这些设置:

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 端点的请求在请求体中包含索引名称,因此它们与 bulkmgetmsearch 操作具有相同的访问策略考虑因素。将 rest.action.multi.allow_explicit_index 参数设置为 false 会同时禁用 SQLPPL 端点。

可用设置

设置 默认值 描述
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 功能,例如子搜索、joinlookup 操作。
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 启用性能敏感的连接类型,例如 RIGHTFULLCROSS 连接。改为 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_patternbrain。更多信息,请参阅 patterns 语法(语法文档可联系售前工作人员获取)。
plugins.ppl.pattern.mode label 设置 patterns 命令的模式。有效值为 labelaggregation。更多信息,请参阅 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 查询可以运行的最长时间。如果查询超过此限制,执行将停止并返回超时错误。