blob: 1879b68f403cc50cdcb890737ae366da61dc3487 [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 -->
<title>FlinkSink.Builder</title>
<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="FlinkSink.Builder";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance 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><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.html" title="class in org.apache.iceberg.flink.sink"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/iceberg/flink/sink/RowDataTaskWriterFactory.html" title="class in org.apache.iceberg.flink.sink"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/iceberg/flink/sink/FlinkSink.Builder.html" target="_top">Frames</a></li>
<li><a href="FlinkSink.Builder.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>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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.iceberg.flink.sink</div>
<h2 title="Class FlinkSink.Builder" class="title">Class FlinkSink.Builder</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.iceberg.flink.sink.FlinkSink.Builder</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Enclosing class:</dt>
<dd><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.html" title="class in org.apache.iceberg.flink.sink">FlinkSink</a></dd>
</dl>
<hr>
<br>
<pre>public static class <span class="typeNameLabel">FlinkSink.Builder</span>
extends java.lang.Object</pre>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== 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="t2" class="tableTab"><span><a href="javascript:show(2);">Instance 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>org.apache.flink.streaming.api.datastream.DataStreamSink&lt;java.lang.Void&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html#append--">append</a></span>()</code>
<div class="block">Append the iceberg sink operators to write records to iceberg table.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html#distributionMode-org.apache.iceberg.DistributionMode-">distributionMode</a></span>(<a href="../../../../../org/apache/iceberg/DistributionMode.html" title="enum in org.apache.iceberg">DistributionMode</a>&nbsp;mode)</code>
<div class="block">Configure the write <a href="../../../../../org/apache/iceberg/DistributionMode.html" title="enum in org.apache.iceberg"><code>DistributionMode</code></a> that the flink sink will use.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html#equalityFieldColumns-java.util.List-">equalityFieldColumns</a></span>(java.util.List&lt;java.lang.String&gt;&nbsp;columns)</code>
<div class="block">Configuring the equality field columns for iceberg table that accept CDC or UPSERT events.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html#flinkConf-org.apache.flink.configuration.ReadableConfig-">flinkConf</a></span>(org.apache.flink.configuration.ReadableConfig&nbsp;config)</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html#overwrite-boolean-">overwrite</a></span>(boolean&nbsp;newOverwrite)</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html#set-java.lang.String-java.lang.String-">set</a></span>(java.lang.String&nbsp;property,
java.lang.String&nbsp;value)</code>
<div class="block">Set the write properties for Flink sink.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html#setAll-java.util.Map-">setAll</a></span>(java.util.Map&lt;java.lang.String,java.lang.String&gt;&nbsp;properties)</code>
<div class="block">Set the write properties for Flink sink.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html#setSnapshotProperties-java.util.Map-">setSnapshotProperties</a></span>(java.util.Map&lt;java.lang.String,java.lang.String&gt;&nbsp;properties)</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html#setSnapshotProperty-java.lang.String-java.lang.String-">setSnapshotProperty</a></span>(java.lang.String&nbsp;property,
java.lang.String&nbsp;value)</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html#table-org.apache.iceberg.Table-">table</a></span>(<a href="../../../../../org/apache/iceberg/Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;newTable)</code>
<div class="block">This iceberg <a href="../../../../../org/apache/iceberg/Table.html" title="interface in org.apache.iceberg"><code>Table</code></a> instance is used for initializing <code>IcebergStreamWriter</code>
which will write all the records into <a href="../../../../../org/apache/iceberg/DataFile.html" title="interface in org.apache.iceberg"><code>DataFile</code></a>s and emit them to downstream operator.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html#tableLoader-org.apache.iceberg.flink.TableLoader-">tableLoader</a></span>(<a href="../../../../../org/apache/iceberg/flink/TableLoader.html" title="interface in org.apache.iceberg.flink">TableLoader</a>&nbsp;newTableLoader)</code>
<div class="block">The table loader is used for loading tables in <code>IcebergFilesCommitter</code> lazily, we need
this loader because <a href="../../../../../org/apache/iceberg/Table.html" title="interface in org.apache.iceberg"><code>Table</code></a> is not serializable and could not just use the loaded table
from Builder#table in the remote task manager.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html#tableSchema-org.apache.flink.table.api.TableSchema-">tableSchema</a></span>(org.apache.flink.table.api.TableSchema&nbsp;newTableSchema)</code>&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html#toBranch-java.lang.String-">toBranch</a></span>(java.lang.String&nbsp;branch)</code>&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html#uidPrefix-java.lang.String-">uidPrefix</a></span>(java.lang.String&nbsp;newPrefix)</code>
<div class="block">Set the uid prefix for FlinkSink operators.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html#upsert-boolean-">upsert</a></span>(boolean&nbsp;enabled)</code>
<div class="block">All INSERT/UPDATE_AFTER events from input stream will be transformed to UPSERT events, which
means it will DELETE the old records and then INSERT the new records.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html#writeParallelism-int-">writeParallelism</a></span>(int&nbsp;newWriteParallelism)</code>
<div class="block">Configuring the write parallel number for iceberg stream writer.</div>
</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">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="table-org.apache.iceberg.Table-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>table</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a>&nbsp;table(<a href="../../../../../org/apache/iceberg/Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;newTable)</pre>
<div class="block">This iceberg <a href="../../../../../org/apache/iceberg/Table.html" title="interface in org.apache.iceberg"><code>Table</code></a> instance is used for initializing <code>IcebergStreamWriter</code>
which will write all the records into <a href="../../../../../org/apache/iceberg/DataFile.html" title="interface in org.apache.iceberg"><code>DataFile</code></a>s and emit them to downstream operator.
Providing a table would avoid so many table loading from each separate task.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>newTable</code> - the loaded iceberg table instance.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink"><code>FlinkSink.Builder</code></a> to connect the iceberg table.</dd>
</dl>
</li>
</ul>
<a name="tableLoader-org.apache.iceberg.flink.TableLoader-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tableLoader</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a>&nbsp;tableLoader(<a href="../../../../../org/apache/iceberg/flink/TableLoader.html" title="interface in org.apache.iceberg.flink">TableLoader</a>&nbsp;newTableLoader)</pre>
<div class="block">The table loader is used for loading tables in <code>IcebergFilesCommitter</code> lazily, we need
this loader because <a href="../../../../../org/apache/iceberg/Table.html" title="interface in org.apache.iceberg"><code>Table</code></a> is not serializable and could not just use the loaded table
from Builder#table in the remote task manager.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>newTableLoader</code> - to load iceberg table inside tasks.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink"><code>FlinkSink.Builder</code></a> to connect the iceberg table.</dd>
</dl>
</li>
</ul>
<a name="set-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>set</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a>&nbsp;set(java.lang.String&nbsp;property,
java.lang.String&nbsp;value)</pre>
<div class="block">Set the write properties for Flink sink. View the supported properties in <a href="../../../../../org/apache/iceberg/flink/FlinkWriteOptions.html" title="class in org.apache.iceberg.flink"><code>FlinkWriteOptions</code></a></div>
</li>
</ul>
<a name="setAll-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAll</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a>&nbsp;setAll(java.util.Map&lt;java.lang.String,java.lang.String&gt;&nbsp;properties)</pre>
<div class="block">Set the write properties for Flink sink. View the supported properties in <a href="../../../../../org/apache/iceberg/flink/FlinkWriteOptions.html" title="class in org.apache.iceberg.flink"><code>FlinkWriteOptions</code></a></div>
</li>
</ul>
<a name="tableSchema-org.apache.flink.table.api.TableSchema-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tableSchema</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a>&nbsp;tableSchema(org.apache.flink.table.api.TableSchema&nbsp;newTableSchema)</pre>
</li>
</ul>
<a name="overwrite-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>overwrite</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a>&nbsp;overwrite(boolean&nbsp;newOverwrite)</pre>
</li>
</ul>
<a name="flinkConf-org.apache.flink.configuration.ReadableConfig-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>flinkConf</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a>&nbsp;flinkConf(org.apache.flink.configuration.ReadableConfig&nbsp;config)</pre>
</li>
</ul>
<a name="distributionMode-org.apache.iceberg.DistributionMode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>distributionMode</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a>&nbsp;distributionMode(<a href="../../../../../org/apache/iceberg/DistributionMode.html" title="enum in org.apache.iceberg">DistributionMode</a>&nbsp;mode)</pre>
<div class="block">Configure the write <a href="../../../../../org/apache/iceberg/DistributionMode.html" title="enum in org.apache.iceberg"><code>DistributionMode</code></a> that the flink sink will use. Currently, flink
support <a href="../../../../../org/apache/iceberg/DistributionMode.html#NONE"><code>DistributionMode.NONE</code></a> and <a href="../../../../../org/apache/iceberg/DistributionMode.html#HASH"><code>DistributionMode.HASH</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mode</code> - to specify the write distribution mode.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink"><code>FlinkSink.Builder</code></a> to connect the iceberg table.</dd>
</dl>
</li>
</ul>
<a name="writeParallelism-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeParallelism</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a>&nbsp;writeParallelism(int&nbsp;newWriteParallelism)</pre>
<div class="block">Configuring the write parallel number for iceberg stream writer.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>newWriteParallelism</code> - the number of parallel iceberg stream writer.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink"><code>FlinkSink.Builder</code></a> to connect the iceberg table.</dd>
</dl>
</li>
</ul>
<a name="upsert-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>upsert</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a>&nbsp;upsert(boolean&nbsp;enabled)</pre>
<div class="block">All INSERT/UPDATE_AFTER events from input stream will be transformed to UPSERT events, which
means it will DELETE the old records and then INSERT the new records. In partitioned table,
the partition fields should be a subset of equality fields, otherwise the old row that
located in partition-A could not be deleted by the new row that located in partition-B.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>enabled</code> - indicate whether it should transform all INSERT/UPDATE_AFTER events to UPSERT.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink"><code>FlinkSink.Builder</code></a> to connect the iceberg table.</dd>
</dl>
</li>
</ul>
<a name="equalityFieldColumns-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equalityFieldColumns</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a>&nbsp;equalityFieldColumns(java.util.List&lt;java.lang.String&gt;&nbsp;columns)</pre>
<div class="block">Configuring the equality field columns for iceberg table that accept CDC or UPSERT events.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>columns</code> - defines the iceberg table's key.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink"><code>FlinkSink.Builder</code></a> to connect the iceberg table.</dd>
</dl>
</li>
</ul>
<a name="uidPrefix-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>uidPrefix</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a>&nbsp;uidPrefix(java.lang.String&nbsp;newPrefix)</pre>
<div class="block">Set the uid prefix for FlinkSink operators. Note that FlinkSink internally consists of
multiple operators (like writer, committer, dummy sink etc.) Actually operator uid will be
appended with a suffix like "uidPrefix-writer". <br>
<br>
If provided, this prefix is also applied to operator names. <br>
<br>
Flink auto generates operator uid if not set explicitly. It is a recommended <a
href="https://ci.apache.org/projects/flink/flink-docs-master/docs/ops/production_ready/">
best-practice to set uid for all operators</a> before deploying to production. Flink has an
option to <code>pipeline.auto-generate-uid=false</code> to disable auto-generation and force
explicit setting of all operator uid. <br>
<br>
Be careful with setting this for an existing job, because now we are changing the operator
uid from an auto-generated one to this new value. When deploying the change with a
checkpoint, Flink won't be able to restore the previous Flink sink operator state (more
specifically the committer operator state). You need to use <code>--allowNonRestoredState</code>
to ignore the previous sink state. During restore Flink sink state is used to check if last
commit was actually successful or not. <code>--allowNonRestoredState</code> can lead to data loss
if the Iceberg commit failed in the last completed checkpoint.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>newPrefix</code> - prefix for Flink sink operator uid and name</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink"><code>FlinkSink.Builder</code></a> to connect the iceberg table.</dd>
</dl>
</li>
</ul>
<a name="setSnapshotProperties-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSnapshotProperties</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a>&nbsp;setSnapshotProperties(java.util.Map&lt;java.lang.String,java.lang.String&gt;&nbsp;properties)</pre>
</li>
</ul>
<a name="setSnapshotProperty-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSnapshotProperty</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a>&nbsp;setSnapshotProperty(java.lang.String&nbsp;property,
java.lang.String&nbsp;value)</pre>
</li>
</ul>
<a name="toBranch-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toBranch</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.Builder.html" title="class in org.apache.iceberg.flink.sink">FlinkSink.Builder</a>&nbsp;toBranch(java.lang.String&nbsp;branch)</pre>
</li>
</ul>
<a name="append--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>append</h4>
<pre>public&nbsp;org.apache.flink.streaming.api.datastream.DataStreamSink&lt;java.lang.Void&gt;&nbsp;append()</pre>
<div class="block">Append the iceberg sink operators to write records to iceberg table.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>DataStreamSink</code> for sink.</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><a href="../../../../../org/apache/iceberg/flink/sink/FlinkSink.html" title="class in org.apache.iceberg.flink.sink"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/iceberg/flink/sink/RowDataTaskWriterFactory.html" title="class in org.apache.iceberg.flink.sink"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/iceberg/flink/sink/FlinkSink.Builder.html" target="_top">Frames</a></li>
<li><a href="FlinkSink.Builder.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>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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>