加载中

SQL JDBC

Elastic Stack Serverless

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>9.0.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 与 9.0.0 驱动程序不兼容。

Elasticsearch 版本 兼容的驱动程序版本 示例
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 (默认 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

查询的默认目录(集群)。 如果未指定,则查询仅在本地集群中的数据上执行。

[预览] 请参阅 跨集群搜索

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 个条目。

© . All rights reserved.