TDengine简介

TDengine 是一款开源、高性能、云原生时序数据库,且针对物联网、车联网、工业互联网、金融、IT 运维等场景进行了优化。您可以像使用关系型数据库 MySQL 一样来使用它.

数据模型和整体架构

在典型的物联网, 运维检测场景中, 往往有多种不同类型的传感器用来采集各种不同类型的数据, 而每种类型的数据又有多个同种类型的设备分布在不同的空间. 最后需要将它们采集到的的数据汇总,

计算和分析, 而同种类型的设备采集到的数据结构又是完全相同的.

需要采集的数据的特点总结就是:

  1. 数据连续性,时序性
  2. 数据结构化
  3. 数据量巨大

因此TDengine的特点就是:

  1. 因为采集的数据结构固定, 都是结构化数据, 因此可以使用关系型数据库模型来管理数据, 便于根据各种条件进行查询归档
  2. 每个设备都是单独对一个表进行写入, 每个表数据源唯一,因此TDengine对每个采集器单独建表, 这样就不需要加锁进行隔离
  3. 对于一个数据采集点而言,其产生的数据是时序的,因此写的操作可用追加的方式实现,进一步大幅提高数据写入速度。

超级表:同一类型数据采集点的集合

TDengine把每一类不同的采集点都作为一个超级表, 每个超级表下又根据该类设备不同设备编号分为多个子表.  子表用来存储每个采集点采集到的数据, 超级表用于聚合, 计算, 分析.
每个超级表下的子表的表结构都是完全相同的, 只有标签不同, 标签的格式在超级表中定义, 且后期可以修改.

TDengine主节点写入流程:

  1. master vnode主节点收到应用的数据插入请求,验证OK,进入下一步;
  2. 如果系统配置参数 walLevel 大于 0,vnode 将把该请求的原始数据包写入数据库日志文件 WAL。如果 walLevel 设置为 2,而且 fsync 设置为 0,TDengine 还将 WAL 数据立即落盘,以保证即使宕机,也能从数据库日志文件中恢复数据,避免数据的丢失;
  3. 如果有多个副本,vnode 将把数据包转发给同一虚拟节点组内的 slave vnodes, 该转发包带有数据的版本号(version);
  4. 写入内存,并将记录加入到 skip list跳表(缓存);
  5. master vnode 返回确认信息给应用,表示写入成功。
  6. 如果第 2、3、4 步中任何一步失败,将直接返回错误给应用。

SQL语法可以参照官方文档:https://www.taosdata.com/docs/cn/v2.0/taos-sql#-7

