TDengine2.0快速入门,JAVA连接TDengine(一)
- TDengine
- 简介
- 快速安装
- JAVA集成
- 原生JDBC链接
TDengine
简介
TDengine是涛思数据面对高速增长的物联网大数据市场和技术挑战推出的创新性的大数据处理产品,它不依赖任何第三方软件,也不是优化或包装了一个开源的数据库或流式计算产品,而是在吸取众多传统关系型数据库、NoSQL数据库、流式计算引擎、消息队列等软件的优点之后自主开发的产品,在时序空间大数据处理上,有着自己独到的优势。
TDengine的模块之一是时序数据库。但除此之外,为减少研发的复杂度、系统维护的难度,TDengine还提供缓存、消息队列、订阅、流式计算等功能,为物联网、工业互联网大数据的处理提供全栈的技术方案,是一个高效易用的物联网大数据平台。与Hadoop等典型的大数据平台相比,它具有如下鲜明的特点:
- 10倍以上的性能提升:定义了创新的数据存储结构,单核每秒能处理至少2万次请求,插入数百万个数据点,读出一千万以上数据点,比现有通用数据库快十倍以上。
- 硬件或云服务成本降至1/5:由于超强性能,计算资源不到通用大数据方案的1/5;通过列式存储和先进的压缩算法,存储空间不到通用数据库的1/10。
- 全栈时序数据处理引擎:将数据库、消息队列、缓存、流式计算等功能融为一体,应用无需再集成Kafka/Redis/HBase/Spark/HDFS等软件,大幅降低应用开发和维护的复杂度成本。
- 强大的分析功能:无论是十年前还是一秒钟前的数据,指定时间范围即可查询。数据可在时间轴上或多个设备上进行聚合。即席查询可通过Shell, Python, R, Matlab随时进行。
- 与第三方工具无缝连接:不用一行代码,即可与Telegraf, Grafana, EMQ, HiveMQ, Prometheus, Matlab, R等集成。后续将支持OPC, Hadoop, Spark等, BI工具也将无缝连接。
- 零运维成本、零学习成本:安装集群简单快捷,无需分库分表,实时备份。类似标准SQL,支持RESTful, 支持Python/Java/C/C++/C#/Go/Node.js, 与MySQL相似,零学习成本。
快速安装
- 本次演示使用的是docker安装(安装docker环节跳过)
- 执行docker run(需要注意的是ip地址为虚拟机地址,默认安装最新版,截止写文最新版2.0.19.1)
docker run --add-host=yc.tdengine.com:192.168.78.168 -d -v /etc/taos:/etc/taos -p 6030:6030 -p 6035:6035 -p 6041:6041 -p 6030-6040:6030-6040/udp tdengine/tdengine:latest
- 通过docker ps -a获取容器ID
- 需要进入容器生成测试数据
docker exec -it 容器ID bash # 进入容器
taos # 客户端链接taos命令
taosdemo #生成测试数据
- 在客户端(本次使用windows作为客户端)添加host文件映射
192.168.78.128 a255a2c31f7b
虚拟机IP 容器ID
- 添加完成即可在windows启动客户端尝试连接。客户端链接: 下载
7. 在目录下启动CMD命令行运行 taos -h a255a2c31f7b(换成你对应的容器ID)
- 注意事项:关闭liunx防火墙,否则会连接不上。生产环境请勿这样操作!
JAVA集成
原生JDBC链接
添加依赖
在TDengine安装目录的driver包下有对应的驱动(本次使用JAVA)
获取连接
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;//需要引用完整
public class DBcommon {
public static Statement getConnect() {
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try {
Class.forName("com.taosdata.jdbc.TSDBDriver");
String jdbcUrl = "jdbc:TAOS://192.168.78.128:6030/test?user=root&password=taosdata";
//上述地址为本地TDengine通用地址 “test”为TDengine中的一个数据库 需要根据具体需求做更改 这里跟mysql连接大致相同 可以先学习mysql
Connection conn = DriverManager.getConnection(jdbcUrl);
Statement stmt = conn.createStatement();
return stmt;
} catch (Exception e) {
System.out.println("error");
return null;
}
}
}
查询测试
import java.sql.ResultSet;
import java.sql.Statement;
public class Test {
public static void main(String[] args) {
try {
Statement stmt = DBcommon.getConnect();//调用连接配置文件
String sql = "select * from meters limit 0 , 10";
ResultSet rs = stmt.executeQuery(sql);//简单的查询语句
String name=null;
String job = null;
while (rs.next()) { // 判断是否还有下一个数据
// 根据字段名获取相应的值
name = rs.getString("ts");
job = rs.getString(("col6"));
//输出查到的记录的各个字段的值
System.out.println(name+" "+job);
}//简单的while循环语句示例(需要预先在数据库中输入相关信息)
} catch (Exception e) {
System.out.println("error sdffsw");
}
}
}
后续更新SpringBoot整合