前言
在大数据技术全球爆炸的时代,以及大数据在各行各业的实际应用,大数据的快速发展就像计算机和互联网一样,很可能成为新一轮的技术革命。数据处理、机器学习、AI等新兴技术诞生,会改变数据世界的许多算法和理论基础,从而实现科技突破。那么在大数据开发中需要的数据库技术有那些呢?其实数据库技术的成熟度取决于互联网发展过程中不断升级的需求,大数据开发中的核心又是数据库技术,所以数据库技术决定大数据开发的关键。
数据应用背景
由于各种技术的发展进化以及普及,数据通讯成本越来越低,各种传感技术和智能设备的成本大大降低,从传统的计算机、手机的实时采集数据到智能手表、手环、车载设备以及各种日常生活中的物联设备,无不都在产生海量的实时数据发送到云端。关于采集到的这些海量数据是企业无价而又宝贵的财富,不仅可以帮助企业实时监控设备的运行状况,生成多维度的报表数据,而且可以通过大数据分析和机器学习来对相关业务进行预判和预测,企业通过这些分析结果做出正确的决策,避免损失,创造价值。
大数据特性
不难发现,经过对所有硬件设备、机器、传感器以及各种系统所产生的数据的详细分析和研究,这些数据都是有时序的,甚至大部分都是带有位置信息的。这些数据的详细特征如下所示:
- 数据是时序的,就一定会带有时间戳;
- 数据是结构化的形式;
- 数据很少有删除或者更新的操作;
- 不用事务处理;
- 和互联网应用相比,写的多读的少;
- 数据有保留期限的限制;
- 用户关注的是持续一段时间的周期,而不是某一个特点时间点对应的值;
- 除了存储查询,还需要各种实时运算和统计的操作;
- 在查询分析数据的时候必须基于时间周期和地理位置;
- 数据采集量巨大,每天采集的数据轻松可达百亿条。
从上面的这些点不难发现,要想通过传统的关系型数据库或者流式计算引擎是很难实现的,因为没有充分利用这些海量数据的特点,性能的提升非常有限,只能通过集群来实现,这就会让企业投入更多的资源来处理,企业会花费更多的运营成本。针对这种痛点和挑战,涛思数据推出了一个开源的数据库产品:TDengine。
时序数据库
其实时序数据库是一个比较新兴的概念,目前比较流行有国内初创公司涛思数据的TDengine。时序数据库主要适用于物联网传感器数据存储,以及应用日志收集等使用场景。见名知意,时序数据库存储的数据一般都是通过时间戳来进行索引,所以不支持复杂的条件语句查询。
什么是TDengine
TDengine 是涛思数据旗下的一款产品开源、云原生、高性能、分布式、支持 SQL的时序数据库(Time Series Database),它已经在2018年8月推出正式商业化版本。TDengine不依赖任何开源或第三方软件,拥有完全自主知识产权,具有高可靠、可伸缩、零管理、简单易学等技术特点。提供内建的缓存、数据订阅、流式计算等功能,最大程度减少研发和运维的复杂度,可广泛应用于物联网、车联网、工业互联网、IT运维、金融等领域。
TDengine的独到之处
- 采用分布式:使用了原生分布式的设计,TDengine 提供水平扩展的功能,只需增加节点就可以获得更高的数据处理能力,且使用多副本机制保证系统的高可用性。
- 超高性能:使用创新的存储结构引擎,不管是数据查询还是写入,TDengine 的性能比通用的数据库提高 10 倍以上,单核每秒能处理2万次以上的请求,且存储空间也大大节省不少。
- 支持 SQL:TDengine 采用 SQL 作为数据查询语言,减少学习和迁移成本,同时提供 SQL 扩展来处理时序数据特有的分析,而且支持方便灵活的 schemaless 数据写入。
- 全栈时序数据加工:把数据库、缓存、消息队列、流式计算等功能整合在一起,应用不用再集成 Kafka、HBase、Redis等软件,极大幅降低应用开发、维护的成本。
- 零运维:一般的安装、集群只需几秒就可搞定,没有任何的依赖,且不用分库、分表。
- 无缝连接:不写一行代码就可以和 collectd、Telegraf、Matlab、Prometheus、EMQX、StatsD等第三方工具无缝连接与集成。
- 零学习成本:通过使用SQL查询语言,且支持 Java、 Go、Python、Rust、Node.js 等多语言,且和MySQL很类似,基本属于零学习成本。
TDengine的应用场景
TDengine的应用场景实在是太多了,几乎涵盖了所有大数据应用场景的领域,这里介绍几个比较有代表性的领域:
-
物联网领域
适用于物联网领域的各种智能硬件设备、大型联网设备、智慧家居、智慧城市、智慧农业、智慧矿山、智慧生态等。
-
工业互联领域
适用于工业互联的智能制造、数字孪生、流程行业,数字化生产等。
-
金融领域
适用于金融的股票、基金、证券、期货行情数据等。
-
车联网领域
适用于车联网的新能源汽车电池数据、汽车自动驾驶、智慧物流、TBox 数据处理、车辆管理等。
-
能源领域
适用于能源领域的潮汐发电、风力发电、光伏发电、配电、用电、输电监控、能源管理等。
TDengine的运用
工业互联网中,边缘设备只能处理局部的数据,不能形成一个全局的认知,所以在实际应用中需要借助云计算平台实现信息融合,达到想要的全局认知,这种情况下边云协同成为工业互联网发展的中流砥柱。边云协同主要是对生产链条上的某一项或者某几项的数据,进行实时告警、实时大屏监测,与此同时,还会将这些边缘的生产数据及时同步上传到云上大数据平台。
这里以工业互联场景为例,来讲TDengine的实际使用,用一个具体的实例来讲。此前的老数采流程里面,数据是通过工业逻辑控制器 PLC 里面进行采集的,接着进入到 Historian(即工业实时库),最后才去支撑业务应用,但是这种操作存在三个缺点:过于依赖 Windows 等环境;主备架构,不易扩展;相关生态比较封闭。
接着后面的TDengine 在边缘替换了原有的单机版 Historian 数据库。现在的一个比较有代表性的设计思路就是:采集数据从 工业逻辑控制器PLC 经过 OPC Server,直接接入到 TDengine 中,其实 TDengine 本身在车间侧就可支撑实时的业务,且包含实时报警、实时大屏检测的需求。所以企业可以通过利用 TDengine 提供的这种边云协同能力,把数据上传发送到云上的大数据平台中。
总结
伟人说过:实践是检验真理的唯一标准。任何事情都是要在事件中才能得到真实的结果,要想知道好不好用,只有用了才知道,随着大数据快速发展,数据库圈也是千变万化,而TDengine就是赶上了数据库发展的东风,不断完善和开拓新的功能,从TDengine的正式开源到迭代推出的3.0版本,一次次的优化计算功能和重构计算引擎,以及3.0版本的集群支持数十亿条以上的时间线、百台服务器节点,成为一款真正的云原生时序数据库。TDengine变得越来越完善、越来越强大、越来越专业,TDengine已经成为大数据开发和使用的利剑之一,助力未来大数据领域,给工业4.0增效赋能!
参考文献:
TDengine 白皮书: TDengine 白皮书 - 墨天轮文档
TDengine官网:TDengine | Time Series Database Open Source TSDB