This is an automated email from the ASF dual-hosted git repository.

chesnay pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/flink-web.git

commit 80ae871143ff8ad817d564ad8dc2f5433771bd3d
Author: Dian Fu <fudian...@alibaba-inc.com>
AuthorDate: Thu Dec 5 10:10:25 2019 +0800

    Rebuild website
---
 content/blog/feed.xml | 419 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 419 insertions(+)

diff --git a/content/blog/feed.xml b/content/blog/feed.xml
index 1410119..be37a00 100644
--- a/content/blog/feed.xml
+++ b/content/blog/feed.xml
@@ -7,6 +7,425 @@
 <atom:link href="https://flink.apache.org/blog/feed.xml"; rel="self" 
type="application/rss+xml" />
 
 <item>
+<title>How to query Pulsar Streams using Apache Flink</title>
+<description>&lt;p&gt;In a previous &lt;a 
href=&quot;https://flink.apache.org/2019/05/03/pulsar-flink.html&quot;&gt;story&lt;/a&gt;
 on the  Flink blog, we explained the different ways that &lt;a 
href=&quot;https://flink.apache.org/&quot;&gt;Apache Flink&lt;/a&gt; and &lt;a 
href=&quot;https://pulsar.apache.org/&quot;&gt;Apache Pulsar&lt;/a&gt; can 
integrate to provide elastic data processing at large scale. This blog post 
discusses the new developments and integrations between the two fra [...]
+
+&lt;h1 id=&quot;a-short-intro-to-apache-pulsar&quot;&gt;A short intro to 
Apache Pulsar&lt;/h1&gt;
+
+&lt;p&gt;Apache Pulsar is a flexible pub/sub messaging system, backed by 
durable log storage. Some of the framework’s highlights include multi-tenancy, 
a unified message model, structured event streams and a cloud-native 
architecture that make it a perfect fit for a wide set of use cases, ranging 
from billing, payments and trading services all the way to the unification of 
the different messaging architectures in an organization. If you are interested 
in finding out more about Pulsar, yo [...]
+
+&lt;h1 
id=&quot;existing-pulsar--flink-integration-apache-flink-16&quot;&gt;Existing 
Pulsar &amp;amp; Flink integration (Apache Flink 1.6+)&lt;/h1&gt;
+
+&lt;p&gt;The existing integration between Pulsar and Flink exploits Pulsar as 
a message queue in a Flink application. Flink developers can utilize Pulsar as 
a streaming source and streaming sink for their Flink applications by selecting 
a specific Pulsar source and connecting to their desired Pulsar cluster and 
topic:&lt;/p&gt;
+
+&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code 
class=&quot;language-java&quot;&gt;&lt;span class=&quot;c1&quot;&gt;// create 
and configure Pulsar consumer&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;PulsarSourceBuilder&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;String&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;builder&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;PulsarSourceBuilder&lt;/span&gt;  
+  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;builder&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span 
class=&quot;nf&quot;&gt;SimpleStringSchema&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;())&lt;/span&gt; 
+  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;serviceUrl&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;serviceUrl&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;topic&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;inputTopic&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;subsciptionName&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;subscription&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;);&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;SourceFunction&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;String&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;src&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;builder&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;build&lt;/span&gt;&lt;span class=&quot;o&quot;&g [...]
+&lt;span class=&quot;c1&quot;&gt;// ingest DataStream with Pulsar 
consumer&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;DataStream&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;String&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;words&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;env&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;addSource&lt;/span&gt;&lt;span class=&quot;o&quot;&gt; 
[...]
+
+&lt;p&gt;Pulsar streams can then get connected to the Flink processing 
logic…&lt;/p&gt;
+
+&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code 
class=&quot;language-java&quot;&gt;&lt;span class=&quot;c1&quot;&gt;// perform 
computation on DataStream (here a simple WordCount)&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;DataStream&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;WordWithCount&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;wc&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;words&lt;/span&gt;
+  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;flatmap&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;((&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;FlatMapFunction&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;String&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;WordWithCount&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;)&lt;/span&gt; &lt;span class=&quot [...]
+    &lt;span class=&quot;n&quot;&gt;collector&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;collect&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span 
class=&quot;nf&quot;&gt;WordWithCount&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;word&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/ 
[...]
+  &lt;span class=&quot;o&quot;&gt;})&lt;/span&gt;
+ 
+  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;returns&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;WordWithCount&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;class&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;keyBy&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;s&quot;&gt;&amp;quot;word&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;timeWindow&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;Time&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;seconds&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;mi&quot;&gt;5&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;))&lt;/span&gt;
+  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;reduce&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;((&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;ReduceFunction&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;WordWithCount&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;)&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;c1&lt;/span&gt;&lt;span class=&quot;o&quot [...]
+    &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span 
class=&quot;nf&quot;&gt;WordWithCount&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;c1&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;word&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;c1&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;count&lt;/span&gt; [...]
+
+&lt;p&gt;…and then get emitted back to Pulsar (used now as a sink), sending 
one’s computation results downstream, back to a Pulsar topic:&lt;/p&gt;
+
+&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code 
class=&quot;language-java&quot;&gt;&lt;span class=&quot;c1&quot;&gt;// emit 
result via Pulsar producer &lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;wc&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;addSink&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;FlinkPulsarProducer&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;lt;&amp;gt;(&lt;/span&gt;
+  &lt;span class=&quot;n&quot;&gt;serviceUrl&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;,&lt;/span&gt;
+  &lt;span class=&quot;n&quot;&gt;outputTopic&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;,&lt;/span&gt;
+  &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span 
class=&quot;nf&quot;&gt;AuthentificationDisabled&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(),&lt;/span&gt;
+  &lt;span class=&quot;n&quot;&gt;wordWithCount&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;wordWithCount&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;toString&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;().&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;getBytes&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;UTF_8&lt;/span&gt;&lt;span class=&quot [...]
+  &lt;span class=&quot;n&quot;&gt;wordWithCount&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;wordWithCount&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;word&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+&lt;span 
class=&quot;o&quot;&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
+
+&lt;p&gt;Although this is a great first integration step, the existing design 
is not leveraging the full power of Pulsar. Some shortcomings of the 
integration with Flink 1.6.0 relate to Pulsar neither being utilized as durable 
storage nor having schema integration with Flink, resulting in manual input 
when describing an application’s schema registry.&lt;/p&gt;
+
+&lt;h1 
id=&quot;pulsars-integration-with-flink-19-using-pulsar-as-a-flink-catalog&quot;&gt;Pulsar’s
 integration with Flink 1.9: Using Pulsar as a Flink catalog&lt;/h1&gt;
+
+&lt;p&gt;The latest integration between &lt;a 
href=&quot;https://flink.apache.org/downloads.html#apache-flink-191&quot;&gt;Flink
 1.9.0&lt;/a&gt; and Pulsar addresses most of the previously mentioned 
shortcomings. The &lt;a 
href=&quot;https://flink.apache.org/news/2019/02/13/unified-batch-streaming-blink.html&quot;&gt;contribution
 of Alibaba’s Blink to the Flink repository&lt;/a&gt; adds many enhancements 
and new features to the processing framework that make the integration with 
Pulsar s [...]
+
+&lt;h1 
id=&quot;leveraging-the-flink--pulsar-schema-integration&quot;&gt;Leveraging 
the Flink &amp;lt;&amp;gt; Pulsar Schema Integration&lt;/h1&gt;
+
+&lt;p&gt;Before delving into the integration details and how you can use 
Pulsar schema with Flink, let us describe how schema in Pulsar works. Schema in 
Apache Pulsar already co-exists and serves as the representation of the data on 
the broker side of the framework, something that makes schema registry with 
external systems obsolete. Additionally, the data schema in Pulsar is 
associated with each topic so both producers and consumers send data with 
predefined schema information, while th [...]
+
+&lt;p&gt;Below you can find an example of Pulsar’s schema on both the producer 
and consumer side. On the producer side, you can specify which schema you want 
to use and Pulsar then sends a POJO class without the need to perform any 
serialization/deserialization. Similarly, on the consumer end, you can also 
specify the data schema and upon receiving the data, Pulsar will automatically 
validate the schema information, fetch the schema of the given version and then 
deserialize the data back [...]
+
+&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code 
class=&quot;language-java&quot;&gt;&lt;span class=&quot;c1&quot;&gt;// Create 
producer with Struct schema and send messages&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;Producer&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;User&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;producer&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;client&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;newProducer&lt;/span&gt;&lt;span class=&quot;o&quot; 
[...]
+&lt;span class=&quot;n&quot;&gt;producer&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;newMessage&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;()&lt;/span&gt;
+  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;value&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;User&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;builder&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;()&lt;/span&gt;
+    &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;userName&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;err&quot;&gt;“&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;pulsar&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;user&lt;/span&gt;&lt;span 
class=&quot;err&quot;&gt;”&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+    &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;userId&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;mi&quot;&gt;1L&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+    &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;build&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;())&lt;/span&gt;
+  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;send&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
+
+&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code 
class=&quot;language-java&quot;&gt;&lt;span class=&quot;c1&quot;&gt;// Create 
consumer with Struct schema and receive messages&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;Consumer&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;User&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;consumer&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;client&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;newCOnsumer&lt;/span&gt;&lt;span class=&quot;o&quot; 
[...]
+&lt;span class=&quot;n&quot;&gt;consumer&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;receive&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
+
+&lt;p&gt;Let’s assume we have an application that specifies a schema to the 
producer and/or consumer. Upon receiving the schema information, the producer 
(or consumer) — that is connected to the broker — will transfer such 
information so that the broker can then perform schema registration, 
validations and schema compatibility checks before returning or rejecting the 
schema as illustrated in the diagram below:&lt;/p&gt;
+
+&lt;center&gt;
+&lt;img src=&quot;/img/blog/flink-pulsar-sql-blog-post-visual.png&quot; 
width=&quot;600px&quot; alt=&quot;Pulsar Schema&quot; /&gt;
+&lt;/center&gt;
+&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
+
+&lt;p&gt;Not only is Pulsar able to handle and store the schema information, 
but is additionally able to handle any schema evolution — where necessary. 
Pulsar will effectively manage any schema evolution in the broker, keeping 
track of all different versions of your schema while performing any necessary 
compatibility checks.&lt;/p&gt;
+
+&lt;p&gt;Moreover, when messages are published on the producer side, Pulsar 
will tag each message with the schema version as part of each message’s 
metadata. On the consumer side, when the message is received and the metadata 
is deserialized, Pulsar will check the schema version associated with this 
message and will fetch the corresponding schema information from the broker. As 
a result, when Pulsar integrates with a Flink application it uses the 
pre-existing schema information and maps  [...]
+
+&lt;p&gt;For the cases when Flink users do not interact with schema directly 
or make use of primitive schema (for example, using a topic to store a string 
or long number), Pulsar will either convert the message payload into a Flink 
row, called ‘value’ or — for the cases of structured schema types, like JSON 
and AVRO —  Pulsar will extract the individual fields from the schema 
information and will map the fields to Flink’s type system. Finally, all 
metadata information associated with eac [...]
+
+&lt;center&gt;
+&lt;img 
src=&quot;/img/blog/flink-pulsar-sql-blog-post-visual-primitive-avro-schema.png&quot;
 width=&quot;600px&quot; alt=&quot;Primitive and AVRO Schema&quot; /&gt;
+&lt;/center&gt;
+&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
+
+&lt;p&gt;Once all the schema information is mapped to Flink’s type system, you 
can start building a Pulsar source, sink or catalog in Flink based on the 
specified schema information as illustrated below:&lt;/p&gt;
+
+&lt;h1 id=&quot;flink--pulsar-read-data-from-pulsar&quot;&gt;Flink &amp;amp; 
Pulsar: Read data from Pulsar&lt;/h1&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;Create a Pulsar source for streaming queries&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code 
class=&quot;language-java&quot;&gt;&lt;span 
class=&quot;n&quot;&gt;val&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;env&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;StreamExecutionEnvironment&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;getExecutionEnvironment&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;val&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;props&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span 
class=&quot;nf&quot;&gt;Properties&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;()&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;props&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;setProperty&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;s&quot;&gt;&amp;quot;service.url&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span 
class=&quot;s&quot;&gt;&amp;quot;pulsar://...&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;props&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;setProperty&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;s&quot;&gt;&amp;quot;admin.url&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span 
class=&quot;s&quot;&gt;&amp;quot;http://...&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;props&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;setProperty&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;s&quot;&gt;&amp;quot;partitionDiscoveryIntervalMillis&amp;quot;&lt;/span&gt;&lt;span
 class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span 
class=&quot;s&quot;&gt;&amp;quot;5000&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;props&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;setProperty&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;s&quot;&gt;&amp;quot;startingOffsets&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span 
class=&quot;s&quot;&gt;&amp;quot;earliest&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;props&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;setProperty&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;s&quot;&gt;&amp;quot;topic&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span 
class=&quot;s&quot;&gt;&amp;quot;test-source-topic&amp;quot;&lt;/span&gt;&lt;span
 class=&quot;o&quot;&gt;)&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;val&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;source&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span 
