时序数据库Influxdb安装使用问题与c#客户端

本文详细介绍了如何通过Docker安装InfluxDB,包括如何使用交互式模式和Web API进行数据操作。重点讲解了插入和查询数据的语法,特别是关于tag、field和时间戳的使用规则。此外,还提供了C#读写InfluxDB的示例,强调了SQL语句中特殊字符的处理和查询注意事项。
摘要由CSDN通过智能技术生成

安装与使用

docker 安装:docker run influxdb -d --name influxdb -p8086:8086 influxdb

交互式

进入docker容器:使用influx命令,会进入交互模式,并显示当前版本;

// 创建数据库
create database Test
// 显示当前所有存在的数据库
show databases
// 进入数据库
use Test
// 创建表——插入数据时直接创建表和字段
// 插入数据
insert test,Name=hyn,Sex=man age=24
// 查看表
show measurements
// 查询
select "Name","age" from test where "Name"='hyn'

web api

influxdb主要提供api进行数据交互,服务默认端口为8086

查询Api

/query支持通过sql创建数据库 :

http://ip:8086/query?q=create database Test2

表查询:

http://ip:8086/query?db=Test&q=select * from test

插入Api

http://192.168.75.128:8086/write?db=test

插入只支持post方式调用,通过二进制流的方式传递sql,可以通过PostMan进行测试,在文件中编辑sql即可
在这里插入图片描述

插入数据

influxdb插入操作语句为:

insert <measurement>,<tagNames>=<tagValues> <fieldNames>=<fieldValues> <time>

其中tag和time为可选项,time为纳秒计时间戳,为空时系统会自动已当前时间生成。

tag

tag为数据的标签,可以设置多个,属性值只能为字符串,插入时系统会自动转为字符串,会建立索引

field

field至少需要一个,为量测值,不会建立索引,field支持的数据类型为字符串,整型,浮点型。由于measurement创建后字段类型会确定下来,以后插入数据时数据类型不一致将导致插入失败,因此建议只使用字符串和浮点类型,极端情况下可以只使用字符串类型,查询时依需求进行转换。

sql中标点符号问题

空格用于tag field 和time的分隔符,除此之外sql中不能有其它多余空格;

tag的值系统默认转为字符串,sql中不要再加"",否则会产生多余的"",field的值如果为字符串,则需要加"",且需要考虑字符串中的特殊符号,否则插入时会产生异常。

查询数据

influxdb的查询操作语句为:

select <filedName> from Test where ... group by ... order by ... limit n

其实很大程度上其sql与关系型数据库sql一致

查询时至少需要包含一个field,否则返回为空

查询时标点符号使用问题

字段名最好加上"",否则一些特殊字段的查询可能会有问题,不信试试"name";

where、orderby等中的=右边的value需要加’’

C#读写influxdb示例

public class InfluxdbClient
    {
   
        private static string host_;
        private static string port_;
        private static string user_;
        private static string password_;
        private static bool https_;
        private static string InitUrl()
        {
   
            var http = "http://";
            if (https_)
            {
   
                http = "https://";
            }
            var url = http + host_ + ":" + port_;
            return url;
        }
        public InfluxdbClient(string host, string port = "8086", string user = null, string password = null, bool https = false)
        {
   
            host_ = host
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值