栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring中用Mybatis查询Apache IoTDB

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring中用Mybatis查询Apache IoTDB

公司现在用的是postgresql + mybatis,现在想换成iotdb,iotdb是阿里开发的一个非关系型数据库

具有这些特点,具体的内容可以参考 https://iotdb.apache.org/zh/UserGuide/V0.12.x/IoTDB-Introduction/Features.html

  • 灵活的部署方式
    • 云端一键部署
    • 终端解压即用
    • 终端-云端无缝连接(数据云端同步工具)
  • 低硬件成本的存储解决方案
    • 高压缩比的磁盘存储(10亿数据点硬盘成本低于1.4元)
  • 目录结构的时间序列组织管理方式
    • 支持复杂结构的智能网联设备的时间序列组织
    • 支持大量同类物联网设备的时间序列组织
    • 可用模糊方式对海量复杂的时间序列目录结构进行检索
  • 高通量的时间序列数据读写
    • 支持百万级低功耗强连接设备数据接入(海量)
    • 支持智能网联设备数据高速读写(高速)
    • 以及同时具备上述特点的混合负载
  • 面向时间序列的丰富查询语义
    • 跨设备、跨传感器的时间序列时间对齐
    • 面向时序数据特征的计算
    • 提供面向时间维度的丰富聚合函数支持
  • 极低的学习门槛
    • 支持类SQL的数据操作
    • 提供JDBC的编程接口
    • 完善的导入导出工具
  • 完美对接开源生态环境
    • 支持开源数据分析生态系统:Hadoop、Spark
    • 支持开源可视化工具对接:Grafana

首先是我用到的框架版本:

Spring 5.3.3,Mybatis 3.5,iotdb 0.12.5

  1.  maven里要引用jar包,如果不想自己实现数据库交互工具可以不用引用iotdb session这个jar
    
    
       org.apache.iotdb
       iotdb-session
       0.12.5
    
    
    
       org.apache.iotdb
       iotdb-jdbc
       0.12.5
    

 2.  创建mapper里的查询语句

 
        SELECT code as code,value as value
        FROM table_name
        WHERe
        code=#{code}
        and time > ${startTime}
        and time < ${endTime}
    

创建 entity,dao这些跟平时创建关系型数据库时的一样

@Data
public class DeviceData {
    String code;

    
    double altitude;

    
    double latitude;

    
    long insertTime;

    
    String value;

    
    double longitude;

    
    String quality;

}
public interface DeviceDataDao extends IQueryDao {

    List getDeviceData( String code,  String startTime,  String endTime);
}

这里有几个点需要注意一下:

  • mapper里写查询语句的时候table_name要换成具体的time_series, 比如root.group.ln
    列名需要标注上别名,不然查询出来的列名是root.group.ln.code这样的,注入不到resultmap里去
  • startTime和endTime我用的是$取值,mybatis里#和$是有区别的,用#取值mybatis会自动根据你传参类型处理后赋值,比如是字符串会加上单引号',而$不做处理直接将传参替换,测试中我发现iotdb按time字段查询是不支持字符串型的时间查询的,所以这里暂时这么传值,以后有时间了在研究

 最后,就是配置数据源,建议配置成动态数据源,根据业务查询需要动态切换数据源。


        iotdb
        dataSource_iotdb

        iotdb
        org.apache.iotdb.jdbc.IoTDBDriver
        jdbc:iotdb://localhost:6667/
        root
        123456

        actived
        false
        
            false
            true
            select 1 from root;
                          
 
20
            1800
            false
            20
            true
            true
            3
            3600000
            true
            3600000
            300000
            3
            stat
        
    

启动项目就查询出来了,这里我省略了altitude等几个列

 

 跟用命令查出来的结果一样

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1008003.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号