IoTDB数据库使用笔记
最近刚刚准备在一个新项目里面使用IoTDB,在采用的过程其实不断会踩坑。把自己踩的坑整一下。
查询数据时软件直接卡死
软件本身是用WPF开发,同样的代码,在测试工程里面执行一切正常,在项目工程里面执行操作就直接软件卡死。
后面发现,会卡死在resultSet.HasNext()的语句上。
解决的办法也很简单,整个查询的操作包在线程里就可以了。
保存和查询时的时间格式
保存记录的时候,直接传DateTime进去就可以了。这个是最方便的。
查询的SQL语句里面,时间按照下面的格式:
1、yyyy-MM-dd HH:mm:ss
2、yyyy-MM-ddTHH:mm:ss
服务端的程序的执行
服务端的程序,保存的上级目录不能包括空格,前面图方便放在“D:\Program Files”文件夹下,发现一直执行不了。
发给同事试了一下,却能正常执行的,后面发现只要目录不包含空格就可以了。
示例代码
var startTime = StartTime.Value.ToString("yyyy-MM-dd HH:mm:ss");
var endTime = EndTime.Value.AddDays(1).ToString("yyyy-MM-dd HH:mm:ss");
using var scope = new BusyScope(this);
var items = await Task.Run(async () =>
{
StringBuilder builder = new StringBuilder();
var session_pool = await _ioTDBController.GetSessionPool();
builder.Append($"SELECT * FROM root.{SelectedSource.SourceGuid.ToMD5()}.{SelectedPackage.MapPackageGuid.ToMD5()}");
builder.Append($" where time>={startTime} and time<{endTime}");
builder.Append(" limit 10000");
var query = builder.ToString();
_logger.Debug(query);
SessionDataSet resultSet = await session_pool.ExecuteQueryStatementAsync(query);
var recordList = new List<RowRecord>();
while (resultSet.HasNext())
{
RowRecord record = resultSet.Next();
recordList.Add(record);
}
return recordList;
});
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