TDengine

news2024/11/16 1:48:07

目录

  • 1、在linux上安装服务端
  • 2、在本地安装客户端
  • 3、通过Idea连接服务端
  • 4、控制台基本使用
  • 5、流式计算

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 即可进入控制台访问

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连接服务端

添加依赖:

<!-- 选用2.版本 与server client 要一致-->
<dependency>
    <groupId>com.taosdata.jdbc</groupId>
    <artifactId>taos-jdbcdriver</artifactId>
    <version>2.0.36</version>
</dependency>

连接测试:

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);
        }
    }
}

4、控制台基本使用

(1)创建库

CREATE DATABASE db KEEP 365 DURATION 10

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

use db

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

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

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

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

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

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

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

(6)写入数据

一次写入一条:

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

一次写入多条:

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

一次写入多表:

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

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);

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/23117.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

当有一天TCP/IP没有了TCP

前几天我在给NetDAM可靠传输想更好的算法&#xff0c;发现我自己也傻x了&#xff0c;最根本的原因是要抛弃滑动窗口呀&#xff0c;解耦保序才是关键. 本来想明年愚人节写如果有一天TCP/IP没了IP&#xff0c;那么只能TCP over RDMA了...但是也不排除为了兼容以太网只能TCP over…

C语言中,可变参数函数调用的过程?!

以下是一位同学&#xff0c;发送给我的问题。 如下图&#xff0c;是学生在学习完指针章节后&#xff0c;写的测试代码。 他的疑问是&#xff1a;pa为什么指向a[3]的地址啊&#xff1f; 查看程序的输出后&#xff0c;知道他想问的是&#xff1a;为什么第二个printf语句输出的分…

嵌入式开发:从C语言成功过渡的3个技巧

当谈到嵌入式系统编程语言时&#xff0c;毫无疑问&#xff0c;C是主导语言。在过去的几十年里&#xff0c;有无数次尝试改变&#xff0c;但当尘埃落定时&#xff0c;C编程语言似乎永远是屹立不倒的语言。近年来&#xff0c;关于用其他语言取代C语言的争论再次出现。无论潜在的篡…

A-Level经济例题解析及练习Analysis of trade

今日知识点&#xff1a;Analysis of trade 例题Without trade, PD $3000, Q 400; in world markets, PW $1500 Under free trade, how many TVs will the country import or export? Identify consumer surplus, producer surplus, and total surplus without trade, and w…

Golang标准库限流器rate使用

限流就是限制系统的输入和输出流量来达到保护系统的目的&#xff0c;限流在实际场景中应用十分广泛&#xff0c;尤其在高并发场景下&#xff0c;为了保证系统的可以用性&#xff0c;我们需要采取一些限流措施降级&#xff0c;一旦达到限制的阈值&#xff0c;就需要限制流量并采…

Vue-admin-template新增TagViews标签页功能,附完整代码

前言 vue-admin-template里面本身是没有TagViews标签页的&#xff0c;只有完整版的vue-element-admin才有&#xff0c;翻找网上的其他教程&#xff0c;要么代码不完整&#xff0c;要么有bug&#xff0c;本篇文章就教大家如何在vue-admin-template的基础上新增TagViews 步骤 …

分布式应用kafka + EFLFK集群部署

前言 Kafka是由Apache软件基金会开发的一个开源流处理平台&#xff0c;由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统&#xff0c;它可以处理消费者在网站中的所有动作流数据。 这种动作&#xff08;网页浏览&#xff0c;搜索和其他用户的行动&#xff09;…

骨传导耳机优缺点有哪些?骨传导耳机科普与推荐

骨传导耳机是一种可以开放耳朵的耳机&#xff0c;所以对于耳朵比较敏感的人来说&#xff0c;这种耳机是比较友好的&#xff0c;同时因为它的佩戴方式&#xff0c;在运动圈内也很受欢迎。只不过骨传导耳机是一种新兴的耳机&#xff0c;所以很多人并不太了解它的优缺点。 我作为…

书店销售管理系统----数据库原理及应用综合实验

枯木逢春犹再发&#xff0c;人无两度再少年&#x1f342; 系统主要模块如下&#xff1a; &#xff08;1&#xff09; 书店销售管理系统设计与实现—图书入库管理及查询统计 图书入库管理&#xff1a;维护入库图书信息&#xff08;如图书编号、书名、作者、价格、图书分类、出版…

vue-element-admin后台前端解决方案(基于 vue 和 element-ui)

