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 的资源,包括
- InfluxDB 的 Quix 社区插件:构建您自己的流式任务引擎:一篇博客文章,详细介绍了 Quix 的每个 InfluxDB v3 插件的功能,并提供了一个您可以亲自尝试的用例。
- 使用 Python、Quix 和 InfluxDB 简化流处理:一个点播网络研讨会,解释了如何在 Quix 中使用 InfluxDB 快速部署生产就绪型应用程序以进行实时分析。
- 使用 Quix 和 InfluxDB 拯救假期:OpenTelemetry 异常检测故事:一个点播网络研讨会,内容是关于使用 OpenTelemetry、Quix 和 InfluxDB 构建可扩展的时间序列数据管道。此演示仓库还介绍了对 OTEL 数据执行异常检测。
- quix-anomaly-detection-example:一个仓库,其中包含如何将 Quix 与 InfluxDB 结合使用以执行异常检测的示例。
Mage.ai
Mage 是一个用于转换和集成数据的开源数据管道工具。本质上,它是 Apache Airflow 的开源替代方案。它还包含一个 UI,简化了 ETL 创建过程。Mage 清楚地记录了如何使用 Terraform 和 Helm Charts 在 AWS、Azure、DigitalOcean 和 GCP 上部署。
总结一下,使用 Mage 的一些优势包括
- Mage 是开源的。
- Mage 具有以下功能
- 编排:计划和管理数据管道以实现可观察性
- Notebook 编辑器:用于编码数据管道的交互式 Python、SQL 和 R 编辑器
- 数据集成:将来自第三方来源的数据与您的内部目标同步
- 流式传输:摄取和转换实时数据
- dbt: 使用 Mage 构建、运行和管理您的 dbt 模型
以下是一些开始使用 Mage 和 InfluxDB 3.0 的资源,包括
- Mage.ai for Tasks with InfluxDB:一篇博客文章,重点介绍了如何使用 Mage 和 InfluxDB v3 设置简单的降采样任务。
- Mage for Anomaly detection with InfluxDB and Half-space Trees:一篇关于使用 Mage 和 InfluxDB v3 执行异常检测的博客文章。
- ETL Made Easy: Best Practices for Using InfluxDB and Mage.ai:一个点播网络研讨会,内容是关于将 Mage 用作 InfluxDB 的 ETL 工具的最佳实践——包括使用 Mage 和 InfluxDB v3 进行异常检测的演示。
- Mage 文档
- Mage_Demo:一个容器化仓库,重点介绍了异常检测用例。
AWS Fargate
AWS Fargate 是一种用于容器的无服务器计算引擎,可与 Amazon Elastic Container Service (ECS) 和 Amazon Elastic Kubernetes (EKS) 配合使用。借助 Fargate,您可以运行容器,而无需预置、配置或扩展虚拟机集群。它还支持灵活的资源管理和配置。这使您可以微调容器性能,使 Fargate 成为复杂数据处理的理想选择。
总结一下,使用 AWS Fargate 的一些优势包括
- 无服务器的简洁性:Fargate 抽象了底层基础设施,使开发人员无需担心预置、扩展或管理 EC2 实例即可部署容器。
- 成本效率:Fargate 根据容器消耗的资源向用户收费,从而通过消除维护闲置 EC2 实例的需求来节省成本。
以下是一些开始使用 AWS Fargate 和 InfluxDB 3.0 的资源,包括
- ricks-downsampler:一个仓库,其中包含一个容器化的降采样器,其中包含调度选项和一些监控。
- Saving AWS Costs by using Fargate Scheduling:一篇博客文章,比较了与不同大小和频率的工作负载相关的成本。
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(第 1 部分):关于 InfluxDB 3.0 Python 客户端库功能的两部分博客的第一部分。
- 客户端库深入研究:Python(第 2 部分):关于 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 频道联系我们。