http://vinoyang.com/
http://wuchong.me
Apache Flink源码解析之stream-source
https://yq.aliyun.com/articles/259154
Flink - watermark
https://yq.aliyun.com/articles/73191
http://wuchong.me/blog/2016/05/04/flink-internal-how-to-build-streamgraph/
http://vinoyang.com/
https://ci.apache.org/projects/flink/flink-docs-release-1.3/internals/task_lifecycle.html
https://www.slideshare.net/dataArtisans/flink-training-system-overv
https://cwiki.apache.org/confluence/display/FLINK/Flink+Improvement+Proposals
http://www.cnblogs.com/fxjwind/p/5955990.html
http://www.cnblogs.com/fxjwind/category/778309.html
http://vinoyang.com/2016/04/14/akka-in-flink/
https://cwiki.apache.org/confluence/display/FLINK/Akka+and+Actors
Key GROUPS
https://issues.apache.org/jira/browse/FLINK-3755
https://dataartisans.github.io/flink-training/slides/flink_stream_statefulOps.pdf
http://blogoloquy.blogspot.hk/2016/02/getting-close-to-apache-flink-albeit-in.html
https://arxiv.org/pdf/1506.08603.pdf
http://flink.apache.org/news/2017/06/01/release-1.3.0.html
https://issues.apache.org/jira/browse/FLINK-5929
https://www.user.tu-berlin.de/asteriosk/assets/publications/flink-deb.pdf
https://cds.cern.ch/record/2208322/files/report.pdf
A {@link Trigger} that fires once the number of elements in a pane reaches the given count or the timeout expires, whichever happens first.
https://gist.github.com/shikhar/2cb9f1b792be31b7c16e
https://stackoverflow.com/questions/36305123/why-is-only-one-instance-of-globalwindow-used/36305578?noredirect=1#comment75752054_36305578
培训材料
https://stackoverflow.com/questions/44382329/can-we-combine-both-and-count-and-process-time-trigger-in-flink
https://github.com/apache/flink/blob/2bfead7d9bef51713ed203fa7979f71f23525733/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/runtime/triggers/StateCleaningCountTrigger.scala
how-do-i-debug-apache-flink
https://stackoverflow.com/questions/37659176/how-do-i-debug-apache-flink
https://stackoverflow.com/questions/21114066/attach-intellij-idea-debugger-to-a-running-java-process
build source code
https://github.com/apache/flink/blob/master/docs/internals/ide_setup.md#intellij-idea
https://github.com/apache/flink
windowing
https://ci.apache.org/projects/flink/flink-docs-release-1.2/dev/event_time.html
https://ci.apache.org/projects/flink/flink-docs-release-1.2/dev/event_timestamps_watermarks.html
https://stackoverflow.com/questions/36305123/why-is-only-one-instance-of-globalwindow-used/36305578?noredirect=1#comment75752054_36305578
https://stackoverflow.com/questions/36305123/why-is-only-one-instance-of-globalwindow-used
https://github.com/apache/flink/tree/master/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/windowing
https://ci.apache.org/projects/flink/flink-docs-release-1.3/dev/windows.html
https://ci.apache.org/projects/flink/flink-docs-release-1.2/dev/stream/process_function.html
https://stackoverflow.com/questions/42200261/is-there-a-way-to-define-a-flink-count-window-which-evicts-all-messages-after-a
process_function
https://ci.apache.org/projects/flink/flink-docs-release-1.2/dev/stream/state.html
https://ci.apache.org/projects/flink/flink-docs-release-1.2/dev/stream/process_function.html
https://github.com/apache/flink/blob/12b4185c6c09101b64e12a84c33dc4d28f95cff9/flink-streaming-java/src/main/java/org/apache/flink/streaming/runtime/operators/windowing/WindowOperator.java
/**
* Windows this {@code KeyedStream} into tumbling count windows.
*
* @param size The size of the windows in number of elements.
*/
public WindowedStream<T, KEY, GlobalWindow> countWindow(long size) {
https://github.com/apache/flink/blob/12b4185c6c09101b64e12a84c33dc4d28f95cff9/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/datastream/KeyedStream.java
windowing/assigners
https://github.com/apache/flink/tree/12b4185c6c09101b64e12a84c33dc4d28f95cff9/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/windowing/assigners
KeyGroupStreamPartitioner
https://github.com/apache/flink/blob/master/flink-streaming-java/src/main/java/org/apache/flink/streaming/runtime/partitioner/KeyGroupStreamPartitioner.java
KeyedStream.Java
https://github.com/apache/flink/blob/12b4185c6c09101b64e12a84c33dc4d28f95cff9/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/datastream/KeyedStream.java
KeyedStream.scala
countWindow,timeWindow,window,reduce,fold,max,min,sum,minby,
https://github.com/apache/flink/blob/54ceec16c11655da4181c0816a3b12d1c4bab465/flink-streaming-scala/src/main/scala/org/apache/flink/streaming/api/scala/KeyedStream.scala
https://github.com/apache/flink/blob/61914abffa83a55d4f0a339dbcf64c540962a9cd/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/plan/nodes/datastream/DataStreamGroupWindowAggregate.scala
WindowedStream.scala
https://github.com/apache/flink/blob/67c4be648b1f51ceadae3a9e3dd41807802a89ef/flink-streaming-scala/src/main/scala/org/apache/flink/streaming/api/scala/WindowedStream.scala
WindowedStream.Java
https://github.com/apache/flink/blob/545f50026c863c80978a2d0b9446ad6bf87a3596/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/datastream/WindowedStream.java
basic transformations
https://github.com/apache/flink/blob/545f50026c863c80978a2d0b9446ad6bf87a3596/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/datastream/KeyedStream.java
keyBy
DataStream
https://github.com/apache/flink/blob/545f50026c863c80978a2d0b9446ad6bf87a3596/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/datastream/DataStream.java
def keyBy ,map,flatMap,filter,timeWindowAll,split,print
https://github.com/apache/flink/blob/67c4be648b1f51ceadae3a9e3dd41807802a89ef/flink-streaming-scala/src/main/scala/org/apache/flink/streaming/api/scala/DataStream.scala
kafaka consumer
KafkaConsumerThread
StringGeneratingSourceFunction
package org.apache.flink.streaming.connectors.kafka.internal;
https://stackoverflow.com/questions/42200261/is-there-a-way-to-define-a-flink-count-window-which-evicts-all-messages-after-a
https://stackoverflow.com/questions/44382329/can-we-combine-both-and-count-and-process-time-trigger-in-flink