class=&quot;nf&quot;&gt;FlinkPulsarSource&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;props&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+&lt;span class=&quot;c1&quot;&gt;// you don&amp;#39;t need to provide a type 
information to addSource since FlinkPulsarSource is 
ResultTypeQueryable&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;val&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;dataStream&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;env&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;addSource&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;source&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)(&lt;/span&gt;&lt;span 
class=&quot;kc&quot;&gt;null&lt;/span& [...]
+
+&lt;span class=&quot;c1&quot;&gt;// chain operations on dataStream of Row and 
sink the output&lt;/span&gt;
+&lt;span class=&quot;c1&quot;&gt;// end method chaining&lt;/span&gt;
+
+&lt;span class=&quot;n&quot;&gt;env&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;execute&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;()&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;Register topics in Pulsar as streaming tables&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code 
class=&quot;language-java&quot;&gt;&lt;span 
class=&quot;n&quot;&gt;val&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;env&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;StreamExecutionEnvironment&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;getExecutionEnvironment&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;val&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;tEnv&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;StreamTableEnvironment&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;create&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;env&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+
+&lt;span class=&quot;n&quot;&gt;val&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;prop&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span 
class=&quot;nf&quot;&gt;Properties&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;()&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;prop&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;setProperty&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;s&quot;&gt;&amp;quot;service.url&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;serviceUrl&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;prop&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;setProperty&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;s&quot;&gt;&amp;quot;admin.url&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;adminUrl&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;prop&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;setProperty&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;s&quot;&gt;&amp;quot;flushOnCheckpoint&amp;quot;&lt;/span&gt;&lt;span
 class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span 
class=&quot;s&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;prop&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;setProperty&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;s&quot;&gt;&amp;quot;failOnWrite&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span 
class=&quot;s&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;props&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;setProperty&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;s&quot;&gt;&amp;quot;topic&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span 
class=&quot;s&quot;&gt;&amp;quot;test-sink-topic&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+
+&lt;span class=&quot;n&quot;&gt;tEnv&lt;/span&gt;
+  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;connect&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span 
class=&quot;nf&quot;&gt;Pulsar&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;().&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;properties&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;props&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;))&lt;/span&gt;
+  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;inAppendMode&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;()&lt;/span&gt;
+  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;registerTableSource&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;s&quot;&gt;&amp;quot;sink-table&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+
+&lt;span class=&quot;n&quot;&gt;val&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;sql&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;s&quot;&gt;&amp;quot;INSERT INTO sink-table 
.....&amp;quot;&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;tEnv&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;sqlUpdate&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;sql&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;env&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;execute&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;()&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
+
+&lt;h1 id=&quot;flink--pulsar-write-data-to-pulsar&quot;&gt;Flink &amp;amp; 
Pulsar: Write data to Pulsar&lt;/h1&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;Create a Pulsar sink for streaming queries&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code 
class=&quot;language-java&quot;&gt;&lt;span 
class=&quot;n&quot;&gt;val&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;env&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;StreamExecutionEnvironment&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;getExecutionEnvironment&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;val&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;stream&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;.....&lt;/span&gt;
+
+&lt;span class=&quot;n&quot;&gt;val&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;prop&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span 
class=&quot;nf&quot;&gt;Properties&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;()&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;prop&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;setProperty&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;s&quot;&gt;&amp;quot;service.url&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;serviceUrl&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;prop&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;setProperty&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;s&quot;&gt;&amp;quot;admin.url&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;adminUrl&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;prop&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;setProperty&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;s&quot;&gt;&amp;quot;flushOnCheckpoint&amp;quot;&lt;/span&gt;&lt;span
 class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span 
