文/陈凯 刘晶霞
随着计算机和物联网技术的发展,智能仓库管理系统的越来越人性化、系统化,对工器具本身的精准管理也越来越细致,深入到工器具每一次的使用记录;工器具及车辆保存环境的严苛控制, 实验测试设备对工器具性能的精准分析。服务前端优秀的服务能力,需要后端数据库系统的严密配合。当然数据库系统除了提供强大的读、写、删、改的能力,也需要对历史数据能长时间保存,以便更好的服务工器具的日常维护,新设备的采购决策,工器具性能故障的提前预警。
现存的仓库管理系统中,数据库的使用多为一般的如MySQL、 SQL Server等关系型数据库。较一般的使用而言,这类数据库的使用能达到初级的应用水平。在孤立的单独系统中能简单的对工器具的出入库进行记录,使用情况查找。而对于控制设备或者频度使用程度较高的检测设备。这类数据的使用由于数据量大,且关系粘合度较低。则使用此类的关系库在性能和功能上就难以达到需求的效果。如在关系库存储环境数据、设备运行时间数据、工器具检测,检验数据等操作时,由于数据量过大,为了保证系统的持续运行,通常只保留1个月以内的数据,大量的数据被无情删除抛弃。这对客户来说,是一种无形的损失,在大数据时代,最为重要的莫过于对大量样本数据的有效保存及整理。在数据分析时才能有理可依,有资源可用。
本文通过对传统关系型数据库及非关系型数据库、非关系型实时历史数据库在智能仓库系统中的应用分析,结合实际的应用案例。探索出了一种新的数据系统模型。
关系型数据库以行和列的形式存储数据,这一系列的行和列被称为表,一组表组成了数据库。用户用查询(Query)来检索数据库中的数据。一个Query是一个用于指定数据库中行和列的SELECT语句。关系型数据库通常包含下列组件:客户端应用程序(Client)、数据库服务器(Server)和数据库(Database)。Structured Query Language(SQL)是Client端和Server端的桥梁,Client用SQL来向Server端发送请求,Server返回Client端请求的结果。
关系型数据库并不是唯一的高级数据库模型,也完全不是性能最优的模型,但是关系型数据库确实是现今使用最广泛、最容易理解和使用的数据库模型。关系型数据库的最大特点就是事务的一致性,一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。关系型数据库容易理解,使用方便,易于维护,支持SQL,可用于复杂的查询。但是关系型数据库为了维护一致性所付出的巨大代价就是其读写性能比较差,只能使用固定的表结构。
表1:各种数据库的性能比较
表2:智能仓库管理系统中数据库的测试性能比较
NoSQL(Not Οnly SQL )提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。NoSQL数据库可以分为四大类:键值(Key-Value)存储数据库,这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据;列存储数据库,这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的;文档型数据库,该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储。文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高;图形(Graph)数据库,图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。
非关系型数据库在以下的这几种情况下比较适用:
(1)数据模型比较简单;
(2)需要灵活性更强的ΙT系统;
(3)对数据库性能要求较高;
(4)不需要高度的数据一致性;
(5)对于给定key,比较容易映射复杂值的环境。
非关系型数据库使用键值对存储数据,一般不支持ACΙD特性,严格上不是一种数据库,应该是一种数据结构化存储方法的集合。因此非关系型数据库无需经过sql层的解析,读写性能很高;基于键值对,数据没有耦合性,容易扩展;存储数据的格式更灵活多样。但是非关系新数据库不提供sql支持,学习和使用成本较高;无事务处理,附加功能和报表等支持也不好。
非关系型实时历史数据库是一款高效处理时域数据的工业级非关系型实时/历史数据库。它将时间加入到时间计算的关键键值参与计算。系统内置大量智能算法,可对海量时域数据实行高效管理。因此非关系型实时/历史数据库具备高可靠性、高安全性、高稳定性工作特性,系统内置大量智能算法,可对海量时域数据进行高效管理。其开放的、可扩展的分布式设计架构和良好的APΙ 体系可满足用户构建各种实时数据监控领域应用的需求。
非关系型实时历史数据库的时间轴参与计算,具有波形无损压缩算法。因此读写性能优于一般的非关系型数据库;能高速求取趋势线,趋势线时间长度绝对无限制;能高速历史数据回放、历史数据回补无上限。但是非关系型实时历史数据库与时间无关的数据使用此数据库意义不大,非时间相关事务处理能力较差。
各种数据库的性能比较见表1。
智能仓库管理系统主要针对传感器及控制类设备数据、工器具及人员信息数据、工器具检测信息记录数据进行管理。其中传感器数据和控制类设备数据由于是7*24小时不间断采集,在系统运行几年后,仅这部分数据总量将达到千万或过亿条。这对于仅仅使用一般的工控机作为运算中心的智能仓库管理系统来讲,对数据库的使用上将是一次挑战。如果这部分数据选择使用普通的关系型数据库来处理势必拖慢整个系统的运行效率。对于绘制数据曲线,进行智能控制都将是更大的挑战。工器具及人员信息等数据量不大的数据,因智能仓库管理系统中,工具和人的信息是随着时间的推移,不断有新的出入信息加入,尽管少有瞬间突变的情况但需要更高的性能用于对象及JSΟN数据的存储。工器具检测信息数据与时间成强相关性,但由于所检测的对象每次都可能不同,处理这部分数据要求数据库不仅仅需要将时间带入计算预测工具的性能预期,又要对每个工具的指标区分对待。因此在数据库选型方面,我们选用非关系型实时历史数据库+非关系型数据库的模式来对数据进行处理,得到了较为理想的性能指标。与使用传统的关系型数据库相比,我们做了对比,见表2。
由此可见,在智能的仓库管理系统中,针对于传感器及控制类设备数据设计使用非关系型实时历史数据库进行管理,有利于做到对控制系统的全生命周期记录及控制;工器具及人员信息数据则使用非关系型数据库进行数据存储,不仅仅能够为系统提供强大的数据储存计算性能,由于其对JSΟN的友好性也有利于仓库管理系统与外部支撑的硬件设备的数据交互;工器具检测信息记录数据则采用非关系型实时历史数据库+非关系型数据库两种数据库进行数据存储,其中非关系型数据库负责对每个工器具每次的检测情况进行记录,而非关系型实时历史数据库则用于分析随着时间推移每次工器具检测结果反应的工器具性能微量变化情况,对工器具的使用预期做预测。实践结果表明,非关系型实时历史数据库+非关系型数据库组合在性能上强于传统的关系型数据库。