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;
            });
posted @   wzwyc  阅读(95)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示