class=&quot;s&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;prop&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;setProperty&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;s&quot;&gt;&amp;quot;failOnWrite&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span 
class=&quot;s&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;props&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;setProperty&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;s&quot;&gt;&amp;quot;topic&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span 
class=&quot;s&quot;&gt;&amp;quot;test-sink-topic&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+
+&lt;span class=&quot;n&quot;&gt;stream&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;addSink&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span 
class=&quot;nf&quot;&gt;FlinkPulsarSink&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;prop&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;DummyTopicKe [...]
+&lt;span class=&quot;n&quot;&gt;env&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;execute&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;()&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;Write a streaming table to Pulsar&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code 
class=&quot;language-java&quot;&gt;&lt;span 
class=&quot;n&quot;&gt;val&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;env&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;StreamExecutionEnvironment&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;getExecutionEnvironment&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;val&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;tEnv&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;StreamTableEnvironment&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;create&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;env&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+
+&lt;span class=&quot;n&quot;&gt;val&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;prop&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span 
class=&quot;nf&quot;&gt;Properties&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;()&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;prop&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;setProperty&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;s&quot;&gt;&amp;quot;service.url&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;serviceUrl&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;prop&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;setProperty&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;s&quot;&gt;&amp;quot;admin.url&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;adminUrl&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;prop&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;setProperty&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;s&quot;&gt;&amp;quot;flushOnCheckpoint&amp;quot;&lt;/span&gt;&lt;span
 class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span 
