TDengine3.0与2.0版本的差异

news2024/12/24 2:39:20

TDengine3.0与2.0版本的差异

  • 一、TDEnigne3.0相关环境构建及使用
  • 二、3.0与2.0的版本差异
    • 2.1 mnode及集群创建
    • 2.2 创建数据库
    • 2.3 数据库和超级表的详细查询
    • 2.4 查看超级表下有多少子表
    • 2.5 RESTful 不兼容
    • 2.6 无法修改副本数
    • 2.7 消失的时间戳

一、TDEnigne3.0相关环境构建及使用

  最近把TDEngine2.4升级到TDEngine3.0了,发现了不少坑,很多地方不能套用 2.x 的经验了,以下是我个人遇到的差异总结。

  • 1. TDEngine3.0下载、安装及配置详细*

  • 2. TDEngine - taosdump的安装与使用实战*

  • 3. TDEngine的常用命令总结*

二、3.0与2.0的版本差异

2.1 mnode及集群创建

  用过 TDengine 2.x 的都知道,多节点 TDengine 集群,mnode 必须配置多个(2~3)才能保证高可用。mnode 数量受 numOfMnodes 参数控制。但是 TDengine 3.0 这个参数已经消失了。
1

  1. 对于新建的集群,mnode 只有一个。
    ·
    查看了官方文档,原来 mnode 是需要集群创建好以后,手动创建的。
    1
  2. 集群创建
      添加节点的命令没有变化,和 2.x 一样。CREATE DNODE "fqdn:port";
    1
      TDengine 3.0 有个神奇的参数support_vnodes,这个列说明了对应节点允许创建的 vnode 个数,决定了1个节点上最大的vnode数量,默认是cpu的2倍。

创建数据库报错 Out of dnodes,明明是3节点集群,确无法创建3副本数据库。

2.2 创建数据库

  1. 和 2.x 最大的区别就是多了information_schema和performance_schema两张表,对于熟悉 MySQL 的同学,是不是有点眼熟了。
    1
  2. TDengine 3.0 的建库语句也发生了很大变化,通过show create database 可要看到建库的参数越来越陌生了。
taos> show create database test\G;
*************************** 1.row ***************************
       Database: test
Create Database: CREATE DATABASE `test` BUFFER 96 CACHEMODEL 'none' COMP 2 DURATION 14400m WAL_FSYNC_PERIOD 3000 MAXROWS 4096 MINROWS 100 KEEP 5256000m,5256000m,5256000m PAGES 256 PAGESIZE 4 PRECISION 'ms' REPLICA 3 STRICT 'off' WAL_LEVEL 1 VGROUPS 2 SINGLE_STABLE 0
Query OK, 1 rows in database (0.000644s)

按照 2.x 的命令创建数据,直接报 DB error: Syntax error
1
查看官方文档才知道,相关参数已经改了:
2

2.3 数据库和超级表的详细查询

  2.x 的时候,查看数据库和超极表的详细信息,直接
show databases;
show stables; 就可以了。
如下:
1
可是到了 3.0,显示的信息简单的不得了。
1
如果要查看详细信息,只能到 informaiont_schema 这个库去找了,这个数据库是 3.0 新增的,专门用来存储数据库相关信息。
1

  1. 查询数据库相关信息:
    1
  2. 查询超级表相关信息:
    2
    虽然查询起来麻烦一些,但是也有一些好的地方,比如过可以做数据过滤了,这在show时代可是不支持的。
    3

2.4 查看超级表下有多少子表

TDengine 3.0 只能用以下两种方法:

taos> select count(*) from information_schema.ins_tables where stable_name='meters' and db_name='test';
       count(*)        |
========================
                 10000 |
Query OK, 1 rows in database (0.027683s)

taos> select count(*) from (select distinct tbname from meters);
       count(*)        |
========================
                 10000 |
Query OK, 1 rows in database (0.019055s)

2.5 RESTful 不兼容

  1. rest api差异
    1
  2. 响应码差异:
#TDengine 2.x 响应代码和消息体
{
  "status": "succ",
  "head": [ "name", "created_time","ntables","vgroups","replica","quorum",  "days", "keep1,keep2,keep(D)",  "cache(MB)","blocks", "minrows "maxrows",
    "wallevel", "fsync","comp", "precision", "status"
  ],
  "data": [
    [ "log",  "2020-09-02 17:23:00.039",4,1,1,1, 10,"30,30,30",1,3,100,4096, 1,3000, 2,   "us","ready"  ]
  ],
  "rows": 1
}

#TDengine 3.x 响应代码和消息体

{
    "code": 0,
    "column_meta": [
        [  "name", "VARCHAR",   64],
        [ "ntables",  "BIGINT", 8],
        [ "status", "VARCHAR", 10]
    ],
    "data": [
        [  "information_schema", 16,"ready"
        ],
        [ "performance_schema", 9, "ready"
        ]
    ],
    "rows": 2
}

