【问题标题】:Can we write an AWS Lambda function to query Kinesis Streams我们可以编写一个 AWS Lambda 函数来查询 Kinesis Streams
【发布时间】:2017-04-13 23:31:52
【问题描述】:

我有 Amazon Kinesis Streams,它包含所有点击流数据,我们想编写一个 API 来查询 Kinesis Streams。

我的计划是创建一个 API 网关,它调用一个 AWS Lambda 函数,该函数将查询 Kinesis Streams 并将其返回。

是否可以使用 Lambda 来查询 Kinesis Streams,还是应该使用 Kinesis Analytics 和 Lambda?

【问题讨论】:

  • 我目前正在使用 Firehose,但它至少会在 1 分钟后将数据吐出到 S3,我想要接近实时的结果。所以我想查询流以获取实时数据。

标签: amazon-web-services aws-lambda amazon-kinesis


【解决方案1】:

您的方法不是使用 Amazon Kinesis Streams 的典型方式

正常情况是将数据发送到 Kinesis 流,该流将数据保存 24 小时(但最多可配置为 7 天)。然后,您的应用程序可以从流中提取数据并对其进行处理——实时更新某些内容或将信息存储在数据库中。事实上,Amazon Kinesis Firehose 可以自动将传入数据存储到 Amazon S3、Amazon Redshift 或 Amazon Elasticsearch Service。

因此,流被处理而不是查询。只需将它们视为可重播队列(而不是数据库)。

或者,只要有新消息到达流中,您就可以使用 Amazon Kinesis Streams trigger an AWS Lambda function。这允许对传入信息进行近乎实时的处理。


(来源:amazon.com

【讨论】:

  • 我目前正在使用 Firehose,但它会在 1 分钟后将数据吐出到 S3,我想要接近实时的结果。所以我想查询流以获取实时数据。
【解决方案2】:

您可以通过基于流的模型将 AWS Kinesis 与 Lambda 结合使用。 AWS Lambda 将自己轮询 Kinesis 流并从 Kinesis 获取记录数(由您配置)。

这里有更多信息:http://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html

【讨论】:

    【解决方案3】:

    使用 Firehose 之类的工具,然后将其发送到 Elasticsearch,然后您可以使用它来查询数据。 Kinesis 流就像一个临时缓冲区,用于保留数据,直到您可以对其执行其他操作,例如将其加载到数据存储中。

    请参阅下面我的评论,您可以将 Kinesis Analytics 用于您想做的事情。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-26
    • 1970-01-01
    • 2020-09-18
    • 2011-05-14
    • 2016-04-10
    • 2021-04-20
    • 2012-07-04
    相关资源
    最近更新 更多