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.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;创建账户并登录。

4.创建访问token

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查看数据

此时发现报错了: unsupported input type for mean aggregate: string 是因为默认生成的Query与有问题:修改一下即可

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

文子阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值