为什么西门子、美的等企业这样进行架构升级,看看改造效果就知道了
在工业领域, 生产、测试、运行阶段都可能会产生大量带有时间戳的传感器数据,这都属于典型的时序数据。时序数据主要由各类型实时监测、检查与分析设备所采集或产生,涉及制造、电力、化工、工程作业等多个行业,具备写多读少、量非常大等典型特性。如 Apache HBase、MySQL 等互联网公司常用的数据库在写入、存储、查询、运维等方面都暴露出了诸多问题。这种情况下,从业务发展的角度出发,数据架构改造成为了当务之急。
本文汇总了包括西门子、美的、拓斯达、和利时在内的四家比较具有代表性的工业企业的架构改造案例,一起来看看他们都是如何做的,改造效果是否达成了预期。
西门子 x TDengine
“从高性能、高可用、低成本、高度一体化几个目标出发,我们发现 TDengine 正好符合产品重构所有的要求,尤其是低成本和高度一体化这两个点,这是目前绝大部分数据平台或时序数据库都不具备的。在确定选择 TDengine 作为系统的数据库后,我们在 SIMICAS® OEM 2.0 版本中移除了Flink、Kafka 以及 Redis,系统架构大大简化。”
业务背景
SIMICAS® OEM 设备远程运维套件是由 SIEMENS DE&DS DSM 团队开发的一套面向设备制造商的数字化解决方案。在其 1.0 版中,团队使用了 Flink + Kafka + PostgreSQL + Redis 的架构,因为引入了 Flink 和 Kafka,导致系统部署时非常繁琐,服务器开销巨大;同时为了满足大量数据的存储问题,PostgreSQL 中不得不做分库分表操作,应用程序较为复杂。这种情况下,如何降低系统复杂度、减少硬件资源开销,帮助客户减少成本,成为研发团队的核心任务。在调研过程中,TDengine 脱颖而出。
架构图
点击案例查看更多技术细节
美的 x TDengine
“当前,TDengine 主要被应用于中央空调制冷设备的监控业务中,作为先行试点,这一场景已经取得了不错的效果。在楼宇智能化方面,我们也有很多工作要做,从边缘侧的监控、到指令控制、再到边云协同的一体化服务,我们会在这些场景中继续探索和挖掘 TDengine 的潜力。”
业务背景
在 2021 楼宇科技 TRUE 大会上,美的暖通与楼宇事业部首次发布了数字化平台 iBuilding,以“软驱硬核”方式赋能建筑行业。作为一个全新的项目,iBuilding 在数据库选型上比较谨慎,分别对比了关系型数据库(Relational Database)以及主流的时序数据库(Time Series Database),包括 InfluxDB、TDengine、MySQL 等,因为在需求上更偏向于高效的存储和大范围时间的数据拉取,iBuilding 在综合评估了适配、查询、写入和存储等综合能力后,最终选择了 TDengine。
架构图
点击案例查看更多技术细节
拓斯达 x TDengine
“运行一段时间后,TDengine 的查询、写入速度完全可以满足我们目前的客户需求,最慢的分钟级,最快的能达到 1 秒一条;一个设备一天最多能写入近十万条数据,近千个设备同时写入也完全没有问题,相较于之前,写入速度提升了数十倍。查询数据在以月为单位的时间范围内也没有过于明显的延迟,整体的数据压缩比大概是 1/10,目前每天产生的数据量在数 G 左右。”
业务背景
在拓斯达的业务中,传统的关系型数据库已经无法高效处理时序数据,在加载、存储和查询等多个方面都遇到了挑战,主要问题包括写入吞吐低、存储成本大、维护成本高、查询性能差。为了更好地满足时序数据的处理需求,拓斯达开始进行数据库选型调研,他们发现,TDengine 专为时序数据库所打造和优化的写入、存储、查询等功能,非常匹配工业传感器数据的应用分析场景,最终其使用 TDengine 搭建了新的数据处理架构。
架构实现思路
通过网关采集设备数据推送到 MQTT,Java 后端监听到后会写入 TDengine,在后端按需求查询处理后再把数据返回给前端。具体来说,网关会先读取后台发布的上行规则,在采集到设备数据后,使用上行规则对数据进行处理计算后再将结果返回给下行规则模块,后台监听到后,会连接 TDengine 进行数据库表的创建修改和数据写入。之前在云平台拓斯达使用过 Kafka 进行数据的发布订阅,现在所有环境都改为 MQTT 了。
点击案例查看更多技术细节
和利时 x TDengine
“在测试阶段,我们发现,同等条件下,TDengine 的压缩率最高,数据占用的存储空间最小;在原始数据查询上,OpenTSDB 最慢,TDengine 与 HolliTSDB 在伯仲之间;在聚合查询操作上,TDengine 最快,HolliTSDB 的速度和 InfluxDB 相当,OpenTSDB 最慢。同时,InfluxDB 只能单机部署,集群版本并未开源,且查询性能存在瓶颈,其 QPS 约为 30-50。”
业务背景
在物联网场景下,面对庞大的时序数据处理需求,Oracle、PostgreSQL 等传统关系型数据库越来越吃力,因此和利时开始进行时序数据库的选型,对包括 InfluxDB、OpenTSDB、HolliTSDB(和利时自研时序数据库)和 TDengine 在内的四款时序数据库进行了选型调研及相关测试。测试结果显示,在同等条件下,TDengine 在查询、存储等方面均优于其他几款数据库,最终和利时决定接入 TDengine,以享受更多元的本地化支持和响应。
架构图
点击案例查看更多技术细节
结语
从以上案例中不难看出,在工业互联网场景下,面对庞大的时序数据处理需求,专业的时序数据库显然比传统的关系型数据库效果更加明显,上述企业案例在架构改造之后,确实达到了更高程度的降本增效。如果你有同样的困扰,欢迎添加小T微信,可以邀请你进入TDengine 用户交流群,和专业的解决方案架构师点对点沟通。
想了解更多TDengine Database的具体细节,欢迎大家在GitHub上查看相关源代码。
相关文章:
为什么西门子、美的等企业这样进行架构升级,看看改造效果就知道了
在工业领域, 生产、测试、运行阶段都可能会产生大量带有时间戳的传感器数据,这都属于典型的时序数据。时序数据主要由各类型实时监测、检查与分析设备所采集或产生,涉及制造、电力、化工、工程作业等多个行业,具备写多读少、量非常…...
open3d点云配准函数registration_icp
文章目录基本原理open3d调用绘图基本原理 ICP, 即Iterative Closest Point, 迭代点算法。 ICP算法有多种形式,其中最简单的思路就是比较点与点之间的距离,对于点云P{pi},Q{qi}P\{p_i\}, Q\{q_i\}P{pi},Q{qi}而言,如果二者是同一目标&am…...
HTML编码规范
本篇文章是基于王叨叨大佬师父维护的文档梳理的,有兴趣可以去看一下原文HTML编码规范。 1. 缩进与换行 【建议】 使用 2 个空格作为一个缩进层级,不允许使用tab字符 解释: 具体项目,可以使用2个空格,也可以使用…...
PDF SDK for Linux 8.4.2 Crack
PDF SDK for Linux 是适用于任何 Linux 企业或云应用程序的强大解决方案,非常适合需要完全可定制的 PDF 查看器或后端流程的任何 Linux 开发人员。 将 Foxit PDF SDK 嵌入到基于 Linux 的应用程序中非常容易。只需打开您最喜欢的 Linux IDE,复制您需要的…...
vb 模块和作用域的关系
模块在VB中有三种类型的模块,分别是窗体模块、标准模块和类模块。窗体模块窗体模块中包含了窗体以及窗体中所有控件的事件过程,文件扩展名为(*.frm),窗体文件中不仅包含窗体对象的外观设计,也包含窗体模块(…...
Redis分布式锁
一、背景 与分布式锁相对应的是「单机锁」,我们在写多线程程序时,避免同时操作一个共享变量产生数据问题,通常会使用一把锁来「互斥」,以保证共享变量的正确性,其使用范围是在「同一个进程」中。单机环境下࿰…...
京东前端经典面试题整理
img的srcset属性的作⽤? 响应式页面中经常用到根据屏幕密度设置不同的图片。这时就用到了 img 标签的srcset属性。srcset属性用于设置不同屏幕密度下,img 会自动加载不同的图片。用法如下: <img src"image-128.png" srcset&qu…...
django+mysql实现一个简单的web登录页面
目录 一、使用pyacharm创建一个django项目 二、启动django项目验证 三、配置mysql数据库 1、本地安装mysql数据库 1)安装mysql数据库 2)自己创建一个数据库 2、安装 pymysql 3、配置mysql数据库 1)在项目同名包下的_init_.py里面添加…...
python cartopy手动导入地图数据绘制底图/python地图上绘制散点图:Downloading:warnings/散点图添加图里标签
……开学回所,打开电脑spyder一看一脸懵逼,简直不敢相信这些都是我自己用过的代码,想把以前的自己喊过来科研了() 废话少说,最近写小综述论文,需要绘制一个地图底图+散点图ÿ…...
JavaScript中常用的数组方法
在日常开发中,我们会接触到js中数组的一些方法,这些方法对我们来说,可以很便利的达到我们想要的结果,但是因为方法比较多,有些方法也不常用,可能会过一段时间就会忘记,那么在这里我整理了一些数…...
磁疗为什么“没效果”?原来真相是这样!
很多人磁疗之后, 总爱迫不及待问一个问题: “这个多长时间见效啊?” …… 还有些人几天没有效果, 就果断下结论: “这东西没用!” …… 有不少人错误地把磁疗等同于“药品”一样看待,总觉得…...
【直击招聘C++】5.1函数模板
5.1函数模板一、要点归纳1.定义函数模板2.实例化函数模板3.重载模板函数4.函数调用的匹配顺序一、要点归纳 1.定义函数模板 定义函数模板的一般格式如下: template<类型形参表> 返回类型 函数名(形参表) {函数体; }例如以…...
谈谈Java多线程离不开的AQS
如果你想深入研究Java并发的话,那么AQS一定是绕不开的一块知识点,Java并发包很多的同步工具类底层都是基于AQS来实现的,比如我们工作中经常用的Lock工具ReentrantLock、栅栏CountDownLatch、信号量Semaphore等,而且关于AQS的知识点…...
国际化语言,多语言三种方式
可以用透传的方式,自己写local的json文件,不需要配置什么,直接传,自己写方法i18n nextjsi18n umi4一、透传的方式 export const AppContext React.createContext<any>({})app.tsx 用context包裹import type { AppProps } f…...
C++——哈希3|位图
目录 常见哈希函数 位图 位图扩展题 位图的应用 常见哈希函数 1. 直接定址法--(常用) 这种方法不存在哈希冲突 取关键字的某个线性函数为散列地址:Hash(Key) A*Key B 优点:简单、均匀 缺点:需要事先知道关键字的…...
75 error
全部 答对 答错 选择题 3. 某公司非常倚重预测型方法交付项目,而其招聘的新项目经理却习惯于运用混合型方法。项目范围包含很多不清晰的需求。项目经理应该如何规划项目的交付? A company that is heavily focused on delivering projects using predi…...
ESP-C3入门8. 连接WiFi并打印信息
ESP-C3入门8. 连接WiFi并打印信息一、ESP32 连接WiFi的基本操作流程1. 初始化nvs存储2. 配置WiFi工作模式3. 设置WiFi登陆信息4. 启动WiFi5. 开启连接6. 判断是否成功二、事件处理函数1. 定义事件处理函数2. 创建事件组3. 在事件处理函数中设置事件组位4. 在其他任务中等待事件…...
使用python将EXCEL表格中数据转存到数据库
使用Python将excel表格中数据转存到数据库 1. 思路: 1) 使用python读取excel表格中数据 2)根据数据生成sql语句 3)批量运行sql语句 2. 代码: import pandas as pddef readExcel(path, excel_file):return pd.read_e…...
【C++】类和对象(三)
目录 一、构造函数补充 1、初始化列表 1.1、初始化列表概念 1.2、初始化列表性质 2、explicit关键字 二、static成员 1、概念及使用 2、性质总结 三、友元 1、友元函数 2、友元类 四、内部类 五、拷贝对象时的一些编译器优化 一、构造函数补充 在《类和对象&#x…...
vTESTstudio - VT System CAPL Functions - General/Trigger Function
前面文章中我们已经介绍了常用的几种板卡的基本信息,那这些板卡该如何去通过软件调用呢?带着这个问题我们开始新的一块内容 - VT系统相关的自动化控制函数介绍,我会按照不同的板卡来分类,对其可控制的函数进行介绍,方便…...
IDEA 快捷键
ctrlD :复制当前行到下一行 ctrlO : 重写当前类的方法 ctrlshiftu : 大小写转化 Alt 上/下 :跳到上一个、下一个函数 Alt 左/右 : 回到上一个、下一个文件 Alt 回车 : 代码修正 Alt Insert : 插入代码 Ctrl Alt L …...
2023新华为OD机试题 - 入栈出栈(JavaScript) | 刷完必过
入栈出栈 题目 向一个空栈中依次存入正整数 假设入栈元素N(1 <= N <= 2^31-1) 按顺序依次为Nx ... N4、N3、N2、N1, 当元素入栈时,如果N1=N2+...Ny (y的范围[2,x],1 <= x <= 1000) 则N1到Ny全部元素出栈,重新入栈新元素M(M=2*N1) 如依次向栈存储6、1、2、3,当存…...
微信公众号扫码授权登录思路
引言 上学期研究了一下微信登录相关内容,也写了两三篇笔记,但是最后实际登录流程没有写,主要因为感觉功能完成有所欠缺,一直也没有好的思路;这两天我又看了看官方文档,重新构思了一下微信公众号登录相关的…...
数据结构与算法基础-学习-10-线性表之顺序栈的清理、销毁、压栈、弹栈
一、函数实现顺序栈的其他函数实现,请看之前的博客链接《数据结构与算法基础-学习-09-线性表之栈的理解、初始化顺序栈、判断顺序栈空、获取顺序栈长度的实现》。1、ClearSqStack(1)用途清理栈的空间。只需要栈顶指针和栈底指针相等ÿ…...
Hazel游戏引擎(005)
本人菜鸟,文中若有代码、术语等错误,欢迎指正 我写的项目地址:https://github.com/liujianjie/GameEngineLightWeight(中文的注释适合中国人的你) 文章目录前言关键操作代码文件关键代码代码流程代码文件关键代码exter…...
牛客网Python篇数据分析习题(四)
1.现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔): Nowcoder_ID:用户ID Level:等级 Achievement_value:成就值 Num_of_exercise&a…...
盲盒如何创业?
所谓的“盲盒”,受众群体大部分是那些爱碰运气的人,顾客买的是那种在打开盲盒时一刹那的惊喜感和神秘感,在打开盲盒之前,谁也不知道自己会得到什么,这也是为什么消费者更愿意购买的原因。网上的盲盒,主要是…...
第1集丨Java中面向对象相关概念汇总
目录一、基本概念1.1 类1.2 属性1.3 方法1.4 静态1.5 包1.6 import二、高级概念2.1 构造方法2.2 继承2.3 super & this2.4 多态2.5 方法重载2.6 方法重写2.7 访问权限2.8 内部类2.9 final2.10 抽象2.11 接口2.12 匿名类面向对象的编程思想力图使计算机语言中对事物的描述与…...
高性能(二)
三、读写分离和分库分表 1.读写分离 1.1 概述 将数据库的读写操作分散到不同的数据库节点上 通常一主多从一台主数据库负责写,多台从数据库负责读。 主库和从库之间会进行数据同步,以保证从库中数据的准确性。 1.2 问题及解决 1.2.1 问题 主从同…...
Allegro如何实现同一个屏幕界面分屏显示操作指导
Allegro如何实现同一个屏幕界面分屏显示操作指导 在做PCB设计的时候,会需要分屏显示,比如一边是放大的视图,另外一边是缩小的视图,Allegro支持同一个屏幕界面下进行分屏显示,如下图 而且会实时同步起来 如何分屏,具体操作如下 点击View...
wordpress的子主题/网站推广公司黄页
独热编码即 One-Hot 编码,又称一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效。 一、问题由来 在机器学习算法中,我们经常会…...
网站建设交流/百度热搜seo
奇怪的排序时间限制:1000 ms | 内存限制:65535 KB 难度:1描述 最近,Dr. Kong 新设计一个机器人Bill.这台机器人很聪明,会做许多事情。惟独对自然数的理解与人类不一样,它是从右往左读数.比如,它看到123时…...
直销可以做网站有效果吗/找文网客服联系方式
夜光序言: 一盏秋墨绘落时光岁月,是生活人生的风景,一盏秋墨绘出生活人生,是时光岁月的虹桥,一盏秋墨在掌心,开天地开世界,开出生命时间的光辉。 正文:...
哈尔滨网站建设推荐/在线数据分析网站
json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构 对象:对象在js中表示为{ }括起来的内容,数据结构为 { key:value, key:value, ... }…...
西安官网优化报价/百度seo权重
我的游戏学习日志57———类型游戏策划(1.4)—动作游戏(4) (上接)1.动作游戏策划-设计元素: <9>惊喜 产生惊喜的方式:设置隐藏元素、跳关、额外奖励 ①隐藏元素:包括隐藏道具、隐藏关卡、…...
php网站开发建设/河南网站建设制作
24、墨 池 记曾巩学习重点:1、体会文章的主旨2、体会记叙与议论之间的关系从而把握作者要表达的观点。课时安排:三课时第一课时教学步骤:一、导语:笔墨纸砚是我国古代所说的“文房四宝”,用毛笔写字不用时要洗净&…...