• TDengine


    1、在linux上安装服务端

    • 1、首先下载服务端,我下载的是:
      TDengine-server-2.6.0.30-Linux-x64.tar.gz
      下载地址

    • 2、下载过后传到虚拟机。并解压

    • 3、运行文件夹中的 ./install.sh 安装

    • 4、配置 /etc/taos/taos.cfg
      firstEp master:6030
      fqdn master(这里是hostname)

    • 5、taos 即可进入控制台访问

    • 6、卸载命令:rmtaos

    2、在本地安装客户端

    • 1、首先下载客户端,与服务端版本保持一致:
      TDengine-client-2.6.0.30-Windows-x64.exe
      下载地址
    • 2、执行安装程序,按提示选择默认值,完成安装
    • 3、安装在C:/TDengine,修改cfg中的taos.cfg
      firstEp master:6030
      fqdn master
    • 4、在本机hosts文件做映射
      位置:C:\Windows\System32\drivers\etc\hosts
      192.168.182.134 master
    • 5、此时就可以在cmd 通过taos连接到 linux 的服务端了

    3、通过Idea连接服务端

    添加依赖:

    
    <dependency>
        <groupId>com.taosdata.jdbcgroupId>
        <artifactId>taos-jdbcdriverartifactId>
        <version>2.0.36version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    连接测试:

    import com.taosdata.jdbc.TSDBDriver;
    
    import java.sql.*;
    import java.util.Properties;
    
    
    /**
     * @ClassName: ConnectTest
     * @Author: liumenghao
     * @Description:
     * @Date: 2022/11/17 11:04
     */
    public class ConnectTest {
    
        public static void main(String[] args) throws Exception{
            Class.forName("com.taosdata.jdbc.TSDBDriver");
            String jdbcUrl = "jdbc:TAOS://master:6030?user=root&password=taosdata";
            Properties connProps = new Properties();
            connProps.setProperty(TSDBDriver.PROPERTY_KEY_CHARSET, "UTF-8");
            connProps.setProperty(TSDBDriver.PROPERTY_KEY_LOCALE, "en_US.UTF-8");
            connProps.setProperty(TSDBDriver.PROPERTY_KEY_TIME_ZONE, "UTC-8");
            Connection conn = DriverManager.getConnection(jdbcUrl, connProps);
            System.out.println("Connected");
            Statement stmt = conn.createStatement();
    
            // create database
            stmt.executeUpdate("create database if not exists db");
    
            // use database,通过use指明数据库,后面查表的时候就不用再带上 数据库.表
            stmt.executeUpdate("use db");
    
            // create table
            stmt.executeUpdate("create table if not exists tb (ts timestamp, temperature int, humidity float)");
    
            insert(stmt);
            select(stmt);
    
            conn.close();
        }
    
        // 插入数据
        public static void insert(Statement stmt) throws Exception {
            // insert data
            int affectedRows = stmt.executeUpdate("insert into tb values(now, 23, 10.3) (now + 1s, 20, 9.3)");
    
            System.out.println("insert " + affectedRows + " rows.");
        }
    
        // 查询数据
        public static void select(Statement stmt) throws Exception {
            // query data
            ResultSet resultSet = stmt.executeQuery("select * from tb");
    
            Timestamp ts = null;
            int temperature = 0;
            float humidity = 0;
            while(resultSet.next()){
                // 根据columnIndex获取,从1开始
                ts = resultSet.getTimestamp(1);
                temperature = resultSet.getInt(2);
                // 根据属性名获取
                humidity = resultSet.getFloat("humidity");
    
                System.out.printf("%s, %d, %s\n", ts, temperature, humidity);
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67

    4、控制台基本使用

    (1)创建库

    CREATE DATABASE db KEEP 365 DURATION 10
    
    • 1

    创建数据库db,保留365天,每10天产生一个数据文件
    (2)切换库

    use db
    
    • 1

    (3)创建超级表
    使用 TDengine, 需要对每个类型的数据采集点都创建一个超级表

    CREATE STABLE meters (ts timestamp, current float, voltage int, phase float) TAGS (location binary(64), groupId int);
    
    • 1

    表名:meters
    表结构:第一列必须为时间戳(timestamp类型)其他列为自己所定。除此之外,还需要提供标签的schema(示例中为 location,groupId)

    (4)创建表
    TDengine 对每个数据采集点需要独立建表。与标准的关系型数据库一样,一张表有表名,Schema,除此之外,还可以带有一到多个标签。创建时,需要使用超级表做模板,同时指定标签的具体值。

    CREATE TABLE d1001 USING meters TAGS ("California.SanFrancisco", 2);
    
    • 1

    (5)自助建表
    在某些特殊场景中,用户在写数据时并不确定某个数据采集点的表是否存在,此时可在写入数据时使用自动建表语法来创建不存在的表,若该表已存在则不会建立新表且后面的 USING 语句被忽略。

    INSERT INTO d1001 USING meters TAGS ("California.SanFrancisco", 2) VALUES (NOW, 10.2, 219, 0.32);
    
    • 1

    (6)写入数据

    一次写入一条:

    INSERT INTO d1001 VALUES (1538548685000, 10.3, 219, 0.31);
    
    • 1

    一次写入多条:

    INSERT INTO d1001 VALUES (1538548684000, 10.2, 220, 0.23) (1538548696650, 10.3, 218, 0.25);
    
    • 1

    一次写入多表:

    INSERT INTO d1001 VALUES (1538548685000, 10.3, 219, 0.31) (1538548695000, 12.6, 218, 0.33) d1002 VALUES (1538548696800, 12.3, 221, 0.31);
    
    • 1

    5、流式计算

    在时序数据的处理中,经常要对原始数据进行清洗、预处理,再使用时序数据库进行长久的储存。在传统的时序数据解决方案中,常常需要部署 Kafka、Flink 等流处理系统。而流处理系统的复杂性,带来了高昂的开发与运维成本。
    TDengine 3.0 的流式计算引擎提供了实时处理写入的数据流的能力,使用 SQL 定义实时流变换,当数据被写入流的源表后,数据会被以定义的方式自动处理,并根据定义的触发模式向目的表推送结果。它提供了替代复杂流处理系统的轻量级解决方案,并能够在高吞吐的数据写入的情况下,提供毫秒级的计算结果延迟。

    (1)创建流

    create stream current_stream into current_stream_output_stb as select _wstart as start, _wend as wend, max(current) as max_current from meters where voltage <= 220 interval (5s);
    
    • 1

    报错了,不知为何。
    在这里插入图片描述

  • 相关阅读:
    【WGS84坐标系】经纬度高度转换为WGS84坐标系对应的坐标值
    重装系统电脑黑屏开不了机如何处理
    打开算法之门
    [李宏毅深度学习作业] 作业1:ML2021Spring-hw1 COVID-19 Cases Prediction【以时间线为记录】
    猿创征文 |【Linux】常用命令
    LLM 05-大模型法律
    一键式自动给个人云服务搭建常用平台
    人工智能学习:ResNet神经网络(8)
    微信小程序标题栏封装
    加密市场的投资布局,Zebec实属价值洼地
  • 原文地址:https://blog.csdn.net/henulmh/article/details/127963187