blob: 89da2187eb41be8cc9a1bac0771ce30c6d74913a [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<title>Apache Flink: Apache Flink 1.15.1 Release Announcement</title>
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
<link rel="icon" href="/favicon.ico" type="image/x-icon">
<!-- Bootstrap -->
<link rel="stylesheet" href="/css/bootstrap.min.css">
<link rel="stylesheet" href="/css/flink.css">
<link rel="stylesheet" href="/css/syntax.css">
<!-- Blog RSS feed -->
<link href="/blog/feed.xml" rel="alternate" type="application/rss+xml" title="Apache Flink Blog: RSS feed" />
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<!-- We need to load Jquery in the header for custom google analytics event tracking-->
<script src="/js/jquery.min.js"></script>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<!-- Matomo -->
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
/* We explicitly disable cookie tracking to avoid privacy issues */
_paq.push(['disableCookies']);
/* Measure a visit to flink.apache.org and nightlies.apache.org/flink as the same visit */
_paq.push(["setDomains", ["*.flink.apache.org","*.nightlies.apache.org/flink"]]);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//matomo.privacy.apache.org/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '1']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Matomo Code -->
</head>
<body>
<!-- Main content. -->
<div class="container">
<div class="row">
<div id="sidebar" class="col-sm-3">
<!-- Top navbar. -->
<nav class="navbar navbar-default">
<!-- The logo. -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-logo">
<a href="/">
<img alt="Apache Flink" src="/img/flink-header-logo.svg" width="147px" height="73px">
</a>
</div>
</div><!-- /.navbar-header -->
<!-- The navigation links. -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-main">
<!-- First menu section explains visitors what Flink is -->
<!-- What is Stream Processing? -->
<!--
<li><a href="/streamprocessing1.html">What is Stream Processing?</a></li>
-->
<!-- What is Flink? -->
<li><a href="/flink-architecture.html">What is Apache Flink?</a></li>
<!-- Stateful Functions? -->
<li><a href="https://nightlies.apache.org/flink/flink-statefun-docs-stable/">What is Stateful Functions?</a></li>
<!-- Flink ML? -->
<li><a href="https://nightlies.apache.org/flink/flink-ml-docs-stable/">What is Flink ML?</a></li>
<!-- Flink Kubernetes Operator? -->
<li><a href="https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-stable/">What is the Flink Kubernetes Operator?</a></li>
<!-- Flink Table Store? -->
<li><a href="https://nightlies.apache.org/flink/flink-table-store-docs-stable/">What is Flink Table Store?</a></li>
<!-- Use cases -->
<li><a href="/usecases.html">Use Cases</a></li>
<!-- Powered by -->
<li><a href="/poweredby.html">Powered By</a></li>
&nbsp;
<!-- Second menu section aims to support Flink users -->
<!-- Downloads -->
<li><a href="/downloads.html">Downloads</a></li>
<!-- Getting Started -->
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">Getting Started<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="https://nightlies.apache.org/flink/flink-docs-release-1.15//docs/try-flink/local_installation/" target="_blank">With Flink <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
<li><a href="https://nightlies.apache.org/flink/flink-statefun-docs-release-3.2/getting-started/project-setup.html" target="_blank">With Flink Stateful Functions <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
<li><a href="https://nightlies.apache.org/flink/flink-ml-docs-release-2.1/try-flink-ml/quick-start.html" target="_blank">With Flink ML <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
<li><a href="https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-release-1.1/try-flink-kubernetes-operator/quick-start.html" target="_blank">With Flink Kubernetes Operator <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
<li><a href="https://nightlies.apache.org/flink/flink-table-store-docs-release-0.1/try-table-store/quick-start.html" target="_blank">With Flink Table Store <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
<li><a href="/training.html">Training Course</a></li>
</ul>
</li>
<!-- Documentation -->
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">Documentation<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="https://nightlies.apache.org/flink/flink-docs-release-1.15" target="_blank">Flink 1.15 (Latest stable release) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
<li><a href="https://nightlies.apache.org/flink/flink-docs-master" target="_blank">Flink Master (Latest Snapshot) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
<li><a href="https://nightlies.apache.org/flink/flink-statefun-docs-release-3.2" target="_blank">Flink Stateful Functions 3.2 (Latest stable release) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
<li><a href="https://nightlies.apache.org/flink/flink-statefun-docs-master" target="_blank">Flink Stateful Functions Master (Latest Snapshot) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
<li><a href="https://nightlies.apache.org/flink/flink-ml-docs-release-2.1" target="_blank">Flink ML 2.1 (Latest stable release) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
<li><a href="https://nightlies.apache.org/flink/flink-ml-docs-master" target="_blank">Flink ML Master (Latest Snapshot) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
<li><a href="https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-release-1.1" target="_blank">Flink Kubernetes Operator 1.1 (Latest stable release) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
<li><a href="https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-main" target="_blank">Flink Kubernetes Operator Main (Latest Snapshot) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
<li><a href="https://nightlies.apache.org/flink/flink-table-store-docs-release-0.1" target="_blank">Flink Table Store 0.1 (Latest stable release) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
<li><a href="https://nightlies.apache.org/flink/flink-table-store-docs-master" target="_blank">Flink Table Store Master (Latest Snapshot) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
</ul>
</li>
<!-- getting help -->
<li><a href="/gettinghelp.html">Getting Help</a></li>
<!-- Blog -->
<li class="active"><a href="/blog/"><b>Flink Blog</b></a></li>
<!-- Flink-packages -->
<li>
<a href="https://flink-packages.org" target="_blank">flink-packages.org <small><span class="glyphicon glyphicon-new-window"></span></small></a>
</li>
&nbsp;
<!-- Third menu section aim to support community and contributors -->
<!-- Community -->
<li><a href="/community.html">Community &amp; Project Info</a></li>
<!-- Roadmap -->
<li><a href="/roadmap.html">Roadmap</a></li>
<!-- Contribute -->
<li><a href="/contributing/how-to-contribute.html">How to Contribute</a></li>
<!-- GitHub -->
<li>
<a href="https://github.com/apache/flink" target="_blank">Flink on GitHub <small><span class="glyphicon glyphicon-new-window"></span></small></a>
</li>
&nbsp;
<!-- Language Switcher -->
<li>
<!-- link to the Chinese home page when current is blog page -->
<a href="/zh">中文版</a>
</li>
</ul>
<style>
.smalllinks:link {
display: inline-block !important; background: none; padding-top: 0px; padding-bottom: 0px; padding-right: 0px; min-width: 75px;
}
</style>
<ul class="nav navbar-nav navbar-bottom">
<hr />
<!-- Twitter -->
<li><a href="https://twitter.com/apacheflink" target="_blank">@ApacheFlink <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
<!-- Visualizer -->
<li class=" hidden-md hidden-sm"><a href="/visualizer/" target="_blank">Plan Visualizer <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
<li >
<a href="/security.html">Flink Security</a>
</li>
<hr />
<li><a href="https://apache.org" target="_blank">Apache Software Foundation <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
<li>
<a class="smalllinks" href="https://www.apache.org/licenses/" target="_blank">License</a> <small><span class="glyphicon glyphicon-new-window"></span></small>
<a class="smalllinks" href="https://www.apache.org/security/" target="_blank">Security</a> <small><span class="glyphicon glyphicon-new-window"></span></small>
<a class="smalllinks" href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Donate</a> <small><span class="glyphicon glyphicon-new-window"></span></small>
<a class="smalllinks" href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a> <small><span class="glyphicon glyphicon-new-window"></span></small>
</li>
</ul>
</div><!-- /.navbar-collapse -->
</nav>
</div>
<div class="col-sm-9">
<div class="row-fluid">
<div class="col-sm-12">
<div class="row">
<h1>Apache Flink 1.15.1 Release Announcement</h1>
<p><i></i></p>
<article>
<p>06 Jul 2022 David Anderson (<a href="https://twitter.com/alpinegizmo">@alpinegizmo</a>)</p>
<p>The Apache Flink Community is pleased to announce the first bug fix release of the Flink 1.15 series.</p>
<p>This release includes 62 bug fixes, vulnerability fixes, and minor improvements for Flink 1.15.
Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see:
<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315522&amp;version=12351546">JIRA</a>.</p>
<p>We highly recommend all users upgrade to Flink 1.15.1.</p>
<h1 id="release-artifacts">Release Artifacts</h1>
<h2 id="maven-dependencies">Maven Dependencies</h2>
<div class="highlight"><pre><code class="language-xml"><span class="nt">&lt;dependency&gt;</span>
<span class="nt">&lt;groupId&gt;</span>org.apache.flink<span class="nt">&lt;/groupId&gt;</span>
<span class="nt">&lt;artifactId&gt;</span>flink-java<span class="nt">&lt;/artifactId&gt;</span>
<span class="nt">&lt;version&gt;</span>1.15.1<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
<span class="nt">&lt;dependency&gt;</span>
<span class="nt">&lt;groupId&gt;</span>org.apache.flink<span class="nt">&lt;/groupId&gt;</span>
<span class="nt">&lt;artifactId&gt;</span>flink-streaming-java<span class="nt">&lt;/artifactId&gt;</span>
<span class="nt">&lt;version&gt;</span>1.15.1<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
<span class="nt">&lt;dependency&gt;</span>
<span class="nt">&lt;groupId&gt;</span>org.apache.flink<span class="nt">&lt;/groupId&gt;</span>
<span class="nt">&lt;artifactId&gt;</span>flink-clients<span class="nt">&lt;/artifactId&gt;</span>
<span class="nt">&lt;version&gt;</span>1.15.1<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span></code></pre></div>
<h2 id="binaries">Binaries</h2>
<p>You can find the binaries on the updated <a href="/downloads.html">Downloads page</a>.</p>
<h2 id="docker-images">Docker Images</h2>
<ul>
<li><a href="https://hub.docker.com/_/flink?tab=tags&amp;page=1&amp;name=1.15.1">library/flink</a> (official images)</li>
<li><a href="https://hub.docker.com/r/apache/flink/tags?page=1&amp;name=1.15.1">apache/flink</a> (ASF repository)</li>
</ul>
<h2 id="pypi">PyPi</h2>
<ul>
<li><a href="https://pypi.org/project/apache-flink/1.15.1/">apache-flink==1.15.1</a></li>
</ul>
<h1 id="release-notes">Release Notes</h1>
<p>The community is aware of 3 issues that were introduced with 1.15.0 that remain unresolved. Efforts are underway to fix these issues for Flink 1.15.2:</p>
<ul>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-28861">FLINK-28861</a>] - Non-deterministic UID generation might cause issues during restore for Table/SQL API
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-28060">FLINK-28060</a>] - Kafka commit on checkpointing fails repeatedly after a broker restart
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-28322">FLINK-28322</a>] - DataStreamScanProvider's new method is not compatible
</li>
</ul>
<h2> Bug
</h2>
<ul>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-22984">FLINK-22984</a>] - UnsupportedOperationException when using Python UDF to generate watermark
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-24491">FLINK-24491</a>] - ExecutionGraphInfo may not be archived when the dispatcher terminates
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-24735">FLINK-24735</a>] - SQL client crashes with `Cannot add expression of different type to set`
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-26645">FLINK-26645</a>] - Pulsar Source subscribe to a single topic partition will consume all partitions from that topic
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27041">FLINK-27041</a>] - KafkaSource in batch mode failing if any topic partition is empty
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27140">FLINK-27140</a>] - Move JobResultStore dirty entry creation into ioExecutor
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27174">FLINK-27174</a>] - Non-null check for bootstrapServers field is incorrect in KafkaSink
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27218">FLINK-27218</a>] - Serializer in OperatorState has not been updated when new Serializers are NOT incompatible
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27223">FLINK-27223</a>] - State access doesn&#39;t work as expected when cache size is set to 0
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27247">FLINK-27247</a>] - ScalarOperatorGens.numericCasting is not compatible with legacy behavior
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27255">FLINK-27255</a>] - Flink-avro does not support serialization and deserialization of avro schema longer than 65535 characters
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27282">FLINK-27282</a>] - Fix the bug of wrong positions mapping in RowCoder
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27367">FLINK-27367</a>] - SQL CAST between INT and DATE is broken
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27368">FLINK-27368</a>] - SQL CAST(&#39; 1 &#39; as BIGINT) returns wrong result
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27409">FLINK-27409</a>] - Cleanup stale slot allocation record when the resource requirement of a job is empty
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27418">FLINK-27418</a>] - Flink SQL TopN result is wrong
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27420">FLINK-27420</a>] - Suspended SlotManager fails to re-register metrics when started again
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27465">FLINK-27465</a>] - AvroRowDeserializationSchema.convertToTimestamp fails with negative nano seconds
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27487">FLINK-27487</a>] - KafkaMetricWrappers do incorrect cast
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27545">FLINK-27545</a>] - Update examples in PyFlink shell
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27563">FLINK-27563</a>] - Resource Providers - Yarn doc page has minor display error
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27606">FLINK-27606</a>] - CompileException when using UDAF with merge() method
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27676">FLINK-27676</a>] - Output records from on_timer are behind the triggering watermark in PyFlink
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27683">FLINK-27683</a>] - Insert into (column1, column2) Values(.....) fails with SQL hints
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27711">FLINK-27711</a>] - Correct the typo of set_topics_pattern by changing it to set_topic_pattern for Pulsar Connector
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27733">FLINK-27733</a>] - Rework on_timer output behind watermark bug fix
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27734">FLINK-27734</a>] - Not showing checkpoint interval properly in WebUI when checkpoint is disabled
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27760">FLINK-27760</a>] - NPE is thrown when executing PyFlink jobs in batch mode
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27762">FLINK-27762</a>] - Kafka WakeupException during handling splits changes
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27797">FLINK-27797</a>] - PythonTableUtils.getCollectionInputFormat cannot correctly handle None values
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27848">FLINK-27848</a>] - ZooKeeperLeaderElectionDriver keeps writing leader information, using up zxid
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27881">FLINK-27881</a>] - The key(String) in PulsarMessageBuilder returns null
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27890">FLINK-27890</a>] - SideOutputExample.java fails
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27910">FLINK-27910</a>] - FileSink not enforcing rolling policy if started from scratch
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27933">FLINK-27933</a>] - Savepoint status cannot be queried from standby jobmanager
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27955">FLINK-27955</a>] - PyFlink installation failure on Windows OS
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27999">FLINK-27999</a>] - NoSuchMethodError when using Hive 3 dialect
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-28018">FLINK-28018</a>] - the start index to create empty splits in BinaryInputFormat#createInputSplits is inappropriate
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-28019">FLINK-28019</a>] - Error in RetractableTopNFunction when retracting a stale record with state ttl enabled
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-28114">FLINK-28114</a>] - The path of the Python client interpreter could not point to an archive file in distributed file system
</li>
</ul>
<h2> Improvement
</h2>
<ul>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-24586">FLINK-24586</a>] - SQL functions should return STRING instead of VARCHAR(2000)
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-26788">FLINK-26788</a>] - AbstractDeserializationSchema should add cause when throwing a FlinkRuntimeException
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-26909">FLINK-26909</a>] - Allow setting parallelism to -1 from CLI
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27064">FLINK-27064</a>] - Centralize ArchUnit rules for production code
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27480">FLINK-27480</a>] - KafkaSources sharing the groupId might lead to InstanceAlreadyExistException warning
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27534">FLINK-27534</a>] - Apply scalafmt to 1.15 branch
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27776">FLINK-27776</a>] - Throw exception when UDAF used in sliding window does not implement merge method in PyFlink
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27935">FLINK-27935</a>] - Add Pyflink example of create temporary view document
</li>
</ul>
<h2> Technical Debt
</h2>
<ul>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-25694">FLINK-25694</a>] - Upgrade Presto to resolve GSON/Alluxio Vulnerability
</li>
</ul>
<h2> Sub-task
</h2>
<ul>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-26052">FLINK-26052</a>] - Update chinese documentation regarding FLIP-203
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-26588">FLINK-26588</a>] - Translate the new SQL CAST documentation to Chinese
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-27382">FLINK-27382</a>] - Make Job mode wait with cluster shutdown until the cleanup is done
</li>
</ul>
</article>
</div>
<div class="row">
<div id="disqus_thread"></div>
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
var disqus_shortname = 'stratosphere-eu'; // required: replace example with your forum shortname
/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
</div>
</div>
</div>
</div>
</div>
<hr />
<div class="row">
<div class="footer text-center col-sm-12">
<p>Copyright © 2014-2022 <a href="http://apache.org">The Apache Software Foundation</a>. All Rights Reserved.</p>
<p>Apache Flink, Flink®, Apache®, the squirrel logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation.</p>
<p><a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a> &middot; <a href="/blog/feed.xml">RSS feed</a></p>
</div>
</div>
</div><!-- /.container -->
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="/js/jquery.matchHeight-min.js"></script>
<script src="/js/bootstrap.min.js"></script>
<script src="/js/codetabs.js"></script>
<script src="/js/stickysidebar.js"></script>
</body>
</html>