class=&quot;s&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;prop&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;setProperty&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;s&quot;&gt;&amp;quot;failOnWrite&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span 
class=&quot;s&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;props&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;setProperty&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;s&quot;&gt;&amp;quot;topic&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span 
class=&quot;s&quot;&gt;&amp;quot;test-sink-topic&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+
+&lt;span class=&quot;n&quot;&gt;tEnv&lt;/span&gt;
+  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;connect&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span 
class=&quot;nf&quot;&gt;Pulsar&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;().&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;properties&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;props&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;))&lt;/span&gt;
+  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;inAppendMode&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;()&lt;/span&gt;
+  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;registerTableSource&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;s&quot;&gt;&amp;quot;sink-table&amp;quot;&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+
+&lt;span class=&quot;n&quot;&gt;val&lt;/span&gt; &lt;span 
class=&quot;n&quot;&gt;sql&lt;/span&gt; &lt;span 
class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span 
class=&quot;s&quot;&gt;&amp;quot;INSERT INTO sink-table 
.....&amp;quot;&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;tEnv&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;sqlUpdate&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span 
class=&quot;n&quot;&gt;sql&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;)&lt;/span&gt;
+&lt;span class=&quot;n&quot;&gt;env&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span 
class=&quot;na&quot;&gt;execute&lt;/span&gt;&lt;span 
class=&quot;o&quot;&gt;()&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
+
+&lt;p&gt;In every instance, Flink developers only need to specify the 
properties of how Flink will connect to a Pulsar cluster without worrying about 
any schema registry, or serialization/deserialization actions and register the 
Pulsar cluster as a source, sink or streaming table in Flink. Once all three 
elements are put together, Pulsar can then be registered as a catalog in Flink, 
something that drastically simplifies how you process and query data like, for 
example, writing a program  [...]
+
+&lt;h1 id=&quot;next-steps--future-integration&quot;&gt;Next Steps &amp;amp; 
Future Integration&lt;/h1&gt;
+
+&lt;p&gt;The goal of the integration between Pulsar and Flink is to simplify 
how developers use the two frameworks to build a unified data processing stack. 
As we progress from the classical Lamda architectures — where an online, 
speeding layer is combined with an offline, batch layer to run data 
computations — Flink and Pulsar present a great combination in providing a 
truly unified data processing stack. We see Flink as a unified computation 
engine, handling both online (streaming) and [...]
+
+&lt;p&gt;There is still a lot of ongoing work and effort from both communities 
in getting the integration even better, such as a new source API (&lt;a 
href=&quot;https://cwiki.apache.org/confluence/display/FLINK/FLIP-27%3A+Refactor+Source+Interface&quot;&gt;FLIP-27&lt;/a&gt;)
 that will allow the &lt;a 
href=&quot;http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/Discussion-Flink-Pulsar-Connector-td22019.html&quot;&gt;contribution
 of the Pulsar connectors to the Flink communit [...]
+
+&lt;p&gt;You can find a more detailed overview of the integration work between 
the two communities in this &lt;a 
href=&quot;https://youtu.be/3sBXXfgl5vs&quot;&gt;recording video&lt;/a&gt; from 
Flink Forward Europe 2019 or sign up to the &lt;a 
href=&quot;https://flink.apache.org/community.html#mailing-lists&quot;&gt;Flink 
dev mailing list&lt;/a&gt; for the latest contribution and integration efforts 
between Flink and Pulsar.&lt;/p&gt;
+</description>
+<pubDate>Mon, 25 Nov 2019 13:00:00 +0100</pubDate>
+<link>https://flink.apache.org/news/2019/11/25/query-pulsar-streams-using-apache-flink.html</link>
+<guid 
isPermaLink="true">/news/2019/11/25/query-pulsar-streams-using-apache-flink.html</guid>
+</item>
+
+<item>
+<title>Apache Flink 1.9.1 Released</title>
+<description>&lt;p&gt;The Apache Flink community released the first bugfix 
version of the Apache Flink 1.9 series.&lt;/p&gt;
+
+&lt;p&gt;This release includes 96 fixes and minor improvements for Flink 
1.9.0. The list below includes a detailed list of all fixes and 
improvements.&lt;/p&gt;
+
+&lt;p&gt;We highly recommend all users to upgrade to Flink 1.9.1.&lt;/p&gt;
+
+&lt;p&gt;Updated Maven dependencies:&lt;/p&gt;
+
+&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code 
class=&quot;language-xml&quot;&gt;&lt;span 
class=&quot;nt&quot;&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
+  &lt;span 
class=&quot;nt&quot;&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.apache.flink&lt;span
 class=&quot;nt&quot;&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
+  &lt;span 
class=&quot;nt&quot;&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;flink-java&lt;span
 class=&quot;nt&quot;&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
+  &lt;span 
class=&quot;nt&quot;&gt;&amp;lt;version&amp;gt;&lt;/span&gt;1.9.1&lt;span 
class=&quot;nt&quot;&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
+&lt;span class=&quot;nt&quot;&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
+&lt;span class=&quot;nt&quot;&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
+  &lt;span 
class=&quot;nt&quot;&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.apache.flink&lt;span
 class=&quot;nt&quot;&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
+  &lt;span 
class=&quot;nt&quot;&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;flink-streaming-java_2.11&lt;span
 class=&quot;nt&quot;&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
+  &lt;span 
class=&quot;nt&quot;&gt;&amp;lt;version&amp;gt;&lt;/span&gt;1.9.1&lt;span 
class=&quot;nt&quot;&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
+&lt;span class=&quot;nt&quot;&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
+&lt;span class=&quot;nt&quot;&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
+  &lt;span 
class=&quot;nt&quot;&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.apache.flink&lt;span
 class=&quot;nt&quot;&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
+  &lt;span 
class=&quot;nt&quot;&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;flink-clients_2.11&lt;span
 class=&quot;nt&quot;&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
+  &lt;span 
class=&quot;nt&quot;&gt;&amp;lt;version&amp;gt;&lt;/span&gt;1.9.1&lt;span 
class=&quot;nt&quot;&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
+&lt;span 
class=&quot;nt&quot;&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
+
+&lt;p&gt;You can find the binaries on the updated &lt;a 
href=&quot;/downloads.html&quot;&gt;Downloads page&lt;/a&gt;.&lt;/p&gt;
+
+&lt;p&gt;List of resolved issues:&lt;/p&gt;
+
+&lt;h2&gt;        Bug
+&lt;/h2&gt;
+&lt;ul&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-11630&quot;&gt;FLINK-11630&lt;/a&gt;]
 -         TaskExecutor does not wait for Task termination when terminating 
