blob: 1d0b194dd697ffc017bbd818f3e068efa07f314c [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title>Client Reference</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="generator" content="Jekyll v3.7.3">
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
<link rel="stylesheet" href="/avatica/css/screen.css">
<link rel="icon" type="image/x-icon" href="/avatica/favicon.ico">
<!--[if lt IE 9]>
<script src="/js/html5shiv.min.js"></script>
<script src="/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="wrap">
<header role="banner">
<nav class="mobile-nav show-on-mobiles">
<ul>
<li class="">
<a href="/avatica/">Home</a>
</li>
<li class="">
<a href="/avatica/downloads/">Download</a>
</li>
<li class="">
<a href="/avatica/community/">Community</a>
</li>
<li class="">
<a href="/avatica/develop/">Develop</a>
</li>
<li class="">
<a href="/avatica/news/">News</a>
</li>
<li class="current">
<a href="/avatica/docs/">Docs</a>
</li>
</ul>
</nav>
<div class="grid">
<div class="unit one-third center-on-mobiles">
<h1>
<a href="/avatica/">
<span class="sr-only">Apache Calcite Avatica</span>
<img src="/avatica/img/logo.png" width="226" height="140" alt="Calcite Logo">
</a>
</h1>
</div>
<nav class="main-nav unit two-thirds hide-on-mobiles">
<ul>
<li class="">
<a href="/avatica/">Home</a>
</li>
<li class="">
<a href="/avatica/downloads/">Download</a>
</li>
<li class="">
<a href="/avatica/community/">Community</a>
</li>
<li class="">
<a href="/avatica/develop/">Develop</a>
</li>
<li class="">
<a href="/avatica/news/">News</a>
</li>
<li class="current">
<a href="/avatica/docs/">Docs</a>
</li>
</ul>
</nav>
</div>
</header>
<section class="docs">
<div class="grid">
<div class="docs-nav-mobile unit whole show-on-mobiles">
<select onchange="if (this.value) window.location.href=this.value">
<option value="">Navigate the docs…</option>
<optgroup label="Overview">
</optgroup>
<optgroup label="Avatica Reference">
</optgroup>
<optgroup label="Avatica Go Client Reference">
</optgroup>
<optgroup label="Avatica Meta">
</optgroup>
<optgroup label="Avatica Go Client Meta">
</optgroup>
</select>
</div>
<div class="unit four-fifths">
<article>
<h1>Client Reference</h1>
<!--
-->
<p>Avatica provides a reference-implementation client in the form of a Java
JDBC client that interacts with the Avatica server over HTTP. This client
can be used just as any other JDBC driver. There are a number of options
that are available for clients to specify via the JDBC connection URL.</p>
<p>As a reminder, the JDBC connection URL for Avatica is:</p>
<p><code class="highlighter-rouge">jdbc:avatica:remote:[option=value[;option=value]]</code></p>
<p>The following are a list of supported options:</p>
<dl>
<dt><strong><a name="url" href="#url">url</a></strong></dt>
<dd>
<p><em>Description</em>: This property is a URL which refers to the location of the
Avatica Server which the driver will communicate with.</p>
</dd>
<dd>
<p><em>Default</em>: This property’s default value is <code class="highlighter-rouge">null</code>. It is required that the
user provides a value for this property.</p>
</dd>
<dd>
<p><em>Required</em>: Yes.</p>
</dd>
<dt><strong><a name="serialization" href="#serialization">serialization</a></strong></dt>
<dd>
<p><em>Description</em>: Avatica supports multiple types of serialization mechanisms
to format data between the client and server. This property is used to ensure
that the client and server both use the same serialization mechanism. Valid
values presently include <code class="highlighter-rouge">json</code> and <code class="highlighter-rouge">protobuf</code>.</p>
</dd>
<dd>
<p><em>Default</em>: <code class="highlighter-rouge">json</code> is the default value.</p>
</dd>
<dd>
<p><em>Required</em>: No.</p>
</dd>
<dt><strong><a name="authentication" href="#authentication">authentication</a></strong></dt>
<dd>
<p><em>Description</em>: Avatica clients can specify the means in which it authenticates
with the Avatica server. Clients who want to use a specific form
of authentication should specify the appropriate value in this property. Valid
values for this property are presently: <code class="highlighter-rouge">NONE</code>, <code class="highlighter-rouge">BASIC</code>, <code class="highlighter-rouge">DIGEST</code>, and <code class="highlighter-rouge">SPNEGO</code>.</p>
</dd>
<dd>
<p><em>Default</em>: <code class="highlighter-rouge">null</code> (implying “no authentication”, equivalent to <code class="highlighter-rouge">NONE</code>).</p>
</dd>
<dd>
<p><em>Required</em>: No.</p>
</dd>
<dt><strong><a name="timeZone" href="#timeZone">timeZone</a></strong></dt>
<dd>
<p><em>Description</em>: The timezone that will be used for dates and times. Valid values for this
property are defined by <a href="https://www.ietf.org/rfc/rfc0822.txt">RFC 822</a>, for
example: <code class="highlighter-rouge">GMT</code>, <code class="highlighter-rouge">GMT-3</code>, <code class="highlighter-rouge">EST</code> or <code class="highlighter-rouge">PDT</code>.</p>
</dd>
<dd>
<p><em>Default</em>: This property’s default value is <code class="highlighter-rouge">null</code> which will cause the Avatica Driver to
use the default timezone as specified by the JVM, commonly overriden by the
<code class="highlighter-rouge">user.timezone</code> system property.</p>
</dd>
<dd>
<p><em>Required</em>: No.</p>
</dd>
<dt><strong><a name="httpclient-factory" href="#httpclient-factory">httpclient_factory</a></strong></dt>
<dd>
<p><em>Description</em>: The Avatica client is a “fancy” HTTP client. As such, there are
many libraries and APIs available for making HTTP calls. To determine which implementation
should be used, there is an interface <code class="highlighter-rouge">AvaticaHttpClientFactory</code> which can be provided
to control how the <code class="highlighter-rouge">AvaticaHttpClient</code> implementation is chosen.</p>
</dd>
<dd>
<p><em>Default</em>: <code class="highlighter-rouge">AvaticaHttpClientFactoryImpl</code>.</p>
</dd>
<dd>
<p><em>Required</em>: No.</p>
</dd>
<dt><strong><a name="httpclient-impl" href="#httpclient-impl">httpclient_impl</a></strong></dt>
<dd>
<p><em>Description</em>: When using the default <code class="highlighter-rouge">AvaticaHttpClientFactoryImpl</code> HTTP client factory
implementation, this factory should choose the correct client implementation for the
given client configuration. This property can be used to override the specific HTTP
client implementation. If it is not provided, the <code class="highlighter-rouge">AvaticaHttpClientFactoryImpl</code> will
automatically choose the HTTP client implementation.</p>
</dd>
<dd>
<p><em>Default</em>: <code class="highlighter-rouge">null</code>.</p>
</dd>
<dd>
<p><em>Required</em>: No.</p>
</dd>
<dt><strong><a name="avatica-user" href="#avatica-user">avatica_user</a></strong></dt>
<dd>
<p><em>Description</em>: This is the username used by an Avatica client to identify itself
to the Avatica server. It is unique to the traditional “user” JDBC property. It
is only necessary if Avatica is configured for HTTP Basic or Digest authentication.</p>
</dd>
<dd>
<p><em>Default</em>: <code class="highlighter-rouge">null</code>.</p>
</dd>
<dd>
<p><em>Required</em>: No.</p>
</dd>
<dt><strong><a name="avatica-password" href="#avatica-password">avatica_password</a></strong></dt>
<dd>
<p><em>Description</em>: This is the password used by an Avatica client to identify itself
to the Avatica server. It is unique to the traditional “password” JDBC property. It
is only necessary if Avatica is configured for HTTP Basic or Digest authentication.</p>
</dd>
<dd>
<p><em>Default</em>: <code class="highlighter-rouge">null</code>.</p>
</dd>
<dd>
<p><em>Required</em>: No.</p>
</dd>
<dt><strong><a name="principal" href="#principal">principal</a></strong></dt>
<dd>
<p><em>Description</em>: The Kerberos principal which can be used by the Avatica JDBC Driver
to automatically perform a Kerberos login before attempting to contact the Avatica
server. If this property is provided, it is also expected that <code class="highlighter-rouge">keytab</code> is provided
and that the Avatica server is configured for SPNEGO authentication. Users can perform
their own Kerberos login; this option is provided only as a convenience.</p>
</dd>
<dd>
<p><em>Default</em>: <code class="highlighter-rouge">null</code>.</p>
</dd>
<dd>
<p><em>Required</em>: No.</p>
</dd>
<dt><strong><a name="keytab" href="#keytab">keytab</a></strong></dt>
<dd>
<p><em>Description</em>: The Kerberos keytab which contains the secret material to perform
a Kerberos login with the <code class="highlighter-rouge">principal</code>. The value should be a path on the local
filesystem to a regular file.</p>
</dd>
<dd>
<p><em>Default</em>: <code class="highlighter-rouge">null</code>.</p>
</dd>
<dd>
<p><em>Required</em>: No.</p>
</dd>
<dt><strong><a name="truststore" href="#truststore">truststore</a></strong></dt>
<dd>
<p><em>Description</em>: A path to a Java KeyStore (JKS) file on the local filesystem
which contains the certificate authority to trust in a TLS handshake. Only
necessary when using HTTPS.</p>
</dd>
<dd>
<p><em>Default</em>: <code class="highlighter-rouge">null</code>.</p>
</dd>
<dd>
<p><em>Required</em>: No.</p>
</dd>
<dt><strong><a name="truststore_password" href="#truststore_password">truststore_password</a></strong></dt>
<dd>
<p><em>Description</em>: The password for the Java KeyStore file specified by <a href="#truststore">truststore</a>.</p>
</dd>
<dd>
<p><em>Default</em>: <code class="highlighter-rouge">null</code>.</p>
</dd>
<dd>
<p><em>Required</em>: Only if <code class="highlighter-rouge">truststore</code> was provided.</p>
</dd>
</dl>
<div class="section-nav">
<div class="left align-right">
<a href="/avatica/docs/roadmap.html" class="prev">Previous</a>
</div>
<div class="right align-left">
<a href="/avatica/docs/json_reference.html" class="next">Next</a>
</div>
</div>
<div class="clear"></div>
</article>
</div>
<div class="unit one-fifth hide-on-mobiles">
<aside>
<h4>Overview</h4>
<ul>
<li class=""><a href="/avatica/docs/index.html">Background</a></li>
<li class=""><a href="/avatica/docs/roadmap.html">Roadmap</a></li>
</ul>
<h4>Avatica Reference</h4>
<ul>
<li class="current"><a href="/avatica/docs/client_reference.html">Client Reference</a></li>
<li class=""><a href="/avatica/docs/json_reference.html">JSON Reference</a></li>
<li class=""><a href="/avatica/docs/protobuf_reference.html">Protobuf Reference</a></li>
<li class=""><a href="/avatica/docs/howto.html">HOWTO</a></li>
<li class=""><a href="/avatica/docs/security.html">Security</a></li>
<li class=""><a href="/avatica/docs/compatibility.html">Compatibility</a></li>
<li class=""><a href="/avatica/docs/custom_client_artifacts.html">Custom Client Artifacts</a></li>
<li class=""><a href="/avatica/docs/docker.html">Docker Images</a></li>
<li class=""><a href="/avatica/docs/protocol_testing.html">Protocol Testing</a></li>
</ul>
<h4>Avatica Go Client Reference</h4>
<ul>
<li class=""><a href="/avatica/docs/go_client_reference.html">Go Client Reference</a></li>
<li class=""><a href="/avatica/docs/go_howto.html">HOWTO</a></li>
</ul>
<h4>Avatica Meta</h4>
<ul>
<li class=""><a href="/avatica/docs/history.html">History</a></li>
<li class=""><a href="/avatica/docs/api/">API</a></li>
<li class=""><a href="/avatica/docs/testapi/">Test API</a></li>
</ul>
<h4>Avatica Go Client Meta</h4>
<ul>
<li class=""><a href="/avatica/docs/go_history.html">Go Client History</a></li>
</ul>
</aside>
</div>
<div class="clear"></div>
</div>
</section>
<footer role="contentinfo">
<div id="poweredby">
<a href="http://www.apache.org/">
<span class="sr-only">Apache</span>
<img src="/avatica/img/feather.png" width="190" height="77" alt="Apache Logo"></a>
</div>
<div id="copyright">
<p>The contents of this website are &copy;&nbsp;2019
<a href="https://www.apache.org/">Apache Software Foundation</a>
under the terms of
the <a href="https://www.apache.org/licenses/LICENSE-2.0.html">
Apache&nbsp;License&nbsp;v2</a>. Apache Calcite and its logo are
trademarks of the Apache Software Foundation.</p>
</div>
</footer>
<script>
var anchorForId = function (id) {
var anchor = document.createElement("a");
anchor.className = "header-link";
anchor.href = "#" + id;
anchor.innerHTML = "<span class=\"sr-only\">Permalink</span><i class=\"fa fa-link\"></i>";
anchor.title = "Permalink";
return anchor;
};
var linkifyAnchors = function (level, containingElement) {
var headers = containingElement.getElementsByTagName("h" + level);
for (var h = 0; h < headers.length; h++) {
var header = headers[h];
if (typeof header.id !== "undefined" && header.id !== "") {
header.appendChild(anchorForId(header.id));
}
}
};
document.onreadystatechange = function () {
if (this.readyState === "complete") {
var contentBlock = document.getElementsByClassName("docs")[0] || document.getElementsByClassName("news")[0];
if (!contentBlock) {
return;
}
for (var level = 1; level <= 6; level++) {
linkifyAnchors(level, contentBlock);
}
}
};
</script>
</body>
</html>