TDengine快速入门

这篇具有很好参考价值的文章主要介绍了TDengine快速入门。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用Docker快速搭建TDengine环境

1.创建Docker容器并运行

使用 docker run 命令启动运行 TDengine server 的 docker 容器,并使用 --name 命令行参数将容器命名为 tdengine,使用 --hostname 指定 hostname 为 tdengine-server,通过 -v 挂载本地目录到容器,实现宿主机与容器内部的数据同步,防止容器删除后,数据丢失。

docker run -d --name tdengine --hostname="tdengine-server" -v ~/work/taos/log:/var/log/taos -v ~/work/taos/data:/var/lib/taos  -p 6030-6049:6030-6049 -p 6030-6049:6030-6049/udp tdengine/tdengine
  • –name tdengine:设置容器名称,我们可以通过容器名称来访问对应的容器
  • –hostname=tdengine-server:设置容器内 Linux 系统的 hostname,我们可以通过映射 hostname 和 IP 来解决容器 IP 可能变化的问题。
  • -v:设置宿主机文件目录映射到容器内目录,避免容器删除后数据丢失。

2.使用 docker ps 命令确认容器是否已经正确运行

docker ps

3.通过 docker exec 命令,进入到 docker 容器,进入TDengine客户端

进入tdengine容器

docker exec -it tdengine /bin/bash

进入客户端程序

taos

4.应用示例:在宿主机使用 taosBenchmark 写入数据到 Docker 容器中的 TDengine server

在tdengine容器里执行

taosBenchmark 

回车后,该命令将在数据库 test 下面自动创建一张超级表 meters,该超级表下有 1 万张表,表名为 “d0” 到 “d9999”,每张表有 1 万条记录,每条记录有 (ts, current, voltage, phase) 四个字段,时间戳从 “2017-07-14 10:40:00 000” 到 “2017-07-14 10:40:09 999”,每张表带有标签 location 和 groupId,groupId 被设置为 1 到 10, location 被设置为 “California.SanFrancisco” 或者 “California.SanDieo”。

最后共插入 1 亿条记录。

5.进入 TDengine 客户端,查看 taosBenchmark 生成的数据。

查看数据库

show databases;

查看超级表

use test;

查询表,限制输出十条

select * from test.d0 limit 10;

TDengine 建表

1.创建库

CREATE DATABASE sin KEEP 365 DAYS 10 BLOCKS 6 UPDATE 1;

上述语句将创建一个名为 sin 的库,这个库的数据将保留 365 天(超过 365 天将被自动删除),每 10 天一个数据文件,内存块数为 6,允许更新数据。

创建库之后,需要使用 SQL 命令 USE 将当前库切换过来

USE sin;

2.创建超级表

一个物联网系统,往往存在多种类型的设备,比如对于电网,存在智能电表、变压器、母线、开关等等。为便于多表之间的聚合,使用 TDengine, 需要对每个类型的数据采集点创建一个超级表。

CREATE STABLE gl07 (ts timestamp,value int) TAGS (groupId int);

3.创建表

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

CREATE TABLE d1008 USING gl07 TAGS (1008);

4.自动建表

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

INSERT INTO d1009 USING gl07 TAGS (1009) VALUES (now, 9);

验证是否创建

select * from d1009;

TDengine SQL写入数据

1.写入一条数据,子表不存在自动创建

INSERT INTO d1009 USING gl07 TAGS (1009) VALUES (now, 10);

2.写入一条数据

INSERT INTO d1001 VALUES (now, 34);

3.写入多条数据

INSERT INTO d1001 VALUES (now,14) (now,16);

Java 连接器

maven依赖

<dependency>
  <groupId>com.taosdata.jdbc</groupId>
  <artifactId>taos-jdbcdriver</artifactId>
  <version>2.0.38</version>
</dependency>

安装客户端驱动 taosc

Windows
  1. 下载客户端安装包

    • TDengine-client-2.6.0.1-Windows-x64.exe (9.9 M)
    • TDengine-client-2.6.0.1-Windows-x86.exe (9.9 M)

    所有下载

  2. 执行安装程序,按提示选择默认值,完成安装

  3. 安装路径

    默认安装路径为:C:\TDengine,其中包括以下文件(目录):

    • taos.exe:TDengine CLI 命令行程序
    • cfg : 配置文件目录
    • driver: 应用驱动动态链接库
    • examples: 示例程序 bash/C/C#/go/JDBC/Python/Node.js
    • include: 头文件
    • log : 日志文件
    • unins000.exe: 卸载程序
  4. 配置 taos.cfg

    编辑 taos.cfg 文件(默认路径 C:\TDengine\cfg\taos.cfg),将 firstEP 修改为 TDengine 服务器的 End Point,例如:h1.tdengine.com:6030