在2.x中是通过status = ‘succ’来判断查询、插入是否成功的,而在3.x中,通过code来判断的:
(1)如果执行过程中出现异常,返回格式:

{
	code:(int)错误码。
	desc:(string)错误描述。
}
#示例
{
  "code": 9728,
  "desc": "syntax error near \"1\""
}

(2)如果执行正常,返回格式:

{
	code:(int)0 代表成功。
	column_meta:([][3]any) 列信息,每个列会用三个值来说明,分别为:列名(string)、列类型(string)、类型长度(int)。
	rows:(int)数据返回行数。
	data:([][]any)具体数据内容(时间格式仅支持 RFC3339,结果集为 0 时区)。
}
#示例
{
  "code": 0,
  "column_meta": [
    ["ts", "TIMESTAMP", 8], ["count", "BIGINT", 8]
  ],
  "data": [
    [ "2022-06-29T05:50:55.401Z",2 ],
  ],
  "rows": 4
}

2.6 无法修改副本数

3.x已经不支持修改副本了,不只是副本,很多参数都不支持修改了。

taos> alter database test replica 3;
DB error: Syntax error near "replica 3;" (0.000048s)

2.7 消失的时间戳

对于时序数据,我们经常会进行窗口查询,比如统计每秒的数据量。

  • 2.x的窗口查询
    1
  • 3.x的窗口查询:
    1
    结果,时间戳去哪里了? 没有时间戳要这数据有啥用??
    1
    原来,有个伪劣_wstart
taos> select _wstart,count(*) from test.meters interval(1s);
         _wstart         |       count(*)        |
==================================================
 2017-07-14 10:40:00.000 |              10000000 |
 2017-07-14 10:40:01.000 |              10000000 |
 2017-07-14 10:40:02.000 |              10000000 |
 2017-07-14 10:40:03.000 |              10000000 |
 2017-07-14 10:40:04.000 |              10000000 |
 2017-07-14 10:40:05.000 |              10000000 |
 2017-07-14 10:40:06.000 |              10000000 |
 2017-07-14 10:40:07.000 |              10000000 |
 2017-07-14 10:40:08.000 |              10000000 |
 2017-07-14 10:40:09.000 |              10000000 |
Query OK, 10 rows in database (4.847837s)

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

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

相关文章

ArgoCD(一): 架构及其模型

1.1 ArgoCD 概览 Argo项目2017年由Applatix公司成立,2018年被Intuit收购,之后,BlackRock为Argo项目贡献了Argo Events这一项目; Argo所有组件都通过kubernetes CRD实现 Argo生态目前主要由四个子项目组成 Argo Workflows &#xf…

Godot引擎 4.0 文档 - 手册 - 最佳实践

本文为Google Translate英译中结果,DrGraph在此基础上加了一些校正。英文原版页面:Best practices — Godot Engine (stable) documentation in English 介绍 本系列是一系列最佳实践,可帮助您高效地使用 Godot。 Godot 在构建项目代码库并…

图漾相机—windows- C# SDK(官网下载编译)

