TDengine上手笔记
TDengine简介
TDengine 是一款开源、高性能、云原生的时序数据库,且针对物联网、车联网、工业互联网、金融、IT 运维等场景进行了优化。您可以像使用关系型数据库 MySQL 一样来使用它.
数据模型和整体架构
在典型的物联网, 运维检测场景中, 往往有多种不同类型的传感器用来采集各种不同类型的数据, 而每种类型的数据又有多个同种类型的设备分布在不同的空间. 最后需要将它们采集到的的数据汇总,
计算和分析, 而同种类型的设备采集到的数据结构又是完全相同的.
需要采集的数据的特点总结就是:
- 数据连续性,时序性
- 数据结构化
- 数据量巨大
因此TDengine的特点就是:
- 因为采集的数据结构固定, 都是结构化数据, 因此可以使用关系型数据库模型来管理数据, 便于根据各种条件进行查询归档
- 每个设备都是单独对一个表进行写入, 每个表数据源唯一,因此TDengine对每个采集器单独建表, 这样就不需要加锁进行隔离
- 对于一个数据采集点而言,其产生的数据是时序的,因此写的操作可用追加的方式实现,进一步大幅提高数据写入速度。
超级表:同一类型数据采集点的集合
TDengine把每一类不同的采集点都作为一个超级表, 每个超级表下又根据该类设备不同设备编号分为多个子表. 子表用来存储每个采集点采集到的数据, 超级表用于聚合, 计算, 分析.
每个超级表下的子表的表结构都是完全相同的, 只有标签不同, 标签的格式在超级表中定义, 且后期可以修改.
TDengine主节点写入流程:
- master vnode主节点收到应用的数据插入请求,验证OK,进入下一步;
- 如果系统配置参数 walLevel 大于 0,vnode 将把该请求的原始数据包写入数据库日志文件 WAL。如果 walLevel 设置为 2,而且 fsync 设置为 0,TDengine 还将 WAL 数据立即落盘,以保证即使宕机,也能从数据库日志文件中恢复数据,避免数据的丢失;
- 如果有多个副本,vnode 将把数据包转发给同一虚拟节点组内的 slave vnodes, 该转发包带有数据的版本号(version);
- 写入内存,并将记录加入到 skip list跳表(缓存);
- master vnode 返回确认信息给应用,表示写入成功。
- 如果第 2、3、4 步中任何一步失败,将直接返回错误给应用。
SQL语法可以参照官方文档:https://www.taosdata.com/docs/cn/v2.0/taos-sql#-7
TDengine上手笔记的更多相关文章
- PYNQ上手笔记 | ① 启动Pynq
现在人工智能非常火爆,一般的教程都是为博硕生准备的,太难看懂了,分享一个非常适合小白入门的教程,不仅通俗易懂而且还很风趣幽默,点☞这里☜进入传送门~ = = = = 我是华丽的分割线 = ...
- Dubbo | Dubbo快速上手笔记 - 环境与配置
目录 前言 1. Dubbo相关概念 1.1 自动服务发现工作原理 2. 启动文件 2.1 zookeeper-3.4.11\bin\zkServer.cmd 2.2 zookeeper-3.4.11 ...
- CloudFoundry 快速上手笔记
1.登陆cf 2.登陆进入webservice 3.查看ruby版本 4.查看gem版本 5.安装CF 6.配置cf Download the CLI from github: https://git ...
- [工具向]__申请,下载,使用百度地图api
前言 api即应用程序接口,在我们的日常开发中,我们不仅可以在开源代码仓库(,github,码云)中获得很大的帮助,在日常开发中占重要地位的另一个东西就是api,我们可以使用众多的第三方编写的优秀的a ...
- 微服务架构 | 12.1 使用 Apache Dubbo 实现远程通信
目录 前言 1. Dubbo 基础知识 1.1 Dubbo 是什么 1.2 Dubbo 的架构图 1.3 Spring Cloud 与 Dubbo 的区别 1.4 Dubbo 的特点 1.5 Dubb ...
- WebAPI调用笔记 ASP.NET CORE 学习之自定义异常处理 MySQL数据库查询优化建议 .NET操作XML文件之泛型集合的序列化与反序列化 Asp.Net Core 轻松学-多线程之Task快速上手 Asp.Net Core 轻松学-多线程之Task(补充)
WebAPI调用笔记 前言 即时通信项目中初次调用OA接口遇到了一些问题,因为本人从业后几乎一直做CS端项目,一个简单的WebAPI调用居然浪费了不少时间,特此记录. 接口描述 首先说明一下,基于 ...
- JavaWeb和WebGIS学习笔记(七)——MapGuide Open Source安装、配置以及MapGuide Maestro发布地图——超详细!目前最保姆级的MapGuide上手指南!
JavaWeb和WebGIS学习笔记(七)--MapGuide Open Source安装.配置以及MapGuide Maestro发布地图 超详细!目前最保姆级的MapGuide上手指南! 系列链接 ...
- Matplotlib学习笔记1 - 上手制作一些图表吧!
Matplotlib学习笔记1 - 上手制作一些图表吧! Matplotlib是一个面向Python的,专注于数据可视化的模块. 快速上手 这是使用频率最高的几个模块,在接下来的程序中,都需要把它们作 ...
- gRPC官方快速上手学习笔记(c#版)
上手前准备工作 支持操作系统:windows.OS X.Linux.实例采用.net..net core sdk. The .NET Core SDK command line tools. The ...
- Qt快速上手(学习笔记四)
拖了大半年,今天终于有更新了...我自己都不好意思,最近太忙了! 今天讲一下:QML语法 一 概述 QML是一种专门用于构建用户界面的编程语言,它允许用户构建高性能,具有流畅特效的可视化应用程序,QM ...
随机推荐
- 3D模型在线查看工具
3D场景工具推荐:NSDT场景编辑器. glTF Viewer 2.0是一个可以在线查看GLTF格式3D模型的,可以对模型进行显示设置.灯光设置来查看模型效果,除此之外还可以对模型进行性能分析和模型验 ...
- Postgresql invalid command \N数据恢复处理
做一个单表恢复工作,数据在1000多W,说是报了错误导不进去,环境与流程见下:恢复步骤: 1.导出语句 pg_dump -h xxxxx -p 5432 -U postgres -b -Fp db_t ...
- pat 乙级 1025 反转链表
目前无法ac过最后一个测试点,其余ac,原因是有无效节点存在,但这个代码加上去除无效节点函数时便会运行超时 还没想出来怎么做,先这样吧 #include <stdio.h> #includ ...
- tp-link路由器后台_硬解
title: 脚本_tp-link路由器后台_硬解 author: 杨晓东 permalink: 脚本 date: 2021-10-02 11:27:04 categories: - 投篮 tags: ...
- 【FPGA学习】MATLAB与FPGA实现FIR滤波器
本篇博客记录一下在matlab设计和在FPGA平台实现FIR滤波器的方法,平台是Xilinx的ZYNQ 参考: AMBA AXI-Stream Protocol Specification 使用mat ...
- [后端-Python]-项目练习集
1 1. 2 ''' 3 knowledge_point: 4 1.练习if...else: 5 2.练习while; 6 3.练习列表的切片取值: 7 8 requirements: 9 购物车: ...
- mybatis_pagehelper_selectOne的SQL语句被莫名的增加分页相关设置,暂定解决办法
在使用mybatis.以及其分页插件pagehelper时,原本的一个selectOne的sql语句被莫名(原因未知)的加上了分页相关,引起如下异常: exception is org.apache. ...
- QML笔记——MouseArea的覆盖区域
问题摘要: 初学QML,今天发现一个奇怪的现象,调用MouseArea的位置不同,结果不同. 1.一个简单的qml示例 Rectangle { id: root width: 320 height: ...
- 安全测试-WEB安全渗透测试基础知识(三)
1.3. 域名系统 1.3.1. 域名系统工作原理 DNS解析过程是递归查询的,具体过程如下: 用户要访问域名www.example.com时,先查看本机hosts是否有记录或者本机是否有DNS缓存, ...
- 蓝牙mesh消息包与以太网帧的分层构成
目录 笔者在接触以太网之前,先了解的是蓝牙mesh的各类信息.现翻看一本介绍TCP/IP协议的资料,发现应用层数据在以太网协议栈内的封装过程与蓝牙mesh协议栈内的封装过程异曲同工.下图左侧是手头这本 ...