Link Search Menu Expand Document Documentation Menu

SQL 设置

SQL 插件为标准的 OpenSearch 集群设置添加了一些设置。大多数是动态的,因此您无需重启集群即可更改插件的默认行为。要了解有关静态和动态设置的更多信息,请参阅配置 OpenSearch

可以独立禁用 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 1 分钟 配置游标上下文保持打开状态的时长。游标上下文是资源密集型的,因此建议使用较低值。
plugins.query.memory_limit 85% 配置查询引擎断路器的堆内存使用限制。
plugins.query.size_limit 200 设置查询引擎从 OpenSearch 获取的索引的默认大小。
plugins.query.datasources.enabled true 更改为 false 可禁用插件中对数据源的支持。
plugins.query.field_type_tolerance true 如果为 false,则数组在任何嵌套级别都会被简化为第一个非数组值。例如,[[1, 2], [3, 4]] 将被简化为 1。如果为 true,则保留数组。默认为 true
plugins.calcite.enabled false 设置为 true 可启用使用 Apache Calcite 查询引擎的实验性功能,包括高级 SQL 和 PPL 功能,例如子查询、连接和查找操作。

Spark 连接器设置

SQL 插件支持 Apache Spark 作为增强型计算源。当数据源在 Apache Spark 中定义为表时,OpenSearch 可以使用这些表。这允许您在 OpenSearch Dashboard 的 Discover 和可观测性日志中针对外部源运行 SQL 查询。

首先,启用以下设置以将 Spark 添加为数据源并启用正确的权限。

设置 描述
spark.uri 您的 Spark 数据源的标识符。
spark.auth.type 用于对 Spark 进行身份验证的授权类型。
spark.auth.username 您的 Spark 数据源的用户名。
spark.auth.password 您的 Spark 数据源的密码。
spark.datasource.flint.host Spark 数据源的主机。默认为 localhost
spark.datasource.flint.port Spark 的端口号。默认为 9200
spark.datasource.flint.scheme 在您的 Spark 查询中使用的数据方案。有效值为 httphttps
spark.datasource.flint.auth 访问 Spark 数据源所需的授权。有效值为 falsesigv4
spark.datasource.flint.region 您的 OpenSearch 集群所在的 AWS 区域。仅在 auth 设置为 sigv4 时使用。默认值为 us-west-2
spark.datasource.flint.write.id_name Spark 连接器写入的索引名称。
spark.datasource.flint.ignore.id_column 在查询中导出数据时排除 id 列。默认为 true
spark.datasource.flint.write.batch_size 设置写入 Spark 连接索引时的批处理大小。默认为 1000
spark.datasource.flint.write.refresh_policy 设置 Spark 连接器在无法将数据写入 OpenSearch 时的刷新策略。要么不刷新 (false),要么立即刷新 (true),要么设置等待时间,wait_for: X。默认值为 false
spark.datasource.flint.read.scroll_size 设置使用 Spark 运行的查询返回的结果数量。默认为 100
spark.flint.optimizer.enabled 启用 OpenSearch 以优化 Spark 连接。默认为 true
spark.flint.index.hybridscan.enabled 启用 OpenSearch 扫描数据源中非分区设备上的写入数据。默认为 false

配置完成后,您可以使用以下 API 调用测试您的 Spark 连接

POST /_plugins/_ppl
content-type: application/json

{
   "query": "source = my_spark.sql('select * from alb_logs')"
}
剩余 350 字符

有问题?

想做贡献?