文档说明

开始查询数据

InfluxDB 集群支持多种查询语言

  • SQL:由 Apache Arrow DataFusion 查询引擎提供支持的传统 SQL。支持的 SQL 语法类似于 PostgreSQL。
  • InfluxQL:一种类似于 SQL 的查询语言,专为查询存储在 InfluxDB 中的时间序列数据而设计。

本教程将引导您了解在 InfluxDB 中查询数据的基础知识,并侧重于使用 SQL 查询您的时序数据。InfluxDB SQL 实现使用 Arrow Flight SQL 构建,这是一个使用 Arrow 内存格式和 Flight RPC 框架与 SQL 数据库交互的协议。它利用 Apache Arrow 的性能和 SQL 的简单性。

本教程本节中的示例查询了 入门 数据库 中在 入门写入数据 部分写入的数据。

执行查询的工具

InfluxDB 集群支持许多不同的查询数据工具,包括

* 本教程涵盖

/api/v2/query 不受支持

API 端点 /api/v2/query 及其相关工具,例如 influx 命令行界面和 InfluxDB v2 客户端库,在 InfluxDB 集群中不支持。

SQL 查询基础

InfluxDB 集群 SQL 实现由 Apache Arrow DataFusion 查询引擎提供支持,它提供类似于 PostgreSQL 的 SQL 语法。

这是对为 InfluxDB 编写 SQL 查询的简要介绍。有关更多详细信息,请参阅使用 SQL 查询数据

InfluxDB SQL 查询通常包括以下子句

* 必需
  • * SELECT:识别要查询的特定字段和标签,或使用通配符别名(*)从测量中选择所有字段和标签。
  • * FROM:识别要查询的测量。如果来自 SQL 背景,InfluxDB 测量相当于关系表。
  • WHERE:仅返回符合定义条件的数据,例如在特定时间范围内,包含特定的标签值等。
  • GROUP BY:将数据分组到 SQL 分区中,并对每个组应用聚合或选择函数。
-- Return the average temperature and humidity within time bounds from each room
SELECT
  avg(temp),
  avg(hum),
  room
FROM
  home
WHERE
  time >= '2022-01-01T08:00:00Z'
  AND time <= '2022-01-01T20:00:00Z'
GROUP BY
  room

示例 SQL 查询

选择测量中的所有数据
SELECT * FROM home
选择在时间边界内的测量中的所有数据
SELECT
  *
FROM
  home
WHERE
  time >= '2022-01-01T08:00:00Z'
  AND time <= '2022-01-01T20:00:00Z'
选择相对时间边界内的特定字段
SELECT temp FROM home WHERE time >= now() - INTERVAL '1 day'
从测量中选择特定字段和标签
SELECT temp, room FROM home
基于标签值选择数据
SELECT * FROM home WHERE room = 'Kitchen'
基于标签值在时间边界内选择数据
SELECT
  *
FROM
  home
WHERE
  time >= '2022-01-01T08:00:00Z'
  AND time <= '2022-01-01T20:00:00Z'
  AND room = 'Living Room'
通过应用基于间隔的聚合进行数据下采样
SELECT
  DATE_BIN(INTERVAL '1 hour', time, '2022-01-01T00:00:00Z'::TIMESTAMP) as _time,
  room,
  selector_max(temp, time)['value'] AS 'max temp'
FROM
  home
GROUP BY
  _time,
  'max temp',
  room
ORDER BY room, _time

执行 SQL 查询

开始使用以下工具之一查询存储在 InfluxDB 集群数据库中的数据

  • influxctl 命令行界面:使用 influxctl 命令行界面从您的命令行查询数据。
  • influx3 命令行界面:使用基于 Python 的 influx3 命令行界面从您的终端命令行查询数据。
  • InfluxDB v3 客户端库:使用特定语言的客户端(Python、Go 等)在终端或自定义代码中执行查询。
  • Grafana:使用 FlightSQL 数据源插件查询、连接和可视化数据。

对于此示例,使用以下查询选择在 2022-01-01T08:00:00Z2022-01-01T20:00:00Z 之间写入 get-started 数据库的所有数据。

SELECT
  *
FROM
  home
WHERE
  time >= '2022-01-01T08:00:00Z'
  AND time <= '2022-01-01T20:00:00Z'

