123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Ropin.Core.Common
- {
- public class InfluxDBHelper
- {
- string _baseAddress = "http://localhost:8086"; //127.0.0.1
- string _username = "admin";
- string _password = "admin";
- /// <summary>
- /// 读
- /// </summary>
- /// <param name="database"></param>
- /// <param name="sql">
- /// sql = "CREATE DATABASE mydb";
- /// sql = "select * from test";
- /// </param>
- /// <returns></returns>
- public string Query(string database, string sql)
- {
- string pathAndQuery = string.Format("/query?db={0}&q={1}", database, sql);
- string url = _baseAddress + pathAndQuery;
- string result = HttpHelper.Get(url, _username, _password);
- return result;
- }
- /// <summary>
- /// 写
- /// </summary>
- /// <param name="database"></param>
- /// <param name="sql">
- /// string sql = "test,name=测试,count=1 value=10";
- /// 插入表test 索引name 列count,value
- /// </param>
- public string Write(string database, string sql)
- {
- string pathAndQuery = string.Format("/write?db={0}&precision=s", database);
- string url = _baseAddress + pathAndQuery;
- string result = HttpHelper.Post(url, sql, _username, _password);
- return result;
- }
- }
- // public class InfluxDBClient
- // {
- // //声明InfluxDbClient
- // private InfluxDbClient clientDb;
- // public InfluxDBClient()
- // {
- // //连接InfluxDb的API地址、账号、密码
- // var infuxUrl = "http://localhost:8086/";
- // var infuxUser = "admin";
- // var infuxPwd = "admin";
- // //创建InfluxDbClient实例
- // clientDb = new InfluxDbClient(infuxUrl, infuxUser, infuxPwd, InfluxDbVersion.Latest);
- // }
- // /// <summary>
- // /// 从InfluxDB中读取数据
- // /// </summary>
- // public async void GetData()
- // {
- // //传入查询命令,支持多条
- // var queries = new[]
- // {
- //" SELECT * FROM Reading WHERE time> now() - 24h "
- //};
- // var dbName = "code-hub";
- // //从指定库中查询数据
- // var response = await clientDb.Client.QueryAsync(queries, dbName);
- // //得到Serie集合对象(返回执行多个查询的结果)
- // var series = response.ToList();
- // //取出第一条命令的查询结果,是一个集合
- // var list = series[0].Values;
- // //从集合中取出第一条数据
- // var info_model = list.FirstOrDefault();
- // }
- // /// <summary>
- // /// 往InfluxDB中写入数据
- // /// </summary>
- // public async void AddData()
- // {
- // //基于InfluxData.Net.InfluxDb.Models.Point实体准备数据
- // var point_model = new Point()
- // {
- // Name = "Reading",//表名
- // Tags = new Dictionary<string, object>()
- //{
- // { "Id", 158}
- //},
- // Fields = new Dictionary<string, object>()
- //{
- // { "Val", "webInfo" }
- //},
- // Timestamp = DateTime.UtcNow
- // };
- // var dbName = "code-hub";
- // //从指定库中写入数据,支持传入多个对象的集合
- // var response = await clientDb.Client.WriteAsync(point_model, dbName);
- // }
- // }
- public static class InfluxDBExpress
- {
- /// <summary>
- /// 将当前时间转换成unix时间戳形式
- /// </summary>
- /// <param name="datetime"></param>
- /// <returns></returns>
- public static long ToUnixTimestamp(this DateTime datetime)
- {
- return (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
- }
- }
- }
|