使用 Flink 向 Cassandra 写入记录的不同方式的区别
Difference between different ways of writing records to Cassandra using Flink
我浏览了很多关于 SO
的帖子和 Flink 的官方文档,但我找不到我要找的东西。我正在寻找 RichSinkFunction
、RichAsyncFunction
、AsyncIO
和 CassandraSink
之间的区别,以便使用 [=17= 在 Cassandra DB
中写入记录 faster/multithreaded
].
我的理解如下:
RichSinkFunction
- 如果实施得当,它将为您完成工作。因为它打开和关闭一次连接。
RichAsyncFunction
- 实现与 RichSinkFunction 相同。它最初以 Sync
模式工作。我可以将 executorService
用于多线程目的。另外,我看到如果考虑周到地传递容量,它可以给你更高的吞吐量。
AsyncIO
- 默认情况下不支持多线程。此外,根据其中一个 SO 答案,我们可以使用与 RichAsyncFunction
相同的 executorService
来创建文档中未提及的单独线程。
CassandraSink
- 由 Flink
提供,具有各种属性。使用 setMaxConcurrentReqeuests
会给我更快的结果吗?
为了我通过 Flink 程序寻找的目的,在提到的 类 中,什么是最好的?
我认为你可以使用 CassandraSink
,它使用 DataStax 的 java-driver(https://github.com/datastax/java-driver) 来访问 Cassandra。 Flink 使用 executeAsync
函数来获得更好的速度。如您所述,setMaxConcurrentRequests
设置可以从同一会话发送的最大请求数。
RichSinkFunction
是 Flink 中的一个基本函数。我们可以用 RichSinkFunction
实现我们自己的 Cassandra Sink,但它需要像初始化客户端、创建线程等工作
RichAsyncFunction
主要针对AsyncIO
运算符。我们仍然需要初始化 Cassandra 客户端。除此之外,我们只需要专注于实现asyncInvoke
功能和故障处理。
CassandraSink
使用 Cassandra 客户端的异步 API 实现 RichSinkFunction
。这是代码最少的最简单的异步 API。
我浏览了很多关于 SO
的帖子和 Flink 的官方文档,但我找不到我要找的东西。我正在寻找 RichSinkFunction
、RichAsyncFunction
、AsyncIO
和 CassandraSink
之间的区别,以便使用 [=17= 在 Cassandra DB
中写入记录 faster/multithreaded
].
我的理解如下:
RichSinkFunction
- 如果实施得当,它将为您完成工作。因为它打开和关闭一次连接。RichAsyncFunction
- 实现与 RichSinkFunction 相同。它最初以Sync
模式工作。我可以将executorService
用于多线程目的。另外,我看到如果考虑周到地传递容量,它可以给你更高的吞吐量。AsyncIO
- 默认情况下不支持多线程。此外,根据其中一个 SO 答案,我们可以使用与RichAsyncFunction
相同的executorService
来创建文档中未提及的单独线程。CassandraSink
- 由Flink
提供,具有各种属性。使用setMaxConcurrentReqeuests
会给我更快的结果吗?
为了我通过 Flink 程序寻找的目的,在提到的 类 中,什么是最好的?
我认为你可以使用 CassandraSink
,它使用 DataStax 的 java-driver(https://github.com/datastax/java-driver) 来访问 Cassandra。 Flink 使用 executeAsync
函数来获得更好的速度。如您所述,setMaxConcurrentRequests
设置可以从同一会话发送的最大请求数。
RichSinkFunction
是 Flink 中的一个基本函数。我们可以用 RichSinkFunction
实现我们自己的 Cassandra Sink,但它需要像初始化客户端、创建线程等工作
RichAsyncFunction
主要针对AsyncIO
运算符。我们仍然需要初始化 Cassandra 客户端。除此之外,我们只需要专注于实现asyncInvoke
功能和故障处理。
CassandraSink
使用 Cassandra 客户端的异步 API 实现 RichSinkFunction
。这是代码最少的最简单的异步 API。