本入门教程中的某些示例假设您的 InfluxDB 凭据(URLtoken)由 环境变量 提供。

使用 influxctl query 命令查询您 InfluxDB 集群中的 家庭传感器样本数据。提供以下内容

  • 要查询的数据库名称,使用 --database 标志
  • 数据库令牌,使用 --token 标志(使用在 入门–设置 InfluxDB 集群中创建的 INFLUX_TOKEN 环境变量)
  • SQL 查询
influxctl query \
  --database 
get-started
\
--token $INFLUX_TOKEN \ "SELECT * FROM home WHERE time >= '2022-01-01T08:00:00Z' AND time <= '2022-01-01T20:00:00Z'"

使用存储的凭据进行查询

可选地,您可以在 influxctl连接配置文件中配置 databasetoken 查询凭据。

命令行标志 --database--token 会覆盖配置文件中的凭证。

使用 SQL 和 influx3 命令行界面 查询 InfluxDB v3。

以下步骤包括设置 Python 虚拟环境,这部分已在 开始写入数据 部分介绍。 如果您的项目虚拟环境已经运行,请跳到步骤 3。

  1. 为您的项目创建一个目录并切换到该目录

    mkdir influx3-query-example && cd $_
    
  2. 要创建和激活 Python 虚拟环境,请运行以下命令

    python -m venv envs/virtual-env && . envs/virtual-env/bin/activate
    
  3. 安装 CLI 包(已在 写入数据部分 中安装)。

    pip install influxdb3-python-cli
    

    安装 influxdb3-python-cli 也会安装用于处理查询返回的 Arrow 数据的库 pyarrow

  4. 创建 config.json 配置文件。

    influx3 config \
      --name="config-clustered" \
      --database="get-started" \
      --host="cluster-host.com" \
      --token="DATABASE_TOKEN" \
      --org="ORG_ID"
    

    替换以下内容

    • DATABASE_TOKEN:一个具有对 get-started 数据库读取访问权限的 数据库令牌
    • ORG_ID:任何非空字符串(InfluxDB 会忽略此参数,但客户端需要它)
  5. 输入 influx3 sql 命令和您的 SQL 查询语句。

    influx3 sql "SELECT *
                FROM home
                WHERE time >= '2022-01-01T08:00:00Z'
                AND time <= '2022-01-01T20:00:00Z'"
    

influx3 将查询结果显示在您的终端中。

使用 influxdb_client_3 客户端库模块将 InfluxDB 集群集成到您的 Python 代码中。客户端库支持将数据写入 InfluxDB 以及使用 SQL 或 InfluxQL 查询数据。

以下步骤包括设置 Python 虚拟环境,这部分已在 开始写入数据 部分介绍。 如果您的项目虚拟环境已经运行,请跳到步骤 3。

  1. 写入数据部分 中创建的 influxdb_py_client 模块目录中打开终端

    1. 要创建和激活您的 Python 虚拟环境,请在终端中输入以下命令

      python -m venv envs/virtual-env && . ./envs/virtual-env/bin/activate
      
    2. 安装以下依赖项

      * 已在 写入数据部分 中安装

      • influxdb3-python*:提供 InfluxDB influxdb_client_3 Python 客户端库模块,并安装用于处理查询返回的 Arrow 数据的 pyarrow
      • pandas:提供用于分析和操作数据的 pandas 函数、模块和数据结构
      • tabulate:提供用于格式化表格数据的 tabulate 函数。pandas 需要此模块以将数据格式化为 Markdown

      在终端中输入以下命令

      pip install influxdb3-python pandas tabulate
      
    3. 在终端或编辑器中创建一个新的代码文件——例如:query.py

  2. query.py 中,输入以下示例代码

    from influxdb_client_3 import InfluxDBClient3
    
    client = InfluxDBClient3(
        host=f"cluster-host.com",
        token=f"DATABASE_TOKEN",
        database=f"get-started",
    )
    
    sql = '''
      SELECT
        *
      FROM
        home
      WHERE
        time >= '2022-01-01T08:00:00Z'
        AND time <= '2022-01-01T20:00:00Z'
    '''
    
    table = client.query(query=sql)
    assert table['room'], "Expect table to have room column."
    print(table.to_pandas().to_markdown())
    

重要:如果使用 Windows,请指定 Windows 证书路径

