SQL 设置
SQL 插件为标准的 OpenSearch 集群设置添加了一些设置。大多数是动态的,因此您无需重启集群即可更改插件的默认行为。要了解有关静态和动态设置的更多信息,请参阅配置 OpenSearch。
可以独立禁用 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 | 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 查询中使用的数据方案。有效值为 http 和 https 。 |
spark.datasource.flint.auth | 访问 Spark 数据源所需的授权。有效值为 false 和 sigv4 。 |
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')"
}