SQL JDBC
编辑SQL JDBC
编辑Elasticsearch 的 SQL JDBC 驱动程序是一个功能丰富、功能齐全的 Elasticsearch JDBC 驱动程序。它是一个类型 4 驱动程序,这意味着它是一个平台无关的、独立的、直接到数据库的、纯 Java 驱动程序,它将 JDBC 调用转换为 Elasticsearch SQL。
安装
编辑JDBC 驱动程序可从以下位置获取:
- 专用页面
- elastic.co 提供链接,通常用于手动下载。
- Maven 依赖项
- Maven 兼容工具可以将其自动作为依赖项检索
<dependency> <groupId>org.elasticsearch.plugin</groupId> <artifactId>x-pack-sql-jdbc</artifactId> <version>8.16.0</version> </dependency>
从 Maven 中心存储库 或从 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.16.0 驱动程序不兼容。
Elasticsearch 版本 | 兼容的驱动程序版本 | 示例 |
---|---|---|
8.0.0–8.16.0 |
|
Elasticsearch 8.16.0 与 8.16.0 和更早的 8.x 驱动程序兼容。Elasticsearch 8.16.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 的 Service Provider
机制,这意味着只要它在类路径中可用,就会自动注册。
注册后,驱动程序将以下语法识别为 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
条目。