示例代码执行以下操作

  1. influxdb_client_3 模块导入 InfluxDBClient3 构造函数。

  2. 调用 InfluxDBClient3() 构造函数方法,使用凭证实例化一个具有以下凭证的 InfluxDB client

    • host:InfluxDB集群URL(不包含https://协议或尾随斜杠)
    • token:具有对指定数据库读取访问权限的数据库令牌请将其存储在密钥存储库或环境变量中,以避免暴露原始令牌字符串。
    • database:要查询的InfluxDB集群数据库的名称
  3. 定义要执行的SQL查询,并将其分配给query变量。

  4. 调用client.query()方法并使用SQL查询。 query()方法向InfluxDB发送Flight请求,查询数据库,从端点检索结果数据,然后返回分配给table变量的pyarrow.Table

  5. 调用to_pandas()方法将Arrow表转换为pandas.DataFrame

  6. 调用pandas.DataFrame.to_markdown()方法将DataFrame转换为markdown表格。

  7. 调用print()方法将markdown表格打印到stdout。

  8. 输入以下命令以运行程序并查询您的InfluxDB集群

    python query.py
    

查看返回的markdown表格

  1. 写入数据部分中您创建的influxdb_go_client目录下,创建一个名为query.go的新文件。

  2. query.go中,输入以下示例代码

    package main
    
    import (
      "context"
      "fmt"
      "io"
      "os"
      "time"
      "text/tabwriter"
    
      "github.com/apache/arrow/go/v13/arrow"
      "github.com/InfluxCommunity/influxdb3-go/influxdb3"
    )
    
    func Query() error {
    
      // INFLUX_TOKEN is an environment variable you created
      // for your database read token.
      token := os.Getenv("INFLUX_TOKEN")
    
      // Instantiate the client.
      client, err := influxdb3.New(influxdb3.ClientConfig{
        Host:     "https://cluster-host.com",
        Token:    token,
        Database: "get-started",
      })
    
      // Close the client when the function returns.
      defer func(client *influxdb3.Client) {
        err := client.Close()
        if err != nil {
          panic(err)
        }
      }(client)
    
      // Define the query.
      query := `SELECT *
        FROM home
        WHERE time >= '2022-01-01T08:00:00Z'
        AND time <= '2022-01-01T20:00:00Z'`
    
      // Execute the query.
      iterator, err := client.Query(context.Background(), query)
    
      if err != nil {
        panic(err)
      }
    
      w := tabwriter.NewWriter(io.Discard, 4, 4, 1, ' ', 0)
      w.Init(os.Stdout, 0, 8, 0, '\t', 0)
      fmt.Fprintln(w, "time\troom\ttemp\thum\tco")
    
      // Iterate over rows and prints column values in table format.
      for iterator.Next() {
        row := iterator.Value()
        // Use Go arrow and time packages to format unix timestamp
        // as a time with timezone layout (RFC3339).
        time := (row["time"].(arrow.Timestamp)).
          ToTime(arrow.TimeUnit(arrow.Nanosecond)).
          Format(time.RFC3339)
        fmt.Fprintf(w, "%s\t%s\t%d\t%.1f\t%.1f\n",
          time, row["room"], row["co"], row["hum"], row["temp"])
      }
    
      w.Flush()
      return nil
    }
    

    示例代码执行以下操作

    1. 导入以下包

      • context
      • fmt
      • io
      • os
      • text/tabwriter
      • github.com/apache/arrow/go/v13/arrow
      • github.com/InfluxCommunity/influxdb3-go/influxdb3
    2. 定义一个Query()函数,它执行以下操作

      1. 使用以下InfluxDB凭证参数实例化influx.Client

        • Host:您的InfluxDB集群URL
        • Database:您的InfluxDB集群数据库的名称
        • Token:具有对指定数据库读取权限的数据库令牌请将其存储在密钥存储库或环境变量中,以避免暴露原始令牌字符串。
      2. 定义一个延迟函数,在执行后关闭客户端。

      3. 定义一个用于SQL查询的字符串变量。

      4. 调用influxdb3.Client.Query(sql string)方法并将SQL字符串传递给查询InfluxDB。 Query(sql string)方法返回响应流中的数据iterator

      5. 遍历行,将时间戳格式化为RFC3339时间戳,并以表格格式打印数据到stdout。

  3. 在您在写入数据部分中创建的main.go文件中,插入调用Query()函数的代码–例如

    package main
    
    func main() {	
      WriteLineProtocol()
      Query()
    }
    
  4. 在您的终端中,输入以下命令以安装必要的包、构建模块并运行程序

    go mod tidy && go run influxdb_go_client
    

    程序执行main()函数,写入数据并将查询结果打印到控制台。

本教程假设您已安装Node.js和npm,并按写入数据部分中的说明创建了influxdb_js_client npm项目。

  1. 在您的终端或编辑器中,切换到您在写入数据部分中创建的influxdb_js_client目录。

  2. 如果您尚未安装,请将@influxdata/influxdb3-client JavaScript客户端库作为项目依赖项安装

    npm install --save @influxdata/influxdb3-client
    
  3. 创建一个名为query.mjs的文件。 .mjs扩展名告诉Node.js解释器您正在使用ES6模块语法

  4. query.mjs 中,输入以下示例代码

    // query.mjs
    import {InfluxDBClient} from '@influxdata/influxdb3-client'
    import {tableFromArrays} from 'apache-arrow';
    
    /**
    * Set InfluxDB credentials.
    */
    const host = "https://cluster-host.com";
    const database = 'get-started';
    /**
    * INFLUX_TOKEN is an environment variable you assigned to your
    * database READ token value.
    */
    const token = process.env.INFLUX_TOKEN;
    
    /**
    * Query InfluxDB with SQL using the JavaScript client library.
    */
    export async function querySQL() {
      /**
      * Instantiate an InfluxDBClient
      */
      const client = new InfluxDBClient({host, token})
      const sql = `
      SELECT *
      FROM home
      WHERE time >= '2022-01-01T08:00:00Z'
        AND time <= '2022-01-01T20:00:00Z'
      `
    
      const data = {time: [], room: [], co: [], hum: [], temp: []};
      const result = client.query(query, database);
    
      for await (const row of result) {
        data.time.push(new Date(row._time))
        data.room.push(row.room)
        data.co.push(row.co);
        data.hum.push(row.hum);
        data.temp.push(row.temp);
      }
    
      console.table([...tableFromArrays(data)])
    
      client.close()
    }
    

    示例代码执行以下操作

    1. 导入以下内容

      • InfluxDBClient
      • tableFromArrays 函数
    2. 调用 new InfluxDBClient() 并传递一个 ClientOptions 对象以实例化一个配置了 InfluxDB 凭据的客户端。

      • host:您的 InfluxDB 集群 URL
      • token:一个具有查询所需数据库的读取权限的 数据库令牌将其存储在密钥存储或环境变量中,以避免暴露原始令牌字符串。
    3. 定义一个字符串变量(sql)用于 SQL 查询。

    4. 定义一个对象(data),以列名作为键,以数组值作为存储行数据。

    5. 调用 InfluxDBClient.query() 方法,并传递以下参数

      • sql:要执行的查询
      • database:要查询的InfluxDB集群数据库的名称

      query() 返回一个行向量的流。

    6. 遍历行并将列数据添加到 data 中的数组。

    7. data 传递给 Arrow 的 tableFromArrays() 函数,将数组格式化为表格,然后将结果传递给 console.table() 方法以在终端输出高亮表格。

  5. index.mjs 中(在 写入数据部分 中创建),输入以下示例代码以导入模块和调用函数

    // index.mjs
    import { writeLineProtocol } from "./write.mjs";
    import { querySQL } from "./query.mjs";
    
    /**
    * Execute the client functions.
    */
    async function main() {
      /** Write line protocol data to InfluxDB. */
      await writeLineProtocol();
      /** Query data from InfluxDB using SQL. */
      await querySQL();
    }
    
    main();
    
  6. 在您的终端中,执行 index.mjs 以写入和查询 InfluxDB 集群

    node index.mjs
    
  1. 在您在 写入数据部分 中创建的 influxdb_csharp_client 目录中,创建一个名为 Query.cs 的新文件。

  2. Query.cs 中,输入以下示例代码

    // Query.cs
    
    using System;
    using System.Threading.Tasks;
    using InfluxDB3.Client;
    using InfluxDB3.Client.Query;
    
    namespace InfluxDBv3;
    
    public class Query
    {
      /**
        * Queries an InfluxDB database using the C# .NET client
        * library.
        **/
      public static async Task QuerySQL()
      {
        /** INFLUX_TOKEN is an environment variable you assigned to your
          * database READ token value.
          **/
        string? token = System.Environment
            .GetEnvironmentVariable("INFLUX_TOKEN");
    
        /**
          * Instantiate the InfluxDB client with credentials.
          **/
        using var client = new InfluxDBClient(
            "https://cluster-host.com", token: token, database: database);
    
        const string sql = @"
          SELECT time, room, temp, hum, co
          FROM home
          WHERE time >= '2022-01-01T08:00:00Z'
          AND time <= '2022-01-01T20:00:00Z'
        ";
    
        Console.WriteLine("{0,-30}{1,-15}{2,-15}{3,-15}{4,-15}",
            "time", "room", "co", "hum", "temp");
    
        await foreach (var row in client.Query(query: sql))
        {
          {
            /** 
              * Iterate over rows and print column values in table format.
              * Format the timestamp as sortable UTC format.
              */
            Console.WriteLine("{0,-30:u}{1,-15}{4,-15}{3,-15}{2,-15}",
                row[0], row[1], row[2], row[3], row[4]);
          }
        }
        Console.WriteLine();
      }
    }
    

    示例代码执行以下操作

    1. 导入以下类

      • System
      • System.Threading.Tasks;
      • InfluxDB3.Client;
      • InfluxDB3.Client.Query;
    2. 定义一个具有 QuerySQL() 方法的 Query 类,该方法执行以下操作

      1. 调用 new InfluxDBClient() 构造函数以实例化一个配置了 InfluxDB 凭据的客户端。

        • host:您的 InfluxDB 集群 URL。
        • database:要查询的InfluxDB集群数据库的名称
        • token:一个具有读取指定数据库权限的 数据库令牌将其存储在密钥存储或环境变量中,以避免暴露原始令牌字符串。
      2. 定义一个用于SQL查询的字符串变量。

      3. 调用 InfluxDBClient.Query() 方法以发送包含 SQL 字符串的查询请求。 Query() 返回从响应流中作为二维数组的行批,其中每行是一个值数组。

      4. 遍历行并将数据以表格格式打印到标准输出。

  3. 在您的编辑器中打开您在 写入数据部分 中创建的 Program.cs 文件,并插入调用 Query() 函数的代码 - 例如

    // Program.cs
    
    using System;
    using System.Threading.Tasks;
    
    namespace InfluxDBv3;
    
    public class Program
    {
      public static async Task Main()
      {
        await Write.WriteLineProtocol();
        await Query.QuerySQL();
      }
    }
    
  4. 要构建和执行程序以及查询您的 InfluxDB 集群,请在您的终端中输入以下命令

    dotnet run
    

本教程假定使用 Maven 版本 3.9、Java 版本 >= 15,并在 写入数据部分 中创建的 influxdb_java_client Maven 项目中。

  1. 在您的终端或编辑器中,切换到您在 写入数据部分 中创建的 influxdb_java_client 目录。

  2. src/main/java/com/influxdbv3 目录中,创建一个名为 Query.java 的新文件。

  3. Query.java 中,输入以下示例代码

    // Query.java
    package com.influxdbv3;
    
    import com.influxdb.v3.client.InfluxDBClient;
    import java.util.stream.Stream;
    
    /**
      * Queries an InfluxDB database using the Java client
      * library.
      **/
    public final class Query {
    
        private Query() {
            //not called
        }
    
        /**
        * @throws Exception
        */
        public static void querySQL() throws Exception {
            /**
            * Query using SQL.
            */
    
            /** Set InfluxDB credentials. **/
            final String host = "https://cluster-host.com";
            final String database = "get-started";
    
            /** INFLUX_TOKEN is an environment variable you assigned to your
              * database READ token value.
              **/
            final char[] token = (System.getenv("INFLUX_TOKEN")).
            toCharArray();
    
            try (InfluxDBClient client = InfluxDBClient.getInstance(host,
            token, database)) {
                String sql =
                    """
                    SELECT time, room, temp, hum, co
                    FROM home
                    WHERE time >= '2022-01-01T08:00:00Z'
                    AND time <= '2022-01-01T20:00:00Z'""";
    
                String layoutHead = "| %-16s | %-12s | %-6s | %-6s | %-6s |%n";
                System.out.printf(
                "--------------------------------------------------------%n");
                System.out.printf(layoutHead,
                "time", "room", "co", "hum", "temp");
                System.out.printf(
                "--------------------------------------------------------%n");
                String layout = "| %-16s | %-12s | %-6s | %.1f | %.1f |%n";
    
                try (Stream<Object[]> stream = client.query(sql)) {
                    stream.forEach(row -> 
                      System.out.printf(layout,
                      row[0], row[1], row[4], row[3], row[2])
                    );
                }
            }
        }
    }
    

    示例代码执行以下操作

    1. 分配 com.influxdbv3 包名(Maven 的 groupId)。

    2. 导入以下类

      • com.influxdb.v3.client.InfluxDBClient
      • java.util.stream.Stream
    3. 定义一个具有 querySQL() 方法的 Query 类,该方法执行以下操作

      1. 调用 InfluxDBClient.getInstance() 以实例化一个配置了 InfluxDB 凭据的客户端。

        • host:您的 InfluxDB 集群 URL
        • database:要写入的 InfluxDB 集群数据库的名称
        • token:一个具有读取指定数据库权限的 数据库令牌将其存储在密钥存储或环境变量中,以避免暴露原始令牌字符串。
      2. 定义一个字符串变量(sql)用于 SQL 查询。

      3. 定义一个 Markdown 表格格式布局,用于标题和数据行。

      4. 调用 InfluxDBClient.query() 方法以发送包含 SQL 字符串的查询请求。 query() 返回行流。

      5. 遍历行并将数据按指定布局打印到标准输出。

  4. 在您的编辑器中,打开 src/main/java/com/influxdbv3/App.java 文件,并将其内容替换为以下示例代码:

    // App.java
    
    package com.influxdbv3;
    
    /**
    * Execute the client functions.
    *
    */
    public class App {
    
        /**
        * @param args
        * @throws Exception
        */
        public static void main(final String[] args) throws Exception {
            // Write data to InfluxDB v3.
            Write.writeLineProtocol();
            // Run the SQL query.
            Query.querySQL();
        }
    }
    
    • AppWriteQuery 类属于 com.influxdbv3 包(您的项目的 groupId)。
    • App 定义了一个 main() 函数,该函数调用 Write.writeLineProtocol()Query.querySQL()
  5. 在您的终端或编辑器中,使用 Maven 安装依赖项并编译项目代码,例如

    mvn compile
    
  6. 为您的环境设置 --add-opens=java.base/java.nio=ALL-UNNAMED Java 选项。Apache Arrow Flight 库需要此设置以访问 java.nio API 包

    例如,在您的终端中输入以下命令

    Linux/MacOS

    export MAVEN_OPTS="--add-opens=java.base/java.nio=ALL-UNNAMED"
    

    Windows PowerShell

    $env:MAVEN_OPTS="--add-opens=java.base/java.nio=ALL-UNNAMED"
    
  7. 要运行应用程序以写入和查询 InfluxDB 集群,执行 App.main() –例如,使用 Maven

    mvn exec:java -Dexec.mainClass="com.influxdbv3.App"
    

查询结果

查看查询结果

恭喜! 您已经学会了使用 SQL 在 InfluxDB 中查询数据的基础知识。要深入了解所有查询 InfluxDB 集群的查询方式,请参阅文档中的 查询 InfluxDB 数据 部分。


这个页面有用吗?

感谢您的反馈!


Flux 的未来

Flux 将进入维护模式。您可以继续像现在一样使用它,而无需对代码进行任何更改。

阅读更多

InfluxDB v3 增强功能和 InfluxDB 集群现已正式发布

包括更快查询性能和管理工具在内的新功能推进了 InfluxDB v3 产品线。InfluxDB 集群现已正式发布。

InfluxDB v3 性能和功能

InfluxDB v3产品线在查询性能方面取得了显著提升,并提供了新的管理工具。这些改进包括一个操作仪表板,用于监控您的InfluxDB集群的健康状况,InfluxDB Cloud Dedicated中的单点登录(SSO)支持,以及用于令牌和数据库的新管理API。

了解新的v3改进


InfluxDB集群版正式发布

InfluxDB集群版现已正式发布,让您在自管理的堆栈中获得InfluxDB v3的强大功能。

与我们讨论InfluxDB集群版