itself
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13490&quot;&gt;FLINK-13490&lt;/a&gt;]
 -         Fix if one column value is null when reading JDBC, the following 
values are all null
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13941&quot;&gt;FLINK-13941&lt;/a&gt;]
 -         Prevent data-loss by not cleaning up small part files from S3.
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-12501&quot;&gt;FLINK-12501&lt;/a&gt;]
 -         AvroTypeSerializer does not work with types generated by avrohugger
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13386&quot;&gt;FLINK-13386&lt;/a&gt;]
 -         Fix some frictions in the new default Web UI
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13526&quot;&gt;FLINK-13526&lt;/a&gt;]
 -         Switching to a non existing catalog or database crashes sql-client
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13568&quot;&gt;FLINK-13568&lt;/a&gt;]
 -         DDL create table doesn&amp;#39;t allow STRING data type
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13805&quot;&gt;FLINK-13805&lt;/a&gt;]
 -         Bad Error Message when TaskManager is lost
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13806&quot;&gt;FLINK-13806&lt;/a&gt;]
 -         Metric Fetcher floods the JM log with errors when TM is lost
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-14010&quot;&gt;FLINK-14010&lt;/a&gt;]
 -         Dispatcher &amp;amp; JobManagers don&amp;#39;t give up leadership 
when AM is shut down
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-14145&quot;&gt;FLINK-14145&lt;/a&gt;]
 -         CompletedCheckpointStore#getLatestCheckpoint(true) returns wrong 
