InfluxDB 3.0 任务资源
作者:Anais Dotis-Georgiou / 开发者
2024年2月5日
导航至
如果您是 InfluxDB v2 用户,可能会好奇 InfluxDB 3.0 中的任务引擎发生了什么。答案是,我们为了支持与其他任务工具的更广泛互操作性而移除了它。V3 允许用户利用任何现有的 ETL 工具,而不是被限制在 Flux 任务引擎的有限功能中。
此外,InfluxDB 3.0 优先考虑查询和写入性能,使您能够自信地轻松查询、转换和写入大量数据集。然而,更多的选择需要更多的初始决策。在这篇文章中,我们将重点介绍一些第三方 ETL 工具,并描述每个工具的优势。这不是对每个现有 ETL 工具的详尽比较。相反,我将重点关注我们已有实例的工具。
注意:所有这些方法和工具都使用InfluxDB v3 Python客户端库。此客户端库包含用于查询和写入Pandas和Polars的方法,以简化ETL过程,并使用户能够访问针对该工作负载可用的许多Python库。
Quix
Quix是使用Kafka和Python构建、部署和监控事件流应用程序的完整解决方案。Quix专门用于处理时间序列数据,并提供云和本地化产品。其用户界面简化了事件流和ETL过程的处理、构建和维护。
Quix的一些优势包括
- 插件用于查询和写入InfluxDB v3实例的数据,以及将InfluxDB v3集成到您的Quix管道中。
- Quix可以编排任何容器。
以下是一些关于如何开始使用Quix和InfluxDB 3.0的资源
- Quix社区插件用于InfluxDB:构建您自己的流任务引擎:一篇博客文章,详细介绍了每个InfluxDB v3插件的功能,并提供了一个您可以亲自尝试的用例。
- 使用Python、Quix和InfluxDB简化流处理:一个按需网络研讨会,解释了如何使用InfluxDB为实时分析快速部署Quix中的生产级应用程序。
- Quix和InfluxDB:OpenTelemetry异常检测故事:一个按需网络研讨会,关于使用OpenTelemetry、Quix和InfluxDB构建可扩展的时间序列数据管道。此演示存储库还涵盖了在OTEL数据上执行异常检测。
- quix-anomaly-detection-example:一个存储库,包含如何使用Quix与InfluxDB进行异常检测的示例。
Mage.ai
Mage是一个开源数据管道工具,用于转换和集成数据。本质上,它是对Apache Airflow的开源替代品。它还包含一个用户界面,简化了ETL创建过程。Mage明确记录了如何使用Terraform和Helm图表在AWS、Azure、DigitalOcean和GCP上部署。
总结一下,使用Mage的一些优势包括
- Mage是开源的。
- Mage具有以下功能
以下是一些关于如何开始使用Mage和InfluxDB 3.0的资源
- Mage.ai用于InfluxDB任务:一篇博客文章,强调如何使用Mage和InfluxDB v3设置简单的降采样任务。
- Mage用于InfluxDB和半空间树进行异常检测:一篇关于使用Mage和InfluxDB v3进行异常检测的博客文章。
- ETL简化:使用InfluxDB和Mage.ai的最佳实践:一个按需网络研讨会,介绍了使用Mage作为ETL工具与InfluxDB的最佳实践——包括使用Mage和InfluxDB v3进行异常检测的演示。
- Mage文档
- Mage_Demo:一个容器化的存储库,突出显示异常检测用例。
AWS Fargate
AWS Fargate 是一种无服务器计算引擎,适用于容器,可与 Amazon Elastic Container Service (ECS) 和 Amazon Elastic Kubernetes (EKS) 一起使用。使用 Fargate,您可以在无需配置、配置或扩展虚拟机集群的情况下运行容器。它还支持灵活的资源管理和配置。这允许您微调容器性能,使其成为复杂数据处理的理想选择。
总结来说,使用 AWS Fargate 的一些优点包括
- 无服务器简单性:Fargate 抽象了底层基础设施,使开发者能够在不担心配置、扩展或管理 EC2 实例的情况下部署容器。
- 成本效益:Fargate 根据容器消耗的资源向用户收费,通过消除维护空闲 EC2 实例的需要来节省成本。
以下是一些 AWS Fargate 和 InfluxDB 3.0 入门的资源
- ricks-downsampler:一个包含完整调度选项和一些监控功能的容器化下采样器仓库。
- 通过使用 Fargate 调度节省 AWS 成本:一篇比较不同大小和频率的工作负载相关成本的博客文章。
FaaS 工具
函数即服务 (FaaS) 工具是事件驱动的无服务器计算平台。例如,包括 AWS Lambda、Google Cloud Functions 和 Azure Functions。使用 FaaS 工具的一些优点和考虑因素包括
- 它们允许开发者在不配置或管理服务器的情况下运行代码。
- 它们包括自动扩展。
- 它们允许用户专注于开发复杂的分析和数据科学逻辑。然而,对计算环境的细粒度控制较少。
- 如果任务是不定时的或具有可变负载,FaaS 不会对空闲计算资源收费。如果工作负载是稳定的,Fargate(见下文)可能是更具成本效益的选择。同样,如果您的任务具有较长的执行时间(例如,大于 10 分钟),Fargate 可能是最佳选择。
虽然 InfluxData 尚未创建与 FaaS 工具相关的 PoC 列表,但您将需要利用 InfluxDB v3 Python 客户端库来查询、转换和写入数据。以下是一些有关如何开始使用 Python 客户端库的资源
- InfluxDB 3.0 Python 客户端
- 客户端库深度解析:Python(第一部分):关于 InfluxDB 3.0 Python 客户端库功能的两篇博客文章的第一部分。
- 客户端库深度解析:Python(第二部分):关于 InfluxDB 3.0 Python 客户端库功能的两篇博客文章的第二部分。
- 写入 Polars:如何写入 Polars 的 ReadME.md。要查询并返回一个 Polar DataFrame,请使用以下代码
python
import polars as pl
from influxdb_client_3 import InfluxDBClient3
client = InfluxDBClient3(
token="",
host="eu-central-1-1.aws.cloud2.influxdata.com",
org="6a841c0c08328fb1")
sql = 'SELECT * FROM caught LIMIT 10'
table = client.query(database="pokemon-codex", query=sql, language='sql', mode='all')
df = pl.from_arrow(table)
有问题?
我希望这篇帖子能帮助您开始将任务迁移到 InfluxDB 3.0 并利用其增强的互操作性、ETL 和特定于数据管道的工具。在这里开始使用 InfluxDB Cloud 3.0。如果您需要帮助,请通过我们的 社区网站 或 Slack 频道联系。