文章目录 一、 安装依赖:二. 下载swig和SDK:swig下载连接:[https://www.swig.org/](https://www.swig.org/)下载C# SDK下载 Windows Camport3 SDK 三、配置C#和swig环境变量编译前,请先:安装 Python。 安装 NumPy 和 O…

华为 HCU 硬改教程 真实参数,华为改串号 改机教程 登录异常 设备异常 环境异常Qv

华为 HCU 硬改教程 真实参数,华为改串号 改机教程 登录异常 设备异常 环境异常Qv HCU基础版硬改教程 须知:使用需要关闭所有杀毒软件 华为手机支持这些型号硬改 ------------------------------操作前准备---------------------------------- 确保手机能…

05SpringCloud 分布式事务seata

分布式事务seata 1.前言 务必要知道,分布式事务不可能100%完美解决问题!只能尽量提高成功概率!让这个成功概率尽量接近99.999%,为了达到这个目的,甚至加入人工。 2.场景 有如下业务场景:当我们添加订单…

“AI Earth”人工智能创新挑战赛:助力精准气象和海洋预测Baseline[2]:数据探索性分析(温度风场可视化)、CNN+LSTM模型建模

【机器学习入门与实践】入门必看系列,含数据挖掘项目实战:模型融合、特征优化、特征降维、探索性分析等,实战带你掌握机器学习数据挖掘 专栏详细介绍:【机器学习入门与实践】合集入门必看系列,含数据挖掘项目实战:数据融合、特征优化、特征降维、探索性分析等,实战带你掌…

vue3-实战-05-管理后台顶部tabbar开发-全局守卫

目录 1-顶部tabbar组件静态搭建与拆分 2-菜单折叠效果 3-顶部面包屑动态展示 4-刷新和全屏 4.1-点击刷新操作 4.2-全屏 4.3-退出登录 5-路由鉴权 1-顶部tabbar组件静态搭建与拆分 分析一下,顶部分为左右两侧,左侧是面包屑,右边是 刷新…

物联网行业的发展的趋势、现状与挑战

随着物联网技术的不断发展,越来越多的行业正在积极拥抱物联网,进行物联网开发。在这些行业中,有大量的产品和服务都在使用物联网技术。事实上,目前有超过1000亿个设备在运行着联网设备。全球智能传感器市场预计将从2021年的272亿美…

Codeforces Round 877 div2 C No Prime Differences

目录 一、题目 二、题目分析 三、 一、题目 传送门 C. No Prime Differences time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You are given integers n and m. Fill an n by m grid with the…

分布式理论 - CAP

tip: 作为程序员一定学习编程之道,一定要对代码的编写有追求,不能实现就完事了。我们应该让自己写的代码更加优雅,即使这会费时费力。 文章目录 一、简介深入理解三、CAP的应用应用 一、简介 CAP理论是分布式系统中最重要的理论之一&#xf…

windows编译CTK

文章目录 windows编译CTK环境准备使用cmake-gui编译CTK测试VTK windows编译CTK 环境准备 CTK源码 :https://github.com/commontk/CTK CTKData 源码:https://github.com/commontk/CTKData 最新版本的不用下载CTKData 相关的下载会在编译的时候去下载&…

CSS样式——悬停变色

目录 准备图标 实现效果 基础模板 清除默认样式 重合相同图标 实现悬停变色 CSS样式——悬停变色,效果如下所示: 准备图标 在完成上面的效果之前,我们需要准备图标,这里我使用的是阿里巴巴矢量图标库,不会使用阿…

聚力自主安全,领跑先进计算!麒麟信安闪耀2023首届国家新一代自主安全计算系统产业集群融通生态大会

5月25日至26日,2023首届“国家新一代自主安全计算系统产业集群”融通生态大会在长沙隆重举行。大会以“聚力自主安全 领跑先进计算”为主题,由工业和信息化部规划司指导,湖南省工业和信息化厅、长沙市人民政府主办,旨在围绕实现“…

C++入门——缺省参数|函数重载

前言: C入门我们主要是补充C语言的不足,为后续类和对象学习打基础。在前面我们学了命名空间、输入输出,今天我们继续学习。 上期链接: C入门——关键字|命名空间|输入&输出_wangjiushun的博客-CSDN博客 目录: …

CompletableFuture真香,可以替代CountDownLatch!

1、背景 之前我们提到了 Future 和 Promise。Future 相当于一个占位符,代表一个操作将来的结果。一般通过 get 可以直接阻塞得到结果,或者让它异步执行然后通过 callback 回调结果。 但如果回调中嵌入了回调呢?如果层次很深,就是…

Spring Cloud Alibaba 快速上手搭建公司项目(四)Sentinel

Sentinel是一个开源的云原生流量控制和熔断降级的组件,它可以实现对微服务架构中的服务进行实时监控、自动降级、熔断限流等功能。Sentinel的核心原理是通过滑动窗口的方式对请求进行控制,当请求超过阈值时,会自动触发熔断操作,避…

JavaWeb——JSP实现书城首页

实验名称: JSP实现书城首页 实验目的: (1)了解JSP的特点及其运行原理 (2)掌握JSP的基本语法 (3)熟悉JSP指令和隐式对象的使用 (4)掌握JSP动作元素的使用…

ABP VNext 利用QQ邮箱发送邮件

ABP VNext 利用QQ邮箱发送邮件 1.配置邮箱1.1 设置1.2账户1.3 开启邮箱服务1.4 生成授权码 2 默认的SmtpEmailSender发送邮件2.1 生成数据库2.2 添加一个后台任务执行发送邮件2.3 服务中注入ISmtpEmailSender2.4 在配置文件添加邮箱信息 3 集成MailKit发送邮件3.1 添加包Volo.A…

从Docker和Kubernetes看Containerd

导读: 在学习Containerd之前,我们需要去了解Docker与Kubernetes这两个使用Containerd最多的技术,也需要明白什么是容器,什么是容器运行时,以及里面涉及的组件,这些组件是用来干什么的,及容器领域…

Zabbix Httpd漏洞修复2

一、背景 漏洞库升级的真是快啊,绿盟扫描的zabbix服务器又有新的漏洞了,经一番折腾,搞定,记录如下。 二、漏洞内容 漏洞主要还是集中在php和http漏洞 三、修复过程 思路还是升级httpd版本解决。 1、查看下zabbix版本&#xff…