2

这是一个有点浅层次的问题。但是,我对这三项服务感到困惑。

我了解 KPL 产生快速数据,而 KCL 使用 Kinesis 产生的快速数据。但是,我不明白的是,如果 KPL 和 KCL 组成这一对,我们需要 AWS Kinesis 做什么?

另一种看待它的方式:如果 AWS Kinesis 可以产生快速数据而 KCL 可以使用它,那么我们需要 KPL 做什么?

非常感谢任何澄清的答案。

4

2 回答 2

3

Kinesis Producer Library (KPL) 将用户格式化的小型记录聚合成最大 1 MB 的较大记录,以更好地利用 Amazon Kinesis Data Streams 吞吐量。

而 KCL for Java 支持分解这些记录。

更多信息请参考:https ://docs.aws.amazon.com/streams/latest/dev/shared-throughput-kcl-consumers.html

一个问题是,KCL 和 KPL 主要关注 Java,但大多数数据科学家都喜欢 Python。始终可以在 Java MultiLangDaemon 之上创建 amazon-kinesis-client-python 库以进行进程间通信,但不建议这样做。

于 2020-09-13T11:08:00.727 回答
3

AWS Kinesis是一个非常广泛的平台。粗略地说,您可以将 AWS Kinesis 视为:Kinesis Data Streams + Kinesis Video Streams + Kinesis Firehose + Kinesis Analytics。(每个人都有自己的目的)。

More detail here: 
 https://aws.amazon.com/kinesis/

现在,让我们以Kinesis Data Streams为例: 如果您是一名开发人员并且您需要以编程方式(即 SDK)将数据馈送到特定的Kinesis Data Stream 怎么办?这就是KPL发挥作用的地方。您使用 KPL 将数据提供给该流。

与 KCL 类似的故事:

如果您是开发人员并且想要从该 DATA STREAM 中获取数据(“使用”),您可以使用 KCL。

简而言之: AWS Kinesis 是一个巨大的平台,KCLKPL服务于特定目的。

于 2020-06-03T06:14:16.647 回答