天天看點

31.DataStream API(Connectors)之Overview

flink 1.9

flink内置的source和sink(Predefined Sources and Sinks)

在Flink中内置了一些常用的資料源source和sink算子。内置的資料源source(predefined data sources)包括從檔案files、目錄directories和套接字 sockets中讀取資料,以及從集合collections 和疊代器iterators中擷取資料。内置的資料接收器sink(predefined data sinks)支援寫檔案files、标準輸出stdout和stderr以及套接字sockets。

Bundled Connectors捆綁連接配接器、

flink目前支援的連接配接器:

  • Apache Kafka (source/sink)
  • Apache Cassandra (sink)
  • Amazon Kinesis Streams (source/sink)
  • Elasticsearch (sink)
  • Hadoop FileSystem (sink)
  • RabbitMQ (source/sink)
  • Apache NiFi (source/sink)
  • Twitter Streaming API (source)
  • Google PubSub (source/sink)

注意:要在flink應用程式中使用上述連接配接器,通常需要引入第三方元件,例如資料存儲或消息隊列伺服器。還要注意,雖然本節中列出的流連接配接器streaming connectors 是Flink架構的一部分,并且包含在源代碼版本中,但是它們不包含在二進制代碼的發行版中。有關進一步的說明,可以在相應的章節中找到。

Apache Bahir中的連接配接器

Flink的其他流連接配接器正在通過 Apache Bahir釋出,包括:

  • Apache ActiveMQ (source/sink)
  • Apache Flume (sink)
  • Redis (sink)
  • Akka (sink)
  • Netty (source)

連接配接到Flink的其他方法

通過異步I/O來豐富資料Data Enrichment via Async I/O

使用連接配接器connector 并不是Flink擷取外部資料的唯一方法。常見的一種方式是在 Map 或者FlatMap中來查詢外部資料庫或web服務,進而豐富主資料流。Flink為異步I/O(Asynchronous I/O ).提供了一個API,使高效、健壯地完成這種充實變得更加容易。

Queryable State

當Flink應用程式将大量資料推入外部資料存儲時,這可能成為I/O瓶頸。如果所涉及的資料的讀操作比寫操作少得多,那麼外部應用程式可以從Flink中提取它需要的資料,這是一種更好的方法。可查詢狀态Queryable State接口允許根據需要查詢Flink管理的狀态,進而實作這一點。

https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/connectors/

繼續閱讀