checkpoint
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13059&quot;&gt;FLINK-13059&lt;/a&gt;]
 -         Cassandra Connector leaks Semaphore on Exception and hangs on close
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13534&quot;&gt;FLINK-13534&lt;/a&gt;]
 -         Unable to query Hive table with decimal column
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13562&quot;&gt;FLINK-13562&lt;/a&gt;]
 -         Throws exception when FlinkRelMdColumnInterval meets two stage 
stream group aggregate
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13563&quot;&gt;FLINK-13563&lt;/a&gt;]
 -         TumblingGroupWindow should implement toString method
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13564&quot;&gt;FLINK-13564&lt;/a&gt;]
 -         Throw exception if constant with YEAR TO MONTH resolution was used 
for group windows
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13588&quot;&gt;FLINK-13588&lt;/a&gt;]
 -         StreamTask.handleAsyncException throws away the exception cause
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13653&quot;&gt;FLINK-13653&lt;/a&gt;]
 -         ResultStore should avoid using RowTypeInfo when creating a result
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13711&quot;&gt;FLINK-13711&lt;/a&gt;]
 -         Hive array values not properly displayed in SQL CLI
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13737&quot;&gt;FLINK-13737&lt;/a&gt;]
 -         flink-dist should add provided dependency on flink-examples-table
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13738&quot;&gt;FLINK-13738&lt;/a&gt;]
 -         Fix NegativeArraySizeException in LongHybridHashTable
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13742&quot;&gt;FLINK-13742&lt;/a&gt;]
 -         Fix code generation when aggregation contains both distinct 
aggregate with and without filter
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13760&quot;&gt;FLINK-13760&lt;/a&gt;]
 -         Fix hardcode Scala version dependency in hive connector
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13761&quot;&gt;FLINK-13761&lt;/a&gt;]
 -         `SplitStream` should be deprecated because `SplitJavaStream` is 
deprecated
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13789&quot;&gt;FLINK-13789&lt;/a&gt;]
 -         Transactional Id Generation fails due to user code impacting 
formatting string
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13823&quot;&gt;FLINK-13823&lt;/a&gt;]
 -         Incorrect debug log in CompileUtils
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13825&quot;&gt;FLINK-13825&lt;/a&gt;]
 -         The original plugins dir is not restored after e2e test run
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13831&quot;&gt;FLINK-13831&lt;/a&gt;]
 -         Free Slots / All Slots display error
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13887&quot;&gt;FLINK-13887&lt;/a&gt;]
 -         Ensure defaultInputDependencyConstraint to be non-null when setting 
