使用InfluxDB和AWS Kinesis实现实时数据处理

导航至

想象一位大型电子商务公司的数据工程师,负责构建一个能够实时处理和分析客户点击流数据的系统。通过利用Amazon Kinesis和InfluxDB,他们可以高效有效地实现这一目标。

那么,我们如何从想法到成品解决方案?首先,我们需要了解手头的工具。为此,我们将探讨InfluxDB 3.0的优点,包括其处理大量数据用于实时分析应用的能力。然后,我们将深入了解如何通过使用Telegraf,一个开源的指标和事件收集代理,有效地使用InfluxDB与Amazon Kinesis,一个可扩展且完全管理的平台,用于摄取和处理流数据。

InfluxDB 3.0的优点

如果您有很多生成时间戳数据的设备,那么您需要一个时间序列数据库。InfluxDB 3.0经过优化,能够在实时和大规模下存储和查询数据,为您的时序数据提供无与伦比的性能。它可以每秒摄入数百万个数据点,而不会影响性能。一些额外的优势包括

  • 建立在Apache Arrow生态系统之上,它提供与开源解决方案的互操作性,包括可视化、ETL和数据科学工具。
  • 3.0版本在性能上比之前的版本有了显著的提升,如本基准测试所述。
  • 完全支持SQL,这意味着许多开发者学习曲线很小。这允许团队高效地提取见解,提高整体生产力。
  • 无限制的基数。查看链接中的视频,但基数与数据库可以处理的数据量及其性能有关。无限制的基数支持意味着InfluxDB 3.0可以处理大型、复杂的数据集,而不会影响性能。
  • 3.0可以在一个地方存储指标、跟踪和日志。

利用Amazon Kinesis与InfluxDB

AWS Kinesis在实时数据处理方面表现出色,这对于实时分析、物联网、视频流处理和其他时序用例至关重要。其可扩展性使其适用于波动很大的流量,而与AWS服务(如Lambda和S3)的无缝集成则有助于在AWS生态系统中高效处理数据。此外,Kinesis采用按使用付费的模式,具有成本效益,满足不同规模和需求的企业。

因此,我们对InfluxDB和Kinesis有了一些了解,并且知道InfluxDB可以处理我们所有的时序数据。我们如何构建我们的实时分析应用程序呢?

我们需要设置Telegraf从Amazon Kinesis流中收集数据并将其写入InfluxDB 3.0云服务器实例。幸运的是,Telegraf已经有一个Kinesis插件

在这个例子中,我们使用Amazon Kinesis数据生成器将行协议数据发送到Kinesis流。Telegraf代理使用Kinesis输入插件从流中收集数据,并使用InfluxDB输出插件将数据发送到存储。

您可以使用InfluxDB云服务器UI创建和托管Telegraf配置。上面的截图显示了在InfluxDB UI中搜索Kinesis消费者输入Telegraf插件。一旦选择该插件,您还可以直接在UI中编辑配置。

要配置Kinesis插件,请包括托管Kinesis流的区域、访问密钥、秘密密钥、流名称和分片迭代器类型。最后,指定数据格式类型。因为流中的数据是行协议,这是InfluxDB的本地输入格式,我们可以简单地选择data_format=influx

最后,我们可以在InfluxDB云服务器UI的数据资源管理器中使用SQL查询我们的数据。上面的图像显示了使用以下SQL查询查询我们数据的状态计数器的示例

sql
SELECT “status”, COUNT(*) 
FROM “kinesis”
WHERE time >= now() - intergral ‘1 hour’
GROUP BY “status”

其他资源

如果这篇博客激起了你的兴趣,你可能还会喜欢学习如何使用 AWS Fargate 与 InfluxDB。AWS Fargate 是“一种可以与 Amazon ECS 一起使用的技术,可以在不管理服务器或 Amazon EC2 实例群集的情况下运行容器。”我鼓励你查看这个存储库,它包含了一个用于创建 InfluxDB 降采样任务的容器化解决方案。你可以在 AWS Fargate 上轻松运行容器,并通过这种方式安排任务以节省成本

在这里开始使用 InfluxDB Cloud 3.0。如果你需要任何帮助,请通过我们的社区网站Slack频道联系我们。

喜欢看视频?在我们的这里观看 InfluxDB 和 AWS 的现场演示。