Linux
  1. 下载客户端安装包

    • TDengine-client-2.6.0.1-Linux-x64.tar.gz (8.6 M)
    • TDengine-client-2.6.0.1-Linux-x64-Lite.tar.gz (3.2 M)

    所有下载

  2. 解压缩软件包

    将软件包放置在当前用户可读写的任意目录下,然后执行下面的命令:tar -xzvf TDengine-client-VERSION.tar.gz 其中 VERSION 需要替换为实际版本的字符串。

  3. 执行安装脚本

    解压软件包之后,会在解压目录下看到以下文件(目录):

    • install_client.sh:安装脚本,用于应用驱动程序
    • taos.tar.gz:应用驱动安装包
    • driver:TDengine 应用驱动 driver
    • examples: 各种编程语言的示例程序(c/C#/go/JDBC/MATLAB/python/R) 运行 install_client.sh 进行安装。
  4. 配置 taos.cfg

    编辑 taos.cfg 文件(默认路径/etc/taos/taos.cfg),将 firstEP 修改为 TDengine 服务器的 End Point,例如:h1.tdengine.com:6030文章来源地址https://www.toymoban.com/news/detail-416551.html

连接Tdengine写入数据

package com.ambitfly.tdengine;

import com.taosdata.jdbc.SchemalessWriter;
import com.taosdata.jdbc.TSDBDriver;
import com.taosdata.jdbc.enums.SchemalessProtocolType;
import com.taosdata.jdbc.enums.SchemalessTimestampType;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Arrays;
import java.util.List;
import java.util.Properties;

public class WriteToTDengine {
    public static void main(String[] args) throws SQLException {
        String dateBase = "dateBase";
        String stable = "stable";
        insertData(dateBase,stable,getRawData(),getConnection());
    }




    public static Connection getConnection() throws SQLException {
        String jdbcUrl = "jdbc:TAOS://hadoop001:6030?user=root&password=taosdata";
        return DriverManager.getConnection(jdbcUrl);
    }
//            2022-05-31T15:51:26.25
    private static List<String> getRawData() {
        return Arrays.asList(
                "d111211,2022-06-01 17:38:04.68,0,192,111211"
//                ,
//                "d74481,1654105479000,1,192,74481",
//                "d74485,1654105479000,0,192,74485",
//                "d74489,1654105479000,1,192,74489",
//                "d27552,1654105479000,33.75,192,27552",
//                "d27551,1654105479000,0,192,27551"
        );
    }


    private static String getSQL(String dateBase,String stable,List<String> data) {

        StringBuilder sb = new StringBuilder("INSERT INTO ");
        for (String line : data) {
            String[] ps = line.split(",");
            sb.append(dateBase+"." + ps[0]).append(" USING " + dateBase + "." + stable + " TAGS(")
                    .append(ps[4]) // tag: groupId
                    .append(") VALUES(")
                    .append("\'").append(ps[1]).append("\'").append(",") // time_stamp
                    .append(ps[2]).append(",") // value
                    .append(ps[3]).append(") "); // quality_stamp
        }
        return sb.toString();
    }


    public static void insertData(String dateBase,String stable,List<String> data,Connection conn) throws SQLException {
            try (Statement stmt = conn.createStatement()) {
                String sql = getSQL(dateBase,stable,data);
                //System.out.println(sql);
                int rowCount = stmt.executeUpdate(sql);
                //System.out.println("rowCount=" + rowCount); // rowCount=8
            }
    }
}

到了这里,关于TDengine快速入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用docker快速搭建redis哨兵模式

    本文主要参考: https://www.cnblogs.com/coderaniu/p/15352323.html https://developer.aliyun.com/article/892805 但是这两篇博客均缺失部分关键性细节,所以重新撰文。读者可以结合本文和上述文章一起阅读。 此处略 创建 docker-compose.yml 文件,内容如下: 执行命令 docker-compose up -d 创建三个redis容器

    2024年02月09日
    浏览(28)
  • 【Docker】快速入门之Docker的安装及使用

            Docker是一个开源的应用容器引擎,它让开发者可以将他们的应用及其依赖打包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。         Docker的优点包括简

    2024年02月02日
    浏览(29)
  • 使用docker快速搭建xssPlatform测试平台实践

    笔者之前给一些开发团队多次做Web安全开发培训,为了让培训的学员能够理解XSS原理和XSS的危害,将xssPlatform进行了更新,之前一直放在GitHub中;发现关注的人越来越多,很多人在安装的过程中遇到问题不知道怎么处理,为了简化安装步骤,笔者将xssPlatform封装到了docker镜像当

    2024年02月19日
    浏览(26)
  • 使用docker快速搭建wordpress服务,并指定域名访问

    wordpress是一个基于PHP语言编写的开源的内容管理系统(CMS),它有丰富的插件和主题,可以非常简单的创建各种类型的网站,包括企业网站、电子商务网站、新闻门户、论坛等等。 强大的社区支持:WordPress拥有庞大的用户社区,你可以在社区中获取帮助、分享经验和学习新技

    2024年02月13日
    浏览(31)
  • Storm学习之使用官方Docker镜像快速搭建Storm运行环境

    Apache Storm 官方也出了Docker 镜像 https://hub.docker.com/_/storm/ 本文我们就基于官方镜像搭建一个 Apache Storm 2.4 版本的运行环境,供大家后续学习。 有问题可以参考issue 解决, 我的安装过程一路都很顺畅。所以基本上没有看下面是我的详细操作和截图 。 可以说网上的乱七八糟的教

    2024年02月14日
    浏览(38)
  • 使用Docker快速搭建并优化Redmine环境:日志管理与健康检查指南

    Redmine是一种开源的项目管理和问题跟踪工具,它以Web应用程序的形式提供。Redmine的主要功能包括项目管理、问题跟踪、版本控制集成、Wiki和论坛等。它是用Ruby on Rails开发的,支持多语言和多数据库。Redmine的灵活性和可扩展性使其成为许多组织和团队用于协作和项目管理的

    2024年04月28日
    浏览(26)
  • 4. Rancher 安装快速入门—使用 Docker 在单节点上安装 Rancher

    Rancher 可以通过运行单个 Docker 容器来安装。 在此安装场景中,您将在单个 Linux 主机上安装 Docker,然后使用单个 Docker 容器在您的主机上部署 Rancher。 建议仅出于开发和测试目的使用 Docker 安装 Rancher。能否将Rancher迁移到高可用集群取决于Rancher版本: 当Rancher服务器部署在D

    2024年03月15日
    浏览(37)
  • 【物联网】EMQX(二)——docker快速搭建EMQX 和 MQTTX客户端使用

    在上一篇文章中,小编向大家介绍了物联网必然会用到的消息服务器EMQ,相信大家也对EMQ有了一定的了解,那么接下来,小编从这篇文章正式开始展开对EMQ的学习教程,本章节来记录一下如何对EMQ进行安装。 EMQ作为第三方中间件,可以安装到很多种平台上,比如macOS、window

    2024年02月03日
    浏览(43)
  • 【Docker从入门到入土 4】使用Harbor搭建Docker私有仓库

    Harbor 是一个由CNCF托管的开源的 Docker镜像仓库管理工具 ,可以通过它 快速的建立起自己的私有仓库 。 Harbor 的每个组件都是以 Docker 容器的形式构建的,使用 d ocker-compose 来对它进行部署。 用于部署 Harbor 的 docker-compose 模板位于 harbor/docker-compose.yml 。 1) 基于角色控制 :用

    2024年02月08日
    浏览(35)
  • 使用 Docker Compose V2 快速搭建日志分析平台 ELK (Elasticsearch、Logstash 和 Kibana)

    ELK 是指 Elasticsearch、Logstash 和 Kibana 这三个开源软件的组合。 Elasticsearch 是一个分布式的搜索和分析引擎,用于日志的存储,搜索,分析,查询。 Logstash 是一个数据收集、转换和传输工具,用于收集过滤和转换数据,然后将其发送到 Elasticsearch 或其他目标存储中。 Kibana 是一个数

    2024年01月20日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包