it in ExecutionConfig
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13897&quot;&gt;FLINK-13897&lt;/a&gt;]
 -         OSS FS NOTICE file is placed in wrong directory
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13933&quot;&gt;FLINK-13933&lt;/a&gt;]
 -         Hive Generic UDTF can not be used in table API both stream and batch 
mode
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13936&quot;&gt;FLINK-13936&lt;/a&gt;]
 -         NOTICE-binary is outdated
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13966&quot;&gt;FLINK-13966&lt;/a&gt;]
 -         Jar sorting in collect_license_files.sh is locale dependent
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-14009&quot;&gt;FLINK-14009&lt;/a&gt;]
 -         Cron jobs broken due to verifying incorrect NOTICE-binary file
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-14049&quot;&gt;FLINK-14049&lt;/a&gt;]
 -         Update error message for failed partition updates to include task 
name
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-14076&quot;&gt;FLINK-14076&lt;/a&gt;]
 -         &amp;#39;ClassNotFoundException: KafkaException&amp;#39; on Flink 
v1.9 w/ checkpointing
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-14107&quot;&gt;FLINK-14107&lt;/a&gt;]
 -         Kinesis consumer record emitter deadlock under event time alignment
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-14119&quot;&gt;FLINK-14119&lt;/a&gt;]
 -         Clean idle state for RetractableTopNFunction
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-14139&quot;&gt;FLINK-14139&lt;/a&gt;]
 -         Fix potential memory leak of rest server when using 
session/standalone cluster
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-14140&quot;&gt;FLINK-14140&lt;/a&gt;]
 -         The Flink Logo Displayed in Flink Python Shell is Broken
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-14150&quot;&gt;FLINK-14150&lt;/a&gt;]
 -         Unnecessary __pycache__ directories appears in pyflink.zip
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-14288&quot;&gt;FLINK-14288&lt;/a&gt;]
 -         Add Py4j NOTICE for source release
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13892&quot;&gt;FLINK-13892&lt;/a&gt;]
 -         HistoryServerTest failed on Travis
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-14043&quot;&gt;FLINK-14043&lt;/a&gt;]
 -         SavepointMigrationTestBase is super slow
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-12164&quot;&gt;FLINK-12164&lt;/a&gt;]
 -         JobMasterTest.testJobFailureWhenTaskExecutorHeartbeatTimeout is 
unstable
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-9900&quot;&gt;FLINK-9900&lt;/a&gt;]
 -         Fix unstable test 
ZooKeeperHighAvailabilityITCase#testRestoreBehaviourWithFaultyStateHandles
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13484&quot;&gt;FLINK-13484&lt;/a&gt;]
 -         ConnectedComponents end-to-end test instable with 
NoResourceAvailableException
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13489&quot;&gt;FLINK-13489&lt;/a&gt;]
 -         Heavy deployment end-to-end test fails on Travis with TM heartbeat 
timeout
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13514&quot;&gt;FLINK-13514&lt;/a&gt;]
 -         StreamTaskTest.testAsyncCheckpointingConcurrentCloseAfterAcknowledge 
unstable
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13530&quot;&gt;FLINK-13530&lt;/a&gt;]
 -         AbstractServerTest failed on Travis
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13585&quot;&gt;FLINK-13585&lt;/a&gt;]
 -         Fix sporadical deallock in 
TaskAsyncCallTest#testSetsUserCodeClassLoader()
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13599&quot;&gt;FLINK-13599&lt;/a&gt;]
 -         Kinesis end-to-end test failed on Travis
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13663&quot;&gt;FLINK-13663&lt;/a&gt;]
 -         SQL Client end-to-end test for modern Kafka failed on Travis
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13688&quot;&gt;FLINK-13688&lt;/a&gt;]
 -         HiveCatalogUseBlinkITCase.testBlinkUdf constantly failed
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13739&quot;&gt;FLINK-13739&lt;/a&gt;]
 -         BinaryRowTest.testWriteString() fails in some environments
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13746&quot;&gt;FLINK-13746&lt;/a&gt;]
 -         Elasticsearch (v2.3.5) sink end-to-end test fails on Travis
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13769&quot;&gt;FLINK-13769&lt;/a&gt;]
 -         BatchFineGrainedRecoveryITCase.testProgram failed on Travis
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13807&quot;&gt;FLINK-13807&lt;/a&gt;]
 -         Flink-avro unit tests fails if the character encoding in the 
environment is not default to UTF-8
+&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;h2&gt;        Improvement
+&lt;/h2&gt;
+&lt;ul&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13965&quot;&gt;FLINK-13965&lt;/a&gt;]
 -         Keep hasDeprecatedKeys and deprecatedKeys methods in ConfigOption 
and mark it with @Deprecated annotation
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-9941&quot;&gt;FLINK-9941&lt;/a&gt;]
 -         Flush in ScalaCsvOutputFormat before close method
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13336&quot;&gt;FLINK-13336&lt;/a&gt;]
 -         Remove the legacy batch fault tolerance page and redirect it to the 
