原文链接:https://calcite.apache.org/avatica/docs/client_reference.html

Avatica 提供了一个参考实现的客户端,形式为 Java JDBC 客户端,通过 HTTP 与 Avatica 服务器进行交互。这个客户端可以像任何其他 JDBC 驱动程序一样使用。客户端可以通过 JDBC 连接 URL 指定许多可用的选项。

提醒一下,Avatica 的 JDBC 连接 URL 为:

jdbc:avatica:remote:[option=value[;option=value]]

以下是支持的选项列表:

url

描述:此属性是一个 URL,指向 Avatica 服务器的位置,驱动程序将与该服务器进行通信。

默认值:此属性的默认值为 null。用户必须为此属性提供一个值。

必需:是。

serialization

描述:Avatica 支持多种序列化机制来格式化客户端和服务器之间的数据。此属性用于确保客户端和服务器使用相同的序列化机制。当前的有效值包括 jsonprotobuf

默认值json 是默认值。

必需:否。

authentication

描述:Avatica 客户端可以指定其与 Avatica 服务器进行身份验证的方式。希望使用特定身份验证形式的客户端应在此属性中指定适当的值。此属性当前的有效值为:NONEBASICDIGESTSPNEGO

默认值null(意味着"无身份验证",等同于 NONE)。

必需:否。

timeZone

描述:用于日期和时间的时区。此属性的有效值由 RFC 822 定义,例如:GMTGMT-3ESTPDT

默认值:此属性的默认值为 null,这将导致 Avatica 驱动程序使用 JVM 指定的默认时区,通常可以通过 user.timezone 系统属性进行覆盖。

必需:否。

httpclient_factory

描述:Avatica 客户端是一个"高级" HTTP 客户端。因此,有许多库和 API 可用于进行 HTTP 调用。为了确定应该使用哪种实现,提供了一个接口 AvaticaHttpClientFactory,可用于控制如何选择 AvaticaHttpClient 实现。

默认值AvaticaHttpClientFactoryImpl

必需:否。

httpclient_impl

描述:当使用默认的 AvaticaHttpClientFactoryImpl HTTP 客户端工厂实现时,该工厂应该为给定的客户端配置选择正确的客户端实现。此属性可用于覆盖特定的 HTTP 客户端实现。如果未提供,AvaticaHttpClientFactoryImpl 将自动选择 HTTP 客户端实现。

默认值null

必需:否。

avatica_user

描述:这是 Avatica 客户端用于向 Avatica 服务器标识自己的用户名。它独立于传统的"用户" JDBC 属性。仅当 Avatica 配置为 HTTP Basic 或 Digest 身份验证时才需要。

默认值null

必需:否。

avatica_password

描述:这是 Avatica 客户端用于向 Avatica 服务器标识自己的密码。它独立于传统的"密码" JDBC 属性。仅当 Avatica 配置为 HTTP Basic 或 Digest 身份验证时才需要。

默认值null

必需:否。

principal

描述:Avatica JDBC 驱动程序可以使用 Kerberos 主体,在尝试联系 Avatica 服务器之前自动执行 Kerberos 登录。如果提供了此属性,还应该提供 keytab,并且 Avatica 服务器应该配置为 SPNEGO 身份验证。用户可以执行自己的 Kerberos 登录;此选项仅作为便利提供。

默认值null

必需:否。

keytab

描述:Kerberos keytab 包含用于使用 principal 执行 Kerberos 登录的秘密材料。该值应该是本地文件系统上常规文件的路径。

默认值null

必需:否。

truststore

描述:本地文件系统上 Java KeyStore (JKS) 文件的路径,其中包含在 TLS 握手中要信任的证书颁发机构。仅在使用 HTTPS 时才需要。

默认值null

必需:否。

truststore_password

描述:由 truststore 指定的 Java KeyStore 文件的密码。

默认值null

必需:仅在提供了 truststore 时。

keystore_type

描述:由 truststore 指定的 truststore 文件的格式。如果使用非 JKS 格式的 keystore(例如 BCFKS),则需要指定此项。此设置适用于 keystore 和 truststore 文件。对于默认 JVM 中未包含的格式,必须将相应的安全提供程序安装并配置到 JVM 中,或添加到应用程序类路径并进行配置。

默认值null

必需:否。

fetch_size

描述:要获取的行数。如果设置了 Statement:setFetchSize,则该值会覆盖 fetch_size。

默认值100

必需:否。

transparent_reconnection

描述:在 1.5.0 和 1.20.0 之间的 Java 客户端版本中,如果连接对象从服务器缓存中过期,则会透明地重新创建客户端的连接对象。此行为破坏了 JDBC 合规性,并可能导致事务性写入工作负载的数据丢失,已在 1.21.0 中移除。将此属性设置为 true 可恢复 1.20.0 的行为。

默认值false

必需:否。

use_client_side_lb

描述:启用客户端负载均衡。

默认值false

必需:否。

lb_urls

描述:以逗号分隔的 URL 列表,例如 “URL1,URL2…URLn”,供客户端负载均衡器使用。根据负载均衡策略,负载均衡器从列表中选择一个 URL。

默认值null

必需:否。

lb_strategy

描述:客户端负载均衡器使用的负载均衡策略。它必须是一个完全限定的 Java 类名,实现 org.apache.calcite.avatica.ha.LBStrategy。提供了三个实现:org.apache.calcite.avatica.ha.RandomSelectLBStrategyorg.apache.calcite.avatica.ha.RoundRobinLBStrategyorg.apache.calcite.avatica.ha.ShuffledRoundRobinLBStrategy

默认值org.apache.calcite.avatica.ha.ShuffledRoundRobinLBStrategy

必需:否。

lb_connection_failover_retries

描述:负载均衡器尝试使用另一个 URL 重试连接的次数(故障转移)。当连接失败时,负载均衡器使用负载均衡策略选择的另一个 URL 重试连接。

默认值3

必需:否。

lb_connection_failover_sleep_time

描述:负载均衡器在尝试下一次连接故障转移重试之前休眠的时间(以毫秒为单位)。

默认值1000

必需:否。

http_connection_timeout

描述:建立 Avatica HTTP 客户端和服务器之间连接的超时时间(以毫秒为单位)。

默认值180000(3 分钟)。

必需:否。

http_response_timeout

描述:Avatica HTTP 客户端和服务器之间连接的套接字超时时间(以毫秒为单位)。

默认值180000(3 分钟)。

必需:否。

写在最后

笔者因为工作原因接触到 Calcite,前期学习过程中,深感 Calcite 学习资料之匮乏,因此创建了 Calcite 从入门到精通知识星球,希望能够将学习过程中的资料和经验沉淀下来,为更多想要学习 Calcite 的朋友提供一些帮助。

Calcite 从入门到精通