0
点赞
收藏
分享

微信扫一扫

influxdb2.x各个平台的安装与客户端连接使用


目录

1.安装 (以docker安装为例)

2.防火墙开放8083/8086端口。

3.Web访问主机IP:8086;创建账户并登录。

4.创建访问token编辑编辑

5.客户端访问 (注意:网络上的influxdb Studio客户端工具只适用于1.8之前的版本)

这是官方地址-根据需要进行不通平台的安装:Install InfluxDB | InfluxDB OSS 2.4 DocumentationDownload, install, and set up InfluxDB OSS.

influxdb2.x各个平台的安装与客户端连接使用_mysql

https://docs.influxdata.com/influxdb/v2.4/install/

前情提示:安装之前一定要确定好安装的版本,二者的客户端访问是不一样的。
influxdb 1.x 客户端需要使用账号密码进行访问。
influxdb 2.x 客户端需要使用token进行访问(不支持账号密码的形式)。

1.安装 (以docker安装最新版本influxdb为例)

docker run -d -p 8083:8083 -p 8086:8086 --name influxdb influxdb

2.防火墙开放8083/8086端口。

3.Web访问主机IP:8086;创建账户并登录。

influxdb2.x各个平台的安装与客户端连接使用_docker_02

4.创建访问token

influxdb2.x各个平台的安装与客户端连接使用_容器_03

influxdb2.x各个平台的安装与客户端连接使用_mysql_04

5.客户端访问 (注意:网络上的influxdb Studio客户端工具只适用于1.8之前的版本)

这里以python访问为例:

import datetime

from influxdb_client import Point, WritePrecision, InfluxDBClient
from influxdb_client.client.flux_table import TableList
from influxdb_client.client.write_api import SYNCHRONOUS

bucket = "one"
org = "test"
token = "RxQh-j102QUD1q57jukoWNNEc299O9aq6ibV0WUjh0gk3F04_o7jbmSQzh5jtlAA=="
url = "http://192.168.4.17:8086"

if __name__ == '__main__':
    # 初始化连接
    client = InfluxDBClient(url=url, token=token, org=org)

    # 初始化写入API句柄
    write_api = client.write_api(write_options=SYNCHRONOUS)

    """ 概念介绍
    1.org:组织,每个组织至少关联一个bucket。
    2.bucket:存储桶,相当于mysql的数据库,bucket属于某个org,且bucket都必须设置数据保存的时长。
    3.measurement_name:度量,相当于mysql的表。
    4.point:点位,相当于mysql的一行。
    5.time:主键索引,相当于mysql的主键。
    6.field:字段,相当于mysql的无索引的列字段。
    7.tags:标签,相当于mysql的有索引的列字段
    """

    # 构建数据
    point = Point(measurement_name="my_measurement") \
        .tag("fast", "f1") \
        .field("temperature", 24.43234543) \
        .time(datetime.datetime.utcnow(), WritePrecision.NS)

    # 写入数据
    write_api.write(bucket, org, point)

    # 初始化查询API句柄
    query_api = client.query_api()

    # 与mysql不同,这里是直接检索bucket,相当于在数据库里检索,返回检索到的表及其数据。
    query = 'from(bucket:"one")' \
            '|>range(start:-10m)' \
            '|>filter(fn:(r)=>r._measurement=="my_measurement")'

    tables: TableList = query_api.query(org=org, query=query)
    for table in tables:
        for record in table.records:
            measurement = record.get_measurement()  # 返回记录的测量名称。
            field = record.get_field()  # 返回字段名称。
            value = record.get_value()  # 返回实际的字段值。
            values = record.values  # 返回列值的映射。
            vg = record.values.get("<your tag>")  # 从给定列的记录中返回一个值。
            time = record.get_time()  # 返回记录的时间。
            start = record.get_start()  # 返回当前表中所有记录的包含下限。
            stop = record.get_stop()  # 返回当前表中所有记录的独占时间上限。

            print(measurement, field, value, vg, time, start, stop)

    # 用完关闭
    client.close()

6.web查看数据

influxdb2.x各个平台的安装与客户端连接使用_客户端_05

此时发现报错了: unsupported input type for mean aggregate: string

influxdb2.x各个平台的安装与客户端连接使用_mysql_06

 是因为默认生成的Query与有问题:修改一下即可

influxdb2.x各个平台的安装与客户端连接使用_容器_07

influxdb2.x各个平台的安装与客户端连接使用_容器_08

举报

相关推荐

0 条评论