InfluxDB 3.0 任务资源

导航至

如果您是 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的资源

Mage.ai

Mage是一个开源数据管道工具,用于转换和集成数据。本质上,它是对Apache Airflow的开源替代品。它还包含一个用户界面,简化了ETL创建过程。Mage明确记录了如何使用Terraform和Helm图表在AWS、Azure、DigitalOcean和GCP上部署。

总结一下,使用Mage的一些优势包括

  • Mage是开源的。
  • Mage具有以下功能
    • 编排:安排和管理数据管道以实现可观察性
    • 笔记本编辑器:用于编码数据管道的交互式Python、SQL和R编辑器
    • 数据集成:同步来自第三方源的数据与您的内部目标
    • 流处理:摄取和转换实时数据
    • dbt: 使用Mage构建、运行和管理您的dbt模型

以下是一些关于如何开始使用Mage和InfluxDB 3.0的资源

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 入门的资源

FaaS 工具

函数即服务 (FaaS) 工具是事件驱动的无服务器计算平台。例如,包括 AWS Lambda、Google Cloud Functions 和 Azure Functions。使用 FaaS 工具的一些优点和考虑因素包括

  • 它们允许开发者在不配置或管理服务器的情况下运行代码。
  • 它们包括自动扩展。
  • 它们允许用户专注于开发复杂的分析和数据科学逻辑。然而,对计算环境的细粒度控制较少。
  • 如果任务是不定时的或具有可变负载,FaaS 不会对空闲计算资源收费。如果工作负载是稳定的,Fargate(见下文)可能是更具成本效益的选择。同样,如果您的任务具有较长的执行时间(例如,大于 10 分钟),Fargate 可能是最佳选择。

虽然 InfluxData 尚未创建与 FaaS 工具相关的 PoC 列表,但您将需要利用 InfluxDB v3 Python 客户端库来查询、转换和写入数据。以下是一些有关如何开始使用 Python 客户端库的资源

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 频道联系。