new task failure recovery page
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13380&quot;&gt;FLINK-13380&lt;/a&gt;]
 -         Improve the usability of Flink session cluster on Kubernetes
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13819&quot;&gt;FLINK-13819&lt;/a&gt;]
 -         Introduce RpcEndpoint State
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13845&quot;&gt;FLINK-13845&lt;/a&gt;]
 -         Drop all the content of removed &amp;quot;Checkpointed&amp;quot; 
interface
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13957&quot;&gt;FLINK-13957&lt;/a&gt;]
 -         Log dynamic properties on job submission
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13967&quot;&gt;FLINK-13967&lt;/a&gt;]
 -         Generate full binary licensing via collect_license_files.sh
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13968&quot;&gt;FLINK-13968&lt;/a&gt;]
 -         Add travis check for the correctness of the binary licensing
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13449&quot;&gt;FLINK-13449&lt;/a&gt;]
 -         Add ARM architecture to MemoryArchitecture
+&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;h2&gt;        Documentation
+&lt;/h2&gt;
+&lt;ul&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13105&quot;&gt;FLINK-13105&lt;/a&gt;]
 -         Add documentation for blink planner&amp;#39;s built-in functions
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13277&quot;&gt;FLINK-13277&lt;/a&gt;]
 -         add documentation of Hive source/sink
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13354&quot;&gt;FLINK-13354&lt;/a&gt;]
 -         Add documentation for how to use blink planner
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13355&quot;&gt;FLINK-13355&lt;/a&gt;]
 -         Add documentation for Temporal Table Join in blink planner
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13356&quot;&gt;FLINK-13356&lt;/a&gt;]
 -         Add documentation for TopN and Deduplication in blink planner
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13359&quot;&gt;FLINK-13359&lt;/a&gt;]
 -         Add documentation for DDL introduction
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13362&quot;&gt;FLINK-13362&lt;/a&gt;]
 -         Add documentation for Kafka &amp;amp; ES &amp;amp; FileSystem DDL
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13363&quot;&gt;FLINK-13363&lt;/a&gt;]
 -         Add documentation for streaming aggregate performance tunning.
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13706&quot;&gt;FLINK-13706&lt;/a&gt;]
 -         add documentation of how to use Hive functions in Flink
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13942&quot;&gt;FLINK-13942&lt;/a&gt;]
 -         Add Overview page for Getting Started section
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13863&quot;&gt;FLINK-13863&lt;/a&gt;]
 -         Update Operations Playground to Flink 1.9.0
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13937&quot;&gt;FLINK-13937&lt;/a&gt;]
 -         Fix wrong hive dependency version in documentation
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13830&quot;&gt;FLINK-13830&lt;/a&gt;]
 -         The Document about Cluster on yarn have some problems
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-14160&quot;&gt;FLINK-14160&lt;/a&gt;]
 -         Extend Operations Playground with --backpressure option
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13388&quot;&gt;FLINK-13388&lt;/a&gt;]
 -         Update UI screenshots in the documentation to the new default Web 
Frontend
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13415&quot;&gt;FLINK-13415&lt;/a&gt;]
 -         Document how to use hive connector in scala shell
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13517&quot;&gt;FLINK-13517&lt;/a&gt;]
 -         Restructure Hive Catalog documentation
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13643&quot;&gt;FLINK-13643&lt;/a&gt;]
 -         Document the workaround for users with a different minor Hive version
+&lt;/li&gt;
+&lt;li&gt;[&lt;a 
href=&quot;https://issues.apache.org/jira/browse/FLINK-13757&quot;&gt;FLINK-13757&lt;/a&gt;]
 -         Fix wrong description of &quot;IS NOT TRUE&quot; function 
documentation
+&lt;/li&gt;
+&lt;/ul&gt;
+
+</description>
+<pubDate>Fri, 18 Oct 2019 14:00:00 +0200</pubDate>
+<link>https://flink.apache.org/news/2019/10/18/release-1.9.1.html</link>
+<guid isPermaLink="true">/news/2019/10/18/release-1.9.1.html</guid>
+</item>
+
+<item>
 <title>The State Processor API: How to Read, write and modify the state of 
Flink applications</title>
 <description>&lt;p&gt;Whether you are running Apache 
Flink&lt;sup&gt;Ⓡ&lt;/sup&gt; in production or evaluated Flink as a computation 
framework in the past, you’ve probably found yourself asking the question: How 
can I access, write or update state in a Flink savepoint? Ask no more! &lt;a 
href=&quot;https://flink.apache.org/news/2019/08/22/release-1.9.0.html&quot;&gt;Apache
 Flink 1.9.0&lt;/a&gt; introduces the &lt;a 
href=&quot;https://ci.apache.org/projects/flink/flink-docs-release-1.9/de [...]
 

Reply via email to