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/