blob: 5b6875a8fa535955d931352e8a48457aa427cd8a [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_181-google-v7) on Wed Aug 14 17:37:14 PDT 2019 -->
<title>ClickHouseIO (Apache Beam 2.15.0-SNAPSHOT)</title>
<meta name="date" content="2019-08-14">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="ClickHouseIO (Apache Beam 2.15.0-SNAPSHOT)";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../../org/apache/beam/sdk/io/clickhouse/ClickHouseIO.Write.html" title="class in org.apache.beam.sdk.io.clickhouse"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/beam/sdk/io/clickhouse/ClickHouseIO.html" target="_top">Frames</a></li>
<li><a href="ClickHouseIO.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.beam.sdk.io.clickhouse</div>
<h2 title="Class ClickHouseIO" class="title">Class ClickHouseIO</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.beam.sdk.io.clickhouse.ClickHouseIO</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre><a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.html" title="annotation in org.apache.beam.sdk.annotations">@Experimental</a>(<a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.html#value--">value</a>=<a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.Kind.html#SOURCE_SINK">SOURCE_SINK</a>)
public class <span class="typeNameLabel">ClickHouseIO</span>
extends java.lang.Object</pre>
<div class="block">An IO to write to ClickHouse.
<h3>Writing to ClickHouse</h3>
<p>To write to ClickHouse, use <a href="../../../../../../org/apache/beam/sdk/io/clickhouse/ClickHouseIO.html#write-java.lang.String-java.lang.String-"><code>write(String, String)</code></a>, which writes elements
from input <a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values"><code>PCollection</code></a>. It's required that your ClickHouse cluster already has table you
are going to insert into.
<pre><code>
pipeline
.apply(...)
.apply(
ClickHouseIO.&lt;POJO&gt;write("jdbc:clickhouse:localhost:8123/default", "my_table"));
</code></pre>
<p>Optionally, you can provide connection settings, for instance, specify insert block size with
<a href="../../../../../../org/apache/beam/sdk/io/clickhouse/ClickHouseIO.Write.html#withMaxInsertBlockSize-long-"><code>ClickHouseIO.Write.withMaxInsertBlockSize(long)</code></a>, or configure number of retries with <a href="../../../../../../org/apache/beam/sdk/io/clickhouse/ClickHouseIO.Write.html#withMaxRetries-int-"><code>ClickHouseIO.Write.withMaxRetries(int)</code></a>.
<h4>Deduplication</h4>
Deduplication is performed by ClickHouse if inserting to <a
href="https://clickhouse.yandex/docs/en/single/#data-replication">ReplicatedMergeTree</a> or <a
href="https://clickhouse.yandex/docs/en/single/#distributed">Distributed</a> table on top of
ReplicatedMergeTree. Without replication, inserting into regular MergeTree can produce
duplicates, if insert fails, and then successfully retries. However, each block is inserted
atomically, and you can configure block size with <a href="../../../../../../org/apache/beam/sdk/io/clickhouse/ClickHouseIO.Write.html#withMaxInsertBlockSize-long-"><code>ClickHouseIO.Write.withMaxInsertBlockSize(long)</code></a>.
<p>Deduplication is performed using checksums of inserted blocks.
<h4>Mapping between Beam and ClickHouse types</h4>
<table summary="Type mapping">
<tr><th>ClickHouse</th> <th>Beam</th></tr>
<tr><td><a href="../../../../../../org/apache/beam/sdk/io/clickhouse/TableSchema.TypeName.html#FLOAT32"><code>TableSchema.TypeName.FLOAT32</code></a></td> <td><code>Schema.TypeName#FLOAT</code></td></tr>
<tr><td><a href="../../../../../../org/apache/beam/sdk/io/clickhouse/TableSchema.TypeName.html#FLOAT64"><code>TableSchema.TypeName.FLOAT64</code></a></td> <td><code>Schema.TypeName#DOUBLE</code></td></tr>
<tr><td><a href="../../../../../../org/apache/beam/sdk/io/clickhouse/TableSchema.TypeName.html#FIXEDSTRING"><code>TableSchema.TypeName.FIXEDSTRING</code></a></td> <td><code>LogicalTypes.FixedBytes</code></td></tr>
<tr><td><a href="../../../../../../org/apache/beam/sdk/io/clickhouse/TableSchema.TypeName.html#INT8"><code>TableSchema.TypeName.INT8</code></a></td> <td><code>Schema.TypeName#BYTE</code></td></tr>
<tr><td><a href="../../../../../../org/apache/beam/sdk/io/clickhouse/TableSchema.TypeName.html#INT16"><code>TableSchema.TypeName.INT16</code></a></td> <td><code>Schema.TypeName#INT16</code></td></tr>
<tr><td><a href="../../../../../../org/apache/beam/sdk/io/clickhouse/TableSchema.TypeName.html#INT32"><code>TableSchema.TypeName.INT32</code></a></td> <td><code>Schema.TypeName#INT32</code></td></tr>
<tr><td><a href="../../../../../../org/apache/beam/sdk/io/clickhouse/TableSchema.TypeName.html#INT64"><code>TableSchema.TypeName.INT64</code></a></td> <td><code>Schema.TypeName#INT64</code></td></tr>
<tr><td><a href="../../../../../../org/apache/beam/sdk/io/clickhouse/TableSchema.TypeName.html#STRING"><code>TableSchema.TypeName.STRING</code></a></td> <td><code>Schema.TypeName#STRING</code></td></tr>
<tr><td><a href="../../../../../../org/apache/beam/sdk/io/clickhouse/TableSchema.TypeName.html#UINT8"><code>TableSchema.TypeName.UINT8</code></a></td> <td><code>Schema.TypeName#INT16</code></td></tr>
<tr><td><a href="../../../../../../org/apache/beam/sdk/io/clickhouse/TableSchema.TypeName.html#UINT16"><code>TableSchema.TypeName.UINT16</code></a></td> <td><code>Schema.TypeName#INT32</code></td></tr>
<tr><td><a href="../../../../../../org/apache/beam/sdk/io/clickhouse/TableSchema.TypeName.html#UINT32"><code>TableSchema.TypeName.UINT32</code></a></td> <td><code>Schema.TypeName#INT64</code></td></tr>
<tr><td><a href="../../../../../../org/apache/beam/sdk/io/clickhouse/TableSchema.TypeName.html#UINT64"><code>TableSchema.TypeName.UINT64</code></a></td> <td><code>Schema.TypeName#INT64</code></td></tr>
<tr><td><a href="../../../../../../org/apache/beam/sdk/io/clickhouse/TableSchema.TypeName.html#DATE"><code>TableSchema.TypeName.DATE</code></a></td> <td><code>Schema.TypeName#DATETIME</code></td></tr>
<tr><td><a href="../../../../../../org/apache/beam/sdk/io/clickhouse/TableSchema.TypeName.html#DATETIME"><code>TableSchema.TypeName.DATETIME</code></a></td> <td><code>Schema.TypeName#DATETIME</code></td></tr>
<tr><td><a href="../../../../../../org/apache/beam/sdk/io/clickhouse/TableSchema.TypeName.html#ARRAY"><code>TableSchema.TypeName.ARRAY</code></a></td> <td><code>Schema.TypeName#ARRAY</code></td></tr>
<tr><td><a href="../../../../../../org/apache/beam/sdk/io/clickhouse/TableSchema.TypeName.html#ENUM8"><code>TableSchema.TypeName.ENUM8</code></a></td> <td><code>Schema.TypeName#STRING</code></td></tr>
<tr><td><a href="../../../../../../org/apache/beam/sdk/io/clickhouse/TableSchema.TypeName.html#ENUM16"><code>TableSchema.TypeName.ENUM16</code></a></td> <td><code>Schema.TypeName#STRING</code></td></tr>
</table>
Nullable row columns are supported through Nullable type in ClickHouse.
<p>Nested rows should be unnested using <a href="../../../../../../org/apache/beam/sdk/schemas/transforms/Unnest.html" title="class in org.apache.beam.sdk.schemas.transforms"><code>Unnest</code></a>.
Type casting should be done using <a href="../../../../../../org/apache/beam/sdk/schemas/transforms/Cast.html" title="class in org.apache.beam.sdk.schemas.transforms"><code>Cast</code></a> before
<a href="../../../../../../org/apache/beam/sdk/io/clickhouse/ClickHouseIO.html" title="class in org.apache.beam.sdk.io.clickhouse"><code>ClickHouseIO</code></a>.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/io/clickhouse/ClickHouseIO.Write.html" title="class in org.apache.beam.sdk.io.clickhouse">ClickHouseIO.Write</a>&lt;<a href="../../../../../../org/apache/beam/sdk/io/clickhouse/ClickHouseIO.Write.html" title="type parameter in ClickHouseIO.Write">T</a>&gt;</span></code>
<div class="block">A <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms"><code>PTransform</code></a> to write to ClickHouse.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://static.javadoc.io/joda-time/joda-time/2.10.1/org/joda/time/Duration.html?is-external=true" title="class or interface in org.joda.time">Duration</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/io/clickhouse/ClickHouseIO.html#DEFAULT_INITIAL_BACKOFF">DEFAULT_INITIAL_BACKOFF</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://static.javadoc.io/joda-time/joda-time/2.10.1/org/joda/time/Duration.html?is-external=true" title="class or interface in org.joda.time">Duration</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/io/clickhouse/ClickHouseIO.html#DEFAULT_MAX_CUMULATIVE_BACKOFF">DEFAULT_MAX_CUMULATIVE_BACKOFF</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/io/clickhouse/ClickHouseIO.html#DEFAULT_MAX_INSERT_BLOCK_SIZE">DEFAULT_MAX_INSERT_BLOCK_SIZE</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/io/clickhouse/ClickHouseIO.html#DEFAULT_MAX_RETRIES">DEFAULT_MAX_RETRIES</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/io/clickhouse/ClickHouseIO.html#ClickHouseIO--">ClickHouseIO</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/beam/sdk/io/clickhouse/TableSchema.html" title="class in org.apache.beam.sdk.io.clickhouse">TableSchema</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/io/clickhouse/ClickHouseIO.html#getTableSchema-java.lang.String-java.lang.String-">getTableSchema</a></span>(java.lang.String&nbsp;jdbcUrl,
java.lang.String&nbsp;table)</code>
<div class="block">Returns <a href="../../../../../../org/apache/beam/sdk/io/clickhouse/TableSchema.html" title="class in org.apache.beam.sdk.io.clickhouse"><code>TableSchema</code></a> for a given table.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../../../../../../org/apache/beam/sdk/io/clickhouse/ClickHouseIO.Write.html" title="class in org.apache.beam.sdk.io.clickhouse">ClickHouseIO.Write</a>&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/io/clickhouse/ClickHouseIO.html#write-java.lang.String-java.lang.String-">write</a></span>(java.lang.String&nbsp;jdbcUrl,
java.lang.String&nbsp;table)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="DEFAULT_MAX_INSERT_BLOCK_SIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_MAX_INSERT_BLOCK_SIZE</h4>
<pre>public static final&nbsp;long DEFAULT_MAX_INSERT_BLOCK_SIZE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.beam.sdk.io.clickhouse.ClickHouseIO.DEFAULT_MAX_INSERT_BLOCK_SIZE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DEFAULT_MAX_RETRIES">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_MAX_RETRIES</h4>
<pre>public static final&nbsp;int DEFAULT_MAX_RETRIES</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.beam.sdk.io.clickhouse.ClickHouseIO.DEFAULT_MAX_RETRIES">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DEFAULT_MAX_CUMULATIVE_BACKOFF">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_MAX_CUMULATIVE_BACKOFF</h4>
<pre>public static final&nbsp;<a href="https://static.javadoc.io/joda-time/joda-time/2.10.1/org/joda/time/Duration.html?is-external=true" title="class or interface in org.joda.time">Duration</a> DEFAULT_MAX_CUMULATIVE_BACKOFF</pre>
</li>
</ul>
<a name="DEFAULT_INITIAL_BACKOFF">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DEFAULT_INITIAL_BACKOFF</h4>
<pre>public static final&nbsp;<a href="https://static.javadoc.io/joda-time/joda-time/2.10.1/org/joda/time/Duration.html?is-external=true" title="class or interface in org.joda.time">Duration</a> DEFAULT_INITIAL_BACKOFF</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="ClickHouseIO--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ClickHouseIO</h4>
<pre>public&nbsp;ClickHouseIO()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="write-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>write</h4>
<pre>public static&nbsp;&lt;T&gt;&nbsp;<a href="../../../../../../org/apache/beam/sdk/io/clickhouse/ClickHouseIO.Write.html" title="class in org.apache.beam.sdk.io.clickhouse">ClickHouseIO.Write</a>&lt;T&gt;&nbsp;write(java.lang.String&nbsp;jdbcUrl,
java.lang.String&nbsp;table)</pre>
</li>
</ul>
<a name="getTableSchema-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getTableSchema</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/beam/sdk/io/clickhouse/TableSchema.html" title="class in org.apache.beam.sdk.io.clickhouse">TableSchema</a>&nbsp;getTableSchema(java.lang.String&nbsp;jdbcUrl,
java.lang.String&nbsp;table)</pre>
<div class="block">Returns <a href="../../../../../../org/apache/beam/sdk/io/clickhouse/TableSchema.html" title="class in org.apache.beam.sdk.io.clickhouse"><code>TableSchema</code></a> for a given table.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>jdbcUrl</code> - jdbc connection url</dd>
<dd><code>table</code> - table name</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>table schema</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../../org/apache/beam/sdk/io/clickhouse/ClickHouseIO.Write.html" title="class in org.apache.beam.sdk.io.clickhouse"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/beam/sdk/io/clickhouse/ClickHouseIO.html" target="_top">Frames</a></li>
<li><a href="ClickHouseIO.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>