SQL JDBC
编辑SQL JDBC
编辑Elasticsearch 的 SQL JDBC 驱动程序是一个功能丰富、功能齐全的 Elasticsearch JDBC 驱动程序。它是一个 Type 4 驱动程序,这意味着它是一个平台独立的、独立的、直接连接数据库的、纯 Java 驱动程序,可将 JDBC 调用转换为 Elasticsearch SQL。
安装
编辑JDBC 驱动程序可以从以下位置获取
- 专用页面
- elastic.co 提供链接,通常用于手动下载。
- Maven 依赖
- Maven 兼容的工具可以将其作为依赖项自动检索
<dependency> <groupId>org.elasticsearch.plugin</groupId> <artifactId>x-pack-sql-jdbc</artifactId> <version>8.17.0</version> </dependency>
从 Maven Central Repository 或通过将其添加到存储库列表中从 artifacts.elastic.co/maven
获取
<repositories> <repository> <id>elastic.co</id> <url>https://artifacts.elastic.co/maven</url> </repository> </repositories>
版本兼容性
编辑您的驱动程序必须与您的 Elasticsearch 版本兼容。
驱动程序版本不能比 Elasticsearch 版本更新。例如,Elasticsearch 版本 7.10.0 与 8.17.0 驱动程序不兼容。
Elasticsearch 版本 | 兼容的驱动程序版本 | 示例 |
---|---|---|
8.0.0–8.17.0 |
|
Elasticsearch 8.17.0 与 8.17.0 和更早的 8.x 驱动程序兼容。Elasticsearch 8.17.0 也与 7.7.0 和更高版本的 7.x 驱动程序兼容。 |
7.7.1-7.17 |
|
Elasticsearch 7.10.0 与 7.7.0-7.10.0 驱动程序兼容。 |
7.7.0 及更早版本 |
|
Elasticsearch 7.6.1 仅与 7.6.1 驱动程序兼容。 |
设置
编辑驱动程序主类是 org.elasticsearch.xpack.sql.jdbc.EsDriver
。请注意,该驱动程序实现了 JDBC 4.0 服务提供程序
机制,这意味着只要它在类路径中可用,它就会自动注册。
注册后,驱动程序将以下语法理解为 URL
jdbc:[es|elasticsearch]://[[http|https]://]?[host[:port]]?/[prefix]?[\?[option=value]&]*
-
jdbc:[es|elasticsearch]://
- 前缀。强制性。
-
[[http|https]://]
- 要进行的 HTTP 连接类型。可能的值为
http
(默认)或https
。可选。 -
[host[:port]]
- 主机(默认为
localhost
)和端口(默认为9200
)。可选。 -
[prefix]
- 前缀(默认为空)。通常在将 Elasticsearch 托管在特定路径下时使用。可选。
-
[option=value]
- JDBC 驱动程序的属性。默认为空。可选。
驱动程序识别以下属性
基本
编辑-
timezone
(默认 JVM 时区) - 驱动程序 _每个连接_ 使用的时区,由其
ID
指示。 强烈 建议设置它(例如,设置为UTC
),因为 JVM 时区可能会有所不同,对于整个 JVM 来说是全局的,并且在安全管理器下运行时不容易更改。
网络
编辑-
connect.timeout
(默认30000
) - 连接超时(以毫秒为单位)。这是等待与服务器建立连接的最大时间。
-
network.timeout
(默认60000
) - 网络超时(以毫秒为单位)。这是等待网络的最大时间。
-
page.size
(默认1000
) - 页面大小(以条目为单位)。服务器每页返回的结果数。
-
page.timeout
(默认45000
) - 页面超时(以毫秒为单位)。服务器上滚动光标的最短保留时间。在超时后,需要在服务器端使用有状态滚动光标的查询可能会失败。因此,当滚动浏览大型结果集时,处理
page.size
记录不应超过page.timeout
毫秒。 -
query.timeout
(默认90000
) - 查询超时(以毫秒为单位)。这是等待查询返回的最大时间。
基本身份验证
编辑-
user
- 基本身份验证用户名
-
password
- 基本身份验证密码
SSL
编辑-
ssl
(默认false
) - 启用 SSL
-
ssl.keystore.location
- 密钥库(如果使用)位置
-
ssl.keystore.pass
- 密钥库密码
-
ssl.keystore.type
(默认JKS
) - 密钥库类型。
PKCS12
是一种常见的替代格式 -
ssl.truststore.location
- 信任存储位置
-
ssl.truststore.pass
- 信任存储密码
-
ssl.truststore.type
(默认JKS
) - 信任存储类型。
PKCS12
是一种常见的替代格式 -
ssl.protocol
(默认TLS
) - 要使用的 SSL 协议
代理
编辑-
proxy.http
- Http 代理主机名
-
proxy.socks
- SOCKS 代理主机名
映射
编辑-
field.multi.value.leniency
(默认true
) - 是否要宽容地为具有多个值(true)的字段返回第一个值(不保证该值是什么 - 通常是自然升序的第一个值)或抛出异常。
索引
编辑-
index.include.frozen
(默认false
) - 是否在查询执行中包含冻结索引(默认)。
集群
编辑-
catalog
-
查询的默认目录(集群)。如果未指定,则查询仅在本地集群中的数据上执行。
[预览] 此功能为技术预览版,可能会在将来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览版中的功能不受正式 GA 功能的支持 SLA 的约束。 请参阅 跨集群搜索。
错误处理
编辑-
allow.partial.search.results
(默认false
) - 是否在分片失败时返回部分结果,或者使查询失败并抛出基础异常(默认)。
故障排除
编辑-
debug
(默认false
) - 将其设置为
true
将启用调试日志记录。 -
debug.output
(默认err
) - 调试日志的目标。默认情况下,它们会发送到标准错误。值
out
会将日志记录重定向到标准输出。也可以指定文件路径。
其他
编辑-
validate.properties
(默认true
) - 如果禁用,它将忽略任何拼写错误或无法识别的属性。启用后,如果提供的属性无法识别,则会抛出异常。
将所有内容放在一起,以下 URL
jdbc:es://http://server:3456/?timezone=UTC&page.size=250
打开到端口 3456
上的 server
的 Elasticsearch SQL 连接,并将 JDBC 连接时区设置为 UTC
,其页面大小设置为 250
个条目。