blob: e7b1e93d5ace6ee2e4eefd99f4ecc4b56c691b8f [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: Stateful Computations over Data Streams</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="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/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]-->
</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>
<!-- What is Stateful Functions? -->
<li><a href="/stateful-functions.html">What is Stateful Functions?</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://ci.apache.org/projects/flink/flink-docs-release-1.10/getting-started/index.html" target="_blank">With Flink <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
<li><a href="https://ci.apache.org/projects/flink/flink-statefun-docs-release-2.0/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="/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://ci.apache.org/projects/flink/flink-docs-release-1.10" target="_blank">Flink 1.10 (Latest stable release) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
<li><a href="https://ci.apache.org/projects/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://ci.apache.org/projects/flink/flink-statefun-docs-release-2.0" target="_blank">Flink Stateful Functions 2.0 (Latest stable release) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
<li><a href="https://ci.apache.org/projects/flink/flink-statefun-docs-master" target="_blank">Flink Stateful Functions 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><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>
<a href="/zh/">中文版</a>
</li>
</ul>
<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>
<hr />
<li><a href="https://apache.org" target="_blank">Apache Software Foundation <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
<li>
<style>
.smalllinks:link {
display: inline-block !important; background: none; padding-top: 0px; padding-bottom: 0px; padding-right: 0px; min-width: 75px;
}
</style>
<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">
<p class="lead">
<strong>Apache Flink<sup>®</sup> — Stateful Computations over Data Streams</strong>
</p>
</div>
<div class="col-sm-12">
<hr />
</div>
</div>
<!-- High-level architecture figure -->
<div class="row front-graphic">
<hr />
<img src="/img/flink-home-graphic.png" width="800px" />
</div>
<!-- Feature grid -->
<!--
<div class="row">
<div class="col-sm-12">
<hr />
<h2><a href="/features.html">Features</a></h2>
</div>
</div>
-->
<div class="row">
<div class="col-sm-4">
<div class="panel panel-default">
<div class="panel-heading">
<span class="glyphicon glyphicon-th"></span> <b>All streaming use cases</b>
</div>
<div class="panel-body">
<ul style="font-size: small;">
<li>Event-driven Applications</li>
<li>Stream &amp; Batch Analytics</li>
<li>Data Pipelines &amp; ETL</li>
</ul>
<a href="/usecases.html">Learn more</a>
</div>
</div>
</div>
<div class="col-sm-4">
<div class="panel panel-default">
<div class="panel-heading">
<span class="glyphicon glyphicon-ok"></span> <b>Guaranteed correctness</b>
</div>
<div class="panel-body">
<ul style="font-size: small;">
<li>Exactly-once state consistency</li>
<li>Event-time processing</li>
<li>Sophisticated late data handling</li>
</ul>
<a href="/flink-applications.html#building-blocks-for-streaming-applications">Learn more</a>
</div>
</div>
</div>
<div class="col-sm-4">
<div class="panel panel-default">
<div class="panel-heading">
<span class="glyphicon glyphicon glyphicon-sort-by-attributes"></span> <b>Layered APIs</b>
</div>
<div class="panel-body">
<ul style="font-size: small;">
<li>SQL on Stream &amp; Batch Data</li>
<li>DataStream API &amp; DataSet API</li>
<li>ProcessFunction (Time &amp; State)</li>
</ul>
<a href="/flink-applications.html#layered-apis">Learn more</a>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-4">
<div class="panel panel-default">
<div class="panel-heading">
<span class="glyphicon glyphicon-dashboard"></span> <b>Operational Focus</b>
</div>
<div class="panel-body">
<ul style="font-size: small;">
<li>Flexible deployment</li>
<li>High-availability setup</li>
<li>Savepoints</li>
</ul>
<a href="/flink-operations.html">Learn more</a>
</div>
</div>
</div>
<div class="col-sm-4">
<div class="panel panel-default">
<div class="panel-heading">
<span class="glyphicon glyphicon-fullscreen"></span> <b>Scales to any use case</b>
</div>
<div class="panel-body">
<ul style="font-size: small;">
<li>Scale-out architecture</li>
<li>Support for very large state</li>
<li>Incremental checkpointing</li>
</ul>
<a href="/flink-architecture.html#run-applications-at-any-scale">Learn more</a>
</div>
</div>
</div>
<div class="col-sm-4">
<div class="panel panel-default">
<div class="panel-heading">
<span class="glyphicon glyphicon-flash"></span> <b>Excellent Performance</b>
</div>
<div class="panel-body">
<ul style="font-size: small;">
<li>Low latency</li>
<li>High throughput</li>
<li>In-Memory computing</li>
</ul>
<a href="/flink-architecture.html#leverage-in-memory-performance">Learn more</a>
</div>
</div>
</div>
</div>
<!-- Powered by section -->
<div class="row">
<div class="col-sm-12">
<br />
<h2><a href="/poweredby.html">Powered by Flink</a></h2>
<div class="jcarousel">
<ul>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/alibaba-logo.png" width="175" alt="Alibaba" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/aws-logo.png" width="175" alt="AWS" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/capital-one-logo.png" width="175" alt="Capital One" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/uber-logo.png" width="175" alt="Uber" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/bettercloud-logo.png" width="175" alt="BetterCloud" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/bouygues-logo.jpg" width="175" alt="Bouygues" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/comcast-logo.png" width="175" alt="Comcast" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/criteo-logo.png" width="175" alt="Criteo" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/didi-logo.png" width="175" alt="Didi" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/dtrb-logo.png" width="175" alt="Drivetribe" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/ebay-logo.png" width="175" alt="Ebay" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/ericsson-logo.png" width="175" alt="Ericsson" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/gojek-logo.png" width="175" alt="Gojek" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/huawei-logo.png" width="175" alt="Huawei" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/lyft-logo.png" width="175" alt="Lyft" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/king-logo.png" width="175" alt="King" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/klaviyo-logo.png" width="175" alt="Klaviyo" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/kuaishou-logo.jpg" width="175" alt="Kuaishou" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/mediamath-logo.png" width="175" alt="MediaMath" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/mux-logo.png" width="175" alt="Mux" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/oppo-logo.png" width="175" alt="OPPO" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/otto-group-logo.png" width="175" alt="Otto Group" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/ovh-logo.png" width="175" alt="OVH" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/pinterest-logo.png" width="175" alt="Pinterest" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/razorpay-logo.png" width="175" alt="Razorpay" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/researchgate-logo.png" width="175" alt="ResearchGate" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/sktelecom-logo.png" width="175" alt="SK telecom" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/telefonica-next-logo.png" width="175" alt="Telefonica Next" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/tencent-logo.png" width="175" alt="Tencent" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/vip-logo.png" width="175" alt="Vip" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/xiaomi-logo.png" width="175" alt="Xiaomi" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/yelp-logo.png" width="175" alt="Yelp" />
</a></div>
</li>
<li>
<div><a href="/poweredby.html">
<img src="/img/poweredby/zalando-logo.jpg" width="175" alt="Zalando" />
</a></div>
</li>
</ul>
</div>
<a href="#" class="jcarousel-control-prev" data-jcarouselcontrol="true"><span class="glyphicon glyphicon-chevron-left"></span></a>
<a href="#" class="jcarousel-control-next" data-jcarouselcontrol="true"><span class="glyphicon glyphicon-chevron-right"></span></a>
</div>
</div>
<!-- Events section -->
<div class="row">
<div class="col-sm-12">
<hr />
</div>
<div class="col-sm-3">
<h2><a>Upcoming Events</a></h2>
</div>
<div class="col-sm-9">
<!-- Flink Forward -->
<a href="https://flink-forward.org" target="_blank">
<img style="width: 200px; padding-right: 30px" src="/img/flink-forward.png" alt="Flink Forward" />
</a>
<!-- ApacheCon -->
<a href="https://www.apache.org/events/current-event" target="_blank">
<img src="https://www.apache.org/events/current-event-234x60.png" alt="ApacheCon" />
</a>
</div>
</div>
<!-- Updates section -->
<div class="row">
<div class="col-sm-12">
<hr />
</div>
<div class="col-sm-3">
<h2><a href="/blog">Latest Blog Posts</a></h2>
</div>
<div class="col-sm-9">
<dl>
<dt> <a href="/news/2020/05/12/release-1.10.1.html">Apache Flink 1.10.1 Released</a></dt>
<dd><p>The Apache Flink community released the first bugfix version of the Apache Flink 1.10 series.</p>
</dd>
<dt> <a href="/news/2020/05/07/community-update.html">Flink Community Update - May'20</a></dt>
<dd>Can you smell it? It’s release month! This time around, we’re warming up for Flink 1.11 and peeping back to the past month in the Flink community — with the release of Stateful Functions 2.0, a new self-paced Flink training and some efforts to improve the Flink documentation experience.</dd>
<dt> <a href="/news/2020/05/04/season-of-docs.html">Applying to Google Season of Docs 2020</a></dt>
<dd>The Flink community is thrilled to share that the project is applying again to Google Season of Docs (GSoD) this year! If you’re unfamiliar with the program, GSoD is a great initiative organized by Google Open Source to pair technical writers with mentors to work on documentation for open source projects. Does working shoulder to shoulder with the Flink community on documentation sound exciting? We’d love to hear from you!</dd>
<dt> <a href="/news/2020/04/24/release-1.9.3.html">Apache Flink 1.9.3 Released</a></dt>
<dd><p>The Apache Flink community released the third bugfix version of the Apache Flink 1.9 series.</p>
</dd>
<dt> <a href="/news/2020/04/21/memory-management-improvements-flink-1.10.html">Memory Management Improvements with Apache Flink 1.10</a></dt>
<dd>This post discusses the recent changes to the memory model of the Task Managers and configuration options for your Flink applications in Flink 1.10.</dd>
</dl>
</div>
<!-- Scripts section -->
<script type="text/javascript" src="/js/jquery.jcarousel.min.js"></script>
<script type="text/javascript">
$(window).load(function(){
$(function() {
var jcarousel = $('.jcarousel');
jcarousel
.on('jcarousel:reload jcarousel:create', function () {
var carousel = $(this),
width = carousel.innerWidth();
if (width >= 600) {
width = width / 4;
} else if (width >= 350) {
width = width / 3;
}
carousel.jcarousel('items').css('width', Math.ceil(width) + 'px');
})
.jcarousel({
wrap: 'circular',
autostart: true
});
$('.jcarousel-control-prev')
.jcarouselControl({
target: '-=1'
});
$('.jcarousel-control-next')
.jcarouselControl({
target: '+=1'
});
$('.jcarousel-pagination')
.on('jcarouselpagination:active', 'a', function() {
$(this).addClass('active');
})
.on('jcarouselpagination:inactive', 'a', function() {
$(this).removeClass('active');
})
.on('click', function(e) {
e.preventDefault();
})
.jcarouselPagination({
perPage: 1,
item: function(page) {
return '<a href="#' + page + '">' + page + '</a>';
}
});
});
});
</script>
</div>
</div>
</div>
<hr />
<div class="row">
<div class="footer text-center col-sm-12">
<p>Copyright © 2014-2019 <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="/privacy-policy.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="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.matchHeight/0.7.0/jquery.matchHeight-min.js"></script>
<script src="/js/codetabs.js"></script>
<script src="/js/stickysidebar.js"></script>
<!-- Google Analytics -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-52545728-1', 'auto');
ga('send', 'pageview');
</script>
</body>
</html>