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

安装与使用

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安装使用问题与c#客户端_第1张图片

插入数据

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

你可能感兴趣的:(数据库,.net,c#,数据库)