TDengine上手笔记的更多相关文章

  1. PYNQ上手笔记 | ① 启动Pynq

    现在人工智能非常火爆,一般的教程都是为博硕生准备的,太难看懂了,分享一个非常适合小白入门的教程,不仅通俗易懂而且还很风趣幽默,点☞这里​​​​​​​☜进入传送门~ = = = = 我是华丽的分割线 = ...

  2. Dubbo | Dubbo快速上手笔记 - 环境与配置

    目录 前言 1. Dubbo相关概念 1.1 自动服务发现工作原理 2. 启动文件 2.1 zookeeper-3.4.11\bin\zkServer.cmd 2.2 zookeeper-3.4.11 ...

  3. CloudFoundry 快速上手笔记

    1.登陆cf 2.登陆进入webservice 3.查看ruby版本 4.查看gem版本 5.安装CF 6.配置cf Download the CLI from github: https://git ...

  4. [工具向]__申请,下载,使用百度地图api

    前言 api即应用程序接口,在我们的日常开发中,我们不仅可以在开源代码仓库(,github,码云)中获得很大的帮助,在日常开发中占重要地位的另一个东西就是api,我们可以使用众多的第三方编写的优秀的a ...

  5. 微服务架构 | 12.1 使用 Apache Dubbo 实现远程通信

    目录 前言 1. Dubbo 基础知识 1.1 Dubbo 是什么 1.2 Dubbo 的架构图 1.3 Spring Cloud 与 Dubbo 的区别 1.4 Dubbo 的特点 1.5 Dubb ...

  6. WebAPI调用笔记 ASP.NET CORE 学习之自定义异常处理 MySQL数据库查询优化建议 .NET操作XML文件之泛型集合的序列化与反序列化 Asp.Net Core 轻松学-多线程之Task快速上手 Asp.Net Core 轻松学-多线程之Task(补充)

    WebAPI调用笔记   前言 即时通信项目中初次调用OA接口遇到了一些问题,因为本人从业后几乎一直做CS端项目,一个简单的WebAPI调用居然浪费了不少时间,特此记录. 接口描述 首先说明一下,基于 ...

  7. JavaWeb和WebGIS学习笔记(七)——MapGuide Open Source安装、配置以及MapGuide Maestro发布地图——超详细!目前最保姆级的MapGuide上手指南!

    JavaWeb和WebGIS学习笔记(七)--MapGuide Open Source安装.配置以及MapGuide Maestro发布地图 超详细!目前最保姆级的MapGuide上手指南! 系列链接 ...

  8. Matplotlib学习笔记1 - 上手制作一些图表吧!

    Matplotlib学习笔记1 - 上手制作一些图表吧! Matplotlib是一个面向Python的,专注于数据可视化的模块. 快速上手 这是使用频率最高的几个模块,在接下来的程序中,都需要把它们作 ...

  9. gRPC官方快速上手学习笔记(c#版)

    上手前准备工作 支持操作系统:windows.OS X.Linux.实例采用.net..net core sdk. The .NET Core SDK command line tools. The ...

  10. Qt快速上手(学习笔记四)

    拖了大半年,今天终于有更新了...我自己都不好意思,最近太忙了! 今天讲一下:QML语法 一 概述 QML是一种专门用于构建用户界面的编程语言,它允许用户构建高性能,具有流畅特效的可视化应用程序,QM ...

随机推荐

  1. el-dialog中中使用echarts

    1.在dialog中使用open方法 <el-dialog :title="diaTitle" :visible.sync="dialogVisible" ...

  2. react快速创建组件

    安装ES7插件  组件页面输入rcc

  3. B站【挽救小白第一季】前端代码记录笔记

    1. 新建工程命令: $ vue init mpvue/mpvue-quickstart my-project 参考mpvue官方快速入门:http://mpvue.com/mpvue/quickst ...

  4. 四大组件之活动Activity

    什么是Activity? Activity是什么呢?翻译为"活动"!之所以叫它Activity是因为它用于跟用户交互的,所以就有了"活动"的翻译,官方的解释如下 ...

  5. React父组件如何调用子组件方法,访问子组件State

    /** * * Author: shujun * Date: 2020-10-25 */ import React from 'react'; import {message} from 'antd' ...

  6. APP稳定性测试Monkey工具介绍

    一.Monkey工具简介 1.monkey的来源: Monkey是一个命令行工具,使用安卓调试桥(adb)来运行它,模拟用户:触摸屏幕.滑动Trackball.按键等随机事件流来对设备上的程序进行压力 ...

  7. echars中国地图

    vue中使用echars做出中国地图 这里只是个小demo,根据流程操作可以实现基础的中国地图,样式等后面根据需要自己去调 1.下载中国地图 echars官网示例中,没有中国地图的json,需要自己去 ...

  8. 083_SFDC Limit(二) 及良好的开发习惯

    关于常见开发中遇到的limit,应如何处理:https://developer.salesforce.com/page/Apex_Code_Best_Practices 链接内容很好,就不一一做解释 ...

  9. maven-阿里云镜像

    <mirror>     <id>nexus-aliyun</id>     <mirrorOf>*,!jeecg,!jeecg-snapshots&l ...

  10. 将【jar包、bat、其他文件】注册到windows服务的三种方法

    将[jar包.bat.其他文件]注册到windows服务的三种方法 1.instsrv.exe和srvany.exe 1.下载配置instsrv和srvany 下载地址:https://dl.pcon ...