vue-element-admin后台前端解决方案参考文档下载安装目录结构参考文档 vue-element-admin官网&#xff0c;更多详细内容可以查看社区学习文档。 下载安装 可以把 vue-element-admin当做工具箱或者集成方案仓库&#xff0c;在 vue-admin-template 的基础上进行二次开发&#…

Java 8 给我们更好的消灭空指针解决方案

前言 大家好&#xff0c;在平时的业务开发中&#xff0c;空指针是我们经常遇到的问题&#xff0c; 他可能会导致我们的流程无法正常进行或者一些意外情况的发生。 这就是我们需要避免空指针的原因&#xff0c;那我们有哪些方式去解决这个问题呢&#xff1f; 空指针场景 包装…

Linux系统安装DB2数据库的详细步骤

1、DB2数据库的安装 一、将DB2的安装介质上传至/home目录&#xff0c;并解压&#xff1a; tar –zxvf v9.5fp3_linuxx64_server.tar.gz 二、执行LANGC 三、进入解压后的server目录&#xff08;cd server/&#xff09;&#xff0c;执行./db2setup,步骤如下&#xff1a; # cd…

数据结构-线性表与链性表(二)

目录 一、学习背景 二、简绍 三、线性表 一、什么是线性表 二、操作 1、插入 2、删除 3、查询 三、数组应用案例中源码分析 1、插入 2、删除 3、get与set 4、扩容 二、单向链表 单向链表结构 循环链表 三、数组和链表比较 1、时间复杂度角度 2、其他维度 3、…

【JS】原生js实现矩形框的绘制/拖动/缩放

1、要点及功能描述 通过js监听mouse事件来实现矩形框的绘制&#xff0c;再通过区分点击的是边角还是其他位置来实现矩形框的缩放和拖动&#xff0c;并且在拖动和缩放时&#xff0c;都做了边界限制&#xff0c;当缩放或拖动 到边界时&#xff0c;就不能继续拉缩放拖动了。当然在…

【个人简介】一枚在上海的AndroidiOSWindow逆向电子工程师

> Hello World!, I am Humenger 「 From Shanghai, China 」 「 Android Reverse engineer, applied electronic technology Shan Dong University, China 」 &#x1f41d;主要涉及平台: Android(70%),iOS(15%),Window(5%),macOS(3%),其他(7%) &#x1f98b;主要涉…

易基因|RNA m7G甲基化测序(m7G-MeRIP-seq)

N7-甲基鸟苷&#xff08;N7-methylguanosine&#xff0c;m7G&#xff09;是真核生物tRNA、rRNA和mRNA 5cap中最丰富的修饰之一。作为一种重要的表观遗传修饰&#xff0c;m7G RNA甲基化在基因表达、加工代谢、蛋白质合成、转录稳定等方面发挥着重要的作用&#xff0c;参与疾病发…

Pinely Round 1 (Div. 1 + Div. 2) E - Make It Connected思维分类讨论

昨晚的problem e 一直wa。因为答案&#xff0c;不唯一&#xff0c;调起来只能肉眼debug。被干emo了qwq。好在赛后看到 ugly2333的 思路和我差不多&#xff0c;最后还是要选取度数较小的最优, 好像从度数的角度出发&#xff0c;不容易wa。 题意&#xff1a; 给你一个图&#xf…

什么是组织孤岛?它会带来哪些影响?可以这样去对付它

作为一个在不同地点和时区与不同团队合作的远程工作者&#xff0c;我有过公平的孤岛经历。 是的&#xff0c;它们扼杀了任何组织的成长。那么&#xff0c;在使你&#xff08;和组织中的每个人&#xff09;失去生产力、困惑、自私和不快乐之后。 在这篇文章中&#xff0c;我将…

ADRV9009中armBinary反汇编IDA参数设置

armBinary.bin文件如果不做处理的话就是一堆16进制数,扔到IDA里也只是一堆有颜色的16进制数,需要进行一些参数设置。 1 选择IDA32位打开armBinary.bin文件 2 load a new file设置 Processor type选择ARM Little-endian [ARM],点击Edit ARM architecture options进行相应修…

Linux 中的内部命令和外部命令

Linux 中的内部命令和外部命令 作者&#xff1a;Grey 原文地址&#xff1a; 博客园&#xff1a;Linux 中的内部命令和外部命令 CSDN&#xff1a;Linux 中的内部命令和外部命令 什么是 bash shell ? bash shell&#xff0c;就是一个程序&#xff0c;就是 Linux 系统安装的…