CN106354774B - 一种实时工业过程大数据压缩存储系统及方法 - Google Patents

一种实时工业过程大数据压缩存储系统及方法 Download PDF

Info

Publication number
CN106354774B
CN106354774B CN201610702102.7A CN201610702102A CN106354774B CN 106354774 B CN106354774 B CN 106354774B CN 201610702102 A CN201610702102 A CN 201610702102A CN 106354774 B CN106354774 B CN 106354774B
Authority
CN
China
Prior art keywords
data
acquisition
module
memory cache
compression
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610702102.7A
Other languages
English (en)
Other versions
CN106354774A (zh
Inventor
徐泉
刘文庆
张鹏
冉振莉
王良勇
许美容
崔东亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Northeastern University China
Original Assignee
Northeastern University China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Northeastern University China filed Critical Northeastern University China
Priority to CN201610702102.7A priority Critical patent/CN106354774B/zh
Publication of CN106354774A publication Critical patent/CN106354774A/zh
Application granted granted Critical
Publication of CN106354774B publication Critical patent/CN106354774B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files

Abstract

本发明提供一种实时工业过程大数据压缩存储系统及方法,涉及大数据分析技术领域。包括数据采集模块、日志文件存储模块、内存缓存模块、数据压缩模块、非关系型数据库和渲染器,利用数据采集模块采集实时工业过程数据,并同步发送到内存缓存模块和日志文件存储模块,对内存缓存模块中的数据进行压缩,将压缩后的数据存储到非关系型数据库中。本发明能有效解决实时工业过程大数据的存储问题,对实时工业过程大数据最大化压缩,并采用非关系型数据库进行存储,既有效地解决对实时工业过程数据的存储,又能为企业节省存储实时工业过程大数据产生的巨额成本,并可以快速响应数据的在线查询、计算等。

Description

一种实时工业过程大数据压缩存储系统及方法
技术领域:
本发明涉及大数据分析技术领域,尤其涉及一种实时工业过程大数据压缩存储系统及方法。
背景技术:
随着计算机技术的不断发展,大数据应运而生,从而在全球范围掀起一股数字改革狂潮。数据已然成为了一种宝贵资源,而对这种资源的有效存储及利用,可以使得企业向智能生产和智慧决策转型升级。目前,工业过程实时大数据存储一般采用实时数据库及关系型数据库,而对工业企业来说,数据规模在以飞快的速度增长,在保证数据本身特性不丢失、保证存储的数据可以满足大数据分析的前提下,如何最大化的存储数据以及如何控制因为数据存储产生的高额成本对企业来说是一个巨大挑战,已然成为了企业发展的绊脚石。显然,只有采用低廉的数据存储方式,及在数据量一定,保证数据本身质量不受影响的前提下,对数据进行最大化的压缩,才能解决流程工业大数据存储的问题。
随着现代工业生产规模的不断扩大,生产设备由就地分散的局部自动控制逐渐向综合自动化体系发展,而一般工业控制系统地域跨越性较大,相当一部分设备工作在户外,一些作业点分散,环境恶劣,因此需要对各种设备的运行状态、生产指标等参数做到实时监控。实时工业数据主要包括各种生产指标数据、工况数据以及状态信息数据。
目前,在大数据压缩存储系统方面的专利主要有CN1853198A,该专利涉及压缩视频图像、音频数据,使用诸如小波变换或DTC的变换编码数据,通过最高有效位和/或位值对变换系数分组,以及一个组接一个组的传送它们,没有涉及到工业过程实时大数据的压缩存储,随着工业企业越来越重视其数据价值,企业正在逐步构建工业大数据采集、存储、分析系统,现有专利在工业过程实时大数据的压缩存储方面难以满足需求。
发明内容:
针对现有技术的缺陷,本发明提供一种实时工业过程大数据压缩存储系统及方法,
一方面,本发明提供一种实时工业过程大数据压缩存储系统,包括数据采集模块、日志文件存储模块、内存缓存模块、数据压缩模块、非关系型数据库和渲染器;
数据采集模块,用于采集实时工业过程数据,包括电子测量仪、PLC和采集客户端;电子测量仪,用于采集每个工业生产现场的生产数据,并发送到PLC;PLC用于逻辑控制和生产数据的采集;采集客户端用于将生产数据发送到内存缓存模块;
日志文件存储模块,用于将采集客户端发送到内存缓存模块的数据写入磁盘,进行数据的持久化,以防止内存缓存模块失效而导致数据丢失;当内存缓存模块因失效而导致数据丢失的时候,日志文件存储模块会向内存缓存模块发送因内存缓存模块失效而丢失的数据,以确保生产数据不在内存缓存模块丢失;当内存缓存模块数据经过数据压缩模块压缩存储后,日志文件存储模块中对应的数据将会被删除,以节省数据存储空间;
内存缓存模块,用于存储采集客户端发送的实时工业过程数据,一方面供渲染器直接读取内存缓存模块中的数据,满足实时性查询、计算需求,另一方面,为数据压缩模块提供内存数据进行压缩;
数据压缩模块,用于对内存缓存模块中的实时工业过程数据按设定数据块大小进行压缩,包括块设定模块和压缩模块;设定模块用于设定所有采集数据项被用来进行一次数据压缩所采集的次数,即数据块的大小;压缩模块用于利用数据压缩方法对采集的工业过程数据进行压缩处理;
非关系型数据库,是面向列存储的数据库,用于存储经数据压缩模块压缩后的大规模实时工业过程数据;
渲染器,用于从内存缓存模块或非关系型数据库中读取数据,然后进行在线数据查询、计算、分析或可视化。
进一步地,电子测量仪采集的数据为浮点型生产数据,PLC采集的数据为布尔类型生产数据。
进一步地,压缩模块中的数据压缩方法为:结合工业过程数据时间采集标签,使用T,V二元组进行压缩表示,针对工业采集中数据的波动,设置数据波动范围,进行压缩。
另一方面本发明还提供一种实时工业过程大数据压缩存储方法,该方法利用上述的一种实时工业过程大数据压缩存储系统实现,包括如下步骤:
步骤1、利用数据采集模块采集实时工业过程数据,采集过程如下:
步骤1.1、设定电子测量仪采集每个工业生产现场生产数据的周期;
步骤1.2、电子测量仪和PLC采集每个工业生产现场的生产数据;
步骤1.3、采集客户端读取电子测量仪和PLC采集的生产数据;
步骤2、采集客户端将步骤1.3读取的数据同步发送到内存缓存模块和日志文件存储模块,具体发送与存储方法如下:
步骤2.1、定义内存缓存模块中的数据标识项;
步骤2.1.1、对工业生产过程的工序进行编号;
步骤2.1.2、对采集的生产数据按采集数据项进行编号;
步骤2.1.3、利用步骤2.1.1和步骤2.1.2产生的编号,生成内存缓存的数据标识项,数据标识项由两部分组成,前一部分是步骤2.1.1中的工序编号,后一部分是步骤2.1.2中的采集数据项编号;
步骤2.2、采集客户端将步骤1.3读取的数据同步发送到内存缓存模块和日志文件存储模块进行存储;
步骤2.2.1、确定采集数据项在内存缓存模块中的存储位置;
步骤2.2.2、将步骤1.3读取的数据按采集数据项对应存储到步骤2.2.1确定的存储位置,形成键值对数据;
步骤2.2.3、将步骤1.3读取的数据发送到日志文件存储模块中存储;
步骤2.3、判断对内存缓存模块中存储数据的处理方式,若要进行压缩,则转到步骤3;若直接对数据进行在线查询、计算或可视化,则转到步骤7;
步骤3、对内存缓存模块中的数据进行数据压缩处理,压缩过程如下:
步骤3.1、设定压缩数据块的大小;
步骤3.2、判断内存缓存模块中是否有因内存缓存模块失效而丢失的数据,若有,则执行步骤3.3;若没有,则直接执行步骤3.4;
步骤3.3、日志文件存储模块向内存缓存模块发送因内存缓存模块失效而丢失的数据,然后执行步骤3.4;
步骤3.4、从内存缓存模块中读取所设定数据块大小的数据;
步骤3.5、对读取的数据块进行编号,形成数据组<编号,数据块内容>;
步骤3.6、将待压缩数据块中的采样数据项的采样时刻与该数据块中采样数据项初始采样时刻的偏差作为时间偏移量,即该时间偏移量为采样周期的整数倍,对读取的数据块中的采样数据项按采集数据项的编号依次进行压缩,具体步骤为:
步骤3.6.1、对该数据块中的待压缩的采集数据项的数据进行压缩,判断该采集数据项的数据类型,若是浮点型生产数据,则对浮点型生产数据进行压缩处理,若是布尔型生产数据,则对布尔型生产数据进行压缩处理;
步骤3.6.2、判断是否该数据块的所有数据采集项完成压缩,若是,则执行步骤4;若否,则采集数据项编号后移一位,对该数据块的下一个采集数据项的数据进行压缩,执行步骤3.6.1;
步骤4、将步骤3.6压缩后的数据存储到非关系型数据库中,存储方法如下:
步骤4.1、在非关系型数据库中建立数据存储表;
步骤4.2、设置所述数据存储表的行关键字;
步骤4.2.1、根据工业过程,以生产工序作为行关键字;
步骤4.2.2、对行关键字进行编码,按照工艺流程先后顺序,使得工序的关键字编码按照字典顺序排列,以保证相连工序的数据存储在相邻位置;
步骤4.3、设置所述数据存储表的列族;
步骤4.4、设置每个所述列族下的列名;
步骤4.5、将步骤3.6压缩后的数据按照生产工序分类,存储到对应的表单元中;
步骤4.6、判断压缩后的数据是否成功存储到非关系型数据库中,若成功存储,则执行步骤5;若没有成功存储,则返回步骤4.5,重新进行数据存储;
步骤5、将日志文件存储模块中对应的已成功存储到非关系型数据库中的数据删除;
步骤6、判断是否内存缓存模块中的所有数据都完成压缩与存储处理,若是,则执行步骤7;若否,则返回执行步骤3.4,从内存缓存模块中读取新的数据块,进行新数据块的压缩与存储;
步骤7、渲染器读取内存缓存模块或非关系型数据库中的数据,进行在线数据查询、数据计算、数据分析或可视化的处理。
进一步地,对浮点型生产数据进行压缩处理的方法如下:
步骤3.6.1.1、设定该浮点型生产数据的数值波动范围;
步骤3.6.1.2、根据数据块中的该浮点型采集数据项第一个采样时刻,即+0采样时刻的数值,判断该采集数据项第m个采样时刻的数值是否超出所设定的波动范围,若是,则执行步骤3.6.1.3;若否,则执行步骤3.6.1.4;
步骤3.6.1.3、记录对应采样时刻的时间偏移量tm和该采样时刻的前一个采样时刻的数值vm-1,写入该浮点型采集数据项对应的数据库T,V二元组形式的压缩数据对{T[],V[]}中,为{T[+0,tm],V[vm-1]},执行步骤3.6.1.4;
步骤3.6.1.4、判断m是否等于n,n表示该采集数据项的所有采样时刻的个数,若不等于,则将m加1,返回步骤3.6.1.2;若等于,则判断压缩数据对{T[],V[]}中是否为空,若为空,则将最后一个采样时刻的时间偏移量tn和对应的数值vn写入压缩数据对{T[],V[]}中,为{T[+0,tn],V[vn]},再执行步骤3.6.2,若不为空,则执行步骤3.6.2。
进一步地,对布尔型生产数据进行压缩处理的方法如下:计算数据块中该布尔型采集数据项两种状态0和1的个数,提取出所有数据状态个数少的采样时刻的时间偏移量和该状态数据,写入该布尔型采集数据项对应的数据库T,V二元组形式的压缩数据对{T[],V[]}中,再执行步骤3.6.2。
由上述技术方案可知,本发明的有益效果在于:本发明提供的一种实时工业过程大数据压缩存储系统及方法,能有效解决实时工业过程大数据的存储问题,对实时工业过程大数据最大化压缩,并采用非关系型数据库进行存储,既有效地解决对实时工业过程数据的存储,又能为企业节省存储实时工业过程大数据产生的巨额成本,可以使企业实现经济利益最大化;非关系型数据针对某一列或者某几列的查询有非常大的IO优势,可以快速响应数据的在线查询、计算等。
附图说明:
图1为本发明实施例提供的系统结构框图;
图2为本发明实施例提供的方法总流程图;
图3为图2中步骤S2的方法流程图;
图4为图2中步骤S3的方法流程图;
图5为图4中步骤S3.6.1的方法流程图;
图6为图2中步骤S4的方法流程图。
图中:1、数据采集模块;2、数据压缩模块。
具体实施方式:
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本实施例对选矿工业进行实时监控,共采集14个生产数据,包括运行状态数据、工作环境数据、物料信息数据。选用的大数据框架为Hadoop集群,版本为2.6.0,包括1个主节点Master,19个从节点Slave1、Slave2、…、Slave19,选用的节点为Ubuntu 13.04操作系统,8G内存。在20个服务器中均搭建Zookeeper+Kafka集群,为实时工业过程大数据分析处理提供需要的环境,Zookeeper用来做资源管理,Kafka用来传送数据,并创建一个Topic主题,用于存放实时生产数据,开启20台Kafka集群服务器,Kafka的版本号为2.9.1-0.8.2.2,当一台服务器出现故障时,可以换做另一台服务器提供服务,防止因服务器出现故障而影响数据传输;Zookeeper的版本为3.4.8,包括1个leader和19个follower,为分布式应用提供一致性服务,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
本实施例对选矿工业进行实时监控的工业过程大数据进行压缩存储的系统,如图1所示,一种实时工业过程大数据压缩存储系统,包括数据采集模块1、日志文件存储模块、内存缓存模块、数据压缩模块2、非关系型数据库和渲染器。
数据采集模块1:用于采集实时工业过程数据,包括电子测量仪、PLC和采集客户端。电子测量仪,用于采集每个工业生产现场的生产数据,并发送到PLC,本实施例中,采用ME96NSR的多功能电子测量仪,采集的数据为浮点型生产数据;PLC用于逻辑控制和生产数据的采集,本实施例中,采用型号为FOXBORO BK3493 MANUAL系列的PLC,采集的数据为布尔类型生产数据;采集客户端用于将生产数据发送到内存缓存模块,本实施例中,采用OPCClient作为采集客户端,数据采集模块1采用高性能分布式数据采集群的形式进行工业现场的数据采集。
日志文件存储模块,用于将采集客户端发送到内存缓存模块的数据写入磁盘,进行数据的持久化,以防止内存缓存模块失效而导致数据丢失。当内存缓存模块因失效而导致数据丢失的时候,日志文件存储模块会向内存缓存模块发送因内存缓存模块失效而丢失的数据,以确保生产数据不在内存缓存模块丢失。当内存缓存模块数据经过数据压缩模块2压缩存储后,日志文件存储模块中对应的数据将会被删除,以节省数据存储空间。
内存缓存模块,用于存储采集客户端发送的实时工业过程数据,一方面供渲染器直接读取内存缓存模块中的数据,满足实时性查询、计算需求,另一方面,为数据压缩模块2提供内存数据,供其对进行数据压缩。本实施例中,内存缓存的工作方式为分布式缓存技术,采用redis,实现实时工业过程大数据的缓存处理。
数据压缩模块2,用于对内存缓存模块中的实时工业过程数据按设定数据块大小进行压缩,包括块设定模块和压缩模块;设定模块用于设定所有采集数据项被用来进行一次数据压缩所采集的次数,即数据块的大小;压缩模块用于利用数据压缩方法对采集的工业过程数据进行压缩处理,结合工业过程数据时间采集标签,使用T,V二元组进行压缩表示,针对工业采集中数据的波动,设置数据波动范围,进行压缩。
非关系型数据库,是面向列存储的数据库,用于存储经数据压缩模块2压缩后的大规模实时工业过程数据,本实施例中,非关系型数据库采用HBase,版本为1.2.0。
渲染器,用于从内存缓存模块或非关系型数据库中读取数据,然后进行在线数据查询、计算、分析或可视化。
采用上述的系统对工业过程实时大数据进行压缩存储的方法,如图2所述,包括如下步骤。
S1、利用数据采集模块1采集实时工业过程数据,采集过程如下:
S1.1、设定电子测量仪采集每个工业生产现场生产数据的周期为1s;
S1.2、电子测量仪和PLC采集工业生产现场的生产数据,其中,电子测量仪采集浮点型数据,PLC采集布尔型数据;
S1.3、采集客户端OPC Client读取电子测量仪和PLC采集的生产数据。
S2、采集客户端将步骤S1.3读取的数据同步发送到内存缓存模块和日志文件存储模块,如图3所示,具体发送与存储方法如下:
S2.1、定义内存缓存模块中的数据标识项;
S2.1.1、对工业生产过程的工序进行编号,如表1所示;
表1 生产工序编号表
生产工序名称 生产工序编号
原矿筛分 A
竖炉焙烧 B
弱磁磨矿及选别 C
强磁磨矿及选别 D
精矿浓缩 E
精矿过滤 F
S2.1.2、对采集的生产数据按采集数据项进行编号,本实施例的14个采集数据项如表2所示;
表2 采集数据项编号表
S2.1.3、利用步骤S2.1.1和步骤S2.1.2产生的编号,生成内存缓存的数据标识项,所述数据标识项由两部分组成,前一部分是步骤S2.1.1中的工序编号,后一部分是步骤S2.1.2中的采集数据项编号,本实施例中的数据标识项如表3所示;
表3 数据标识项编号表
数据标识项 采集数据项名称 数据标识项 采集数据项名称
AID0001 选矿综精品位(TFe) DID0008 强磁入磨品位
AID0002 选矿综精水分 DID0009 高梯度尾矿品位
BID0003 1-2旋溢粒度超出(-200目) EID0010 选矿综精烧损Ig
BID0004 2-2旋溢粒度超出(-200目) EID0011 焙烧矿品位
CID0005 三磁精品位 FID0012 选3#
CID0006 浮选给矿SiO2 FID0013 块1#
CID0007 弱磁浮精SiO2 FID0014 粉2#
S2.2、采集客户端将步骤S1.3读取的数据同步发送到内存缓存模块和日志文件存储模块进行存储;
S2.2.1、确定采集数据项在内存缓存模块中的存储位置;
S2.2.2、将步骤S1.3读取的数据按采集数据项对应存储到步骤S2.2.1确定的存储位置,形成键值对数据,具体如表4所示;
表4 键值对数据表
<AID0001,采集数据项数值> <DID0008,采集数据项数值>
<AID0002,采集数据项数值> <DID0009,采集数据项数值>
<BID0003,采集数据项数值> <BID0010,采集数据项数值>
<BID0004,采集数据项数值> <BID0011,采集数据项数值>
<CID0005,采集数据项数值> <FID0012,采集数据项数值>
<CID0006,采集数据项数值> <FID0013,采集数据项数值>
<CID0007,采集数据项数值> <FID0014,采集数据项数值>
S2.3、判断对内存缓存模块中存储数据的处理方式,若要进行压缩,则转到步骤S3;若直接对数据进行在线查询、计算或可视化,则转到步骤S7。
S3、对内存缓存模块中的数据进行数据压缩处理,压缩过程如图4所示,具体方法如下:
S3.1、设定压缩数据块的大小,本实施例中,设定30次采集的实时工业过程数据量作为数据块的大小,每个数据块包含表2中的14个采集数据项;
S3.2、判断内存缓存模块中是否有因内存缓存模块失效而丢失的数据,若有,则执行步骤S3.3;若没有,则直接执行步骤S3.4;
S3.3、日志文件存储模块向内存缓存模块发送因内存缓存模块失效而丢失的数据,然后执行步骤3.4;
S3.4、从内存缓存模块中读取所设定数据块大小的数据;
S3.5、对读取的数据块进行编号,形成数据组<编号,数据块内容>,如;<B1,数据块>;
S3.6、将待压缩数据块中的采样数据项的采样时刻与该数据块中采样数据项初始采样时刻的偏差作为时间偏移量,对读取的数据块中的采集数据项按采集数据项的编号依次进行压缩,如图5所示,具体方法为:
S3.6.1、对该数据块中的待压缩的采集数据项的数据进行压缩,判断该采集数据项的数据类型,若该采集数据项是浮点型生产数据,则执行步骤S3.6.1.1至步骤S3.6.1.4,对浮点型生产数据进行压缩处理;若该采集数据项是布尔型生产数据,则执行步骤S3.6.1.5,对布尔型生产数据进行压缩处理;本实施例中,第一个数据块的14个采集数据项、每个采集数据项的30个数值分别如表5所示。
表5 第一个数据块压缩前的数值表
表5 续表一
表5 续表二
表5 续表三
本实施例中,第一个数据块的第一个采集数据项AID0001为浮点型生产数据,则执行步骤S3.6.1.1至步骤S3.6.1.4。
S3.6.1.1、设定该浮点型生产数据的数值波动范围为±3%,即所判断的数值在基础数值的97%到103%之间,为没有超出波动范围;
S3.6.1.2、根据数据块中的该浮点型采集数据项第一个采样时刻的数值,即+0时刻的数值,判断该采集数据项第m(m>1)个采样时刻的数值相对于+0采样时刻的数值是否超出所设定的波动范围,若是,则执行步骤S3.6.1.3;若否,则执行步骤S3.6.1.4;
本实施例中,采集数据项AID0001的第一个采样时刻的数值为8.29,m=2时,第二个采样时刻即+1采样时刻的数值为8.14,8.29×97%<8.14<8.29×103%,相对于+0采样时刻的数值8.29没有超出所设定的波动范围±3%,则执行步骤S3.6.1.4;
S3.6.1.3、记录对应采样时刻的时间偏移量tm和该采样时刻的前一个采样时刻的采集数据项的数值vm-1,写入该浮点型采集数据项对应的数据库T,V二元组形式的压缩数据对{T[],V[]}中,为{T[+0,tm],V[vm-1]},执行步骤S3.6.1.4;
S3.6.1.4、判断m是否等于n,n表示该数据块中该采集数据项的所有采样时刻的个数,即步骤S3.1中设定数据块大小时,数据块中该采集数据项的采集次数30,若不等于,则将m加1,返回步骤S3.6.1.2;若等于,则判断压缩数据对{T[],V[]}中是否为空,若为空,则将最后一个采样时刻的时间偏移量tn和对应的数值vn写入压缩数据对{T[],V[]}中,为{T[+0,tn],V[vn]},再执行步骤S3.6.2,若不为空,则执行步骤S3.6.2;
m加1后,m=3,进行第三个采样时刻数值的判断,采集数据项AID0001的第三个采样时刻即+2采样时刻的数值为8.19,8.29×97%<8.19<8.29×103%,相对于+0采样时刻的数值8.29也没有超出所设定的波动范围,则继续执行步骤S3.6.1.4,到最后一个采样时刻+29为止,m=n,n=30,第一个采集数据项AID0001所有采样时刻的数值均未超出设定的波动范围,即对应的压缩数据对{T[],V[]}中为空,则将最后一个采样时刻的时间偏移量+29和对应的数值8.28写入压缩数据对{T[],V[]}中,压缩结果为:{T[+0,+29],V[8.28]},表示第一个采集数据项AID0001的第一个采样时刻+0至第三十个采样时刻+29之间的数据(包括+0采样时刻和+29采样时刻)全部按照8.28进行存储,渲染器在读取非关系型数据库时,该采集数据项的数据为8.28,第一个采集数据项AID0001压缩完成后再转到步骤S3.6.2,进行第二个采集数据项的压缩处理;
S3.6.1.5、计算数据块中该布尔型采集数据项两种状态0和1的个数,提取出所有数据状态个数少的采样时刻的时间偏移量和该状态数据,写入该布尔型采集数据项对应的数据库T,V二元组形式的压缩数据对{T[],V[]}中,再执行步骤S3.6.2;
S3.6.2、判断是否该数据块的所有数据采集项完成压缩,若是,则执行步骤4;若否,则采集数据项编号后移一位,对该数据块的下一个采集数据项的数据进行压缩,执行步骤3.6.1。
本实施例中,第一个采集数据项AID0001完成压缩处理后,执行步骤S3.6.2,采集数据项编号后移一位,对第二个采集数据项AID0002的压缩处理,重新执行步骤S3.6.1,判断采集数据项AID0002为浮点型生产数据,则执行步骤S3.6.1.1至步骤S3.6.1.4。采集数据项AID0002第一个采样时刻的数值为0.34,判断该数据项下一个采样时刻即第二个采样时刻的数值0.32,超出所设定的波动范围,执行步骤S3.6.1.3,记录此时的时间偏移量+1和前一个采样时刻的数值0.34,写入压缩数据对{T[+0,+1],V[0.34]}中,表示第一个到第二个采样时刻之间的数值均按照0.34存储,继续比较该数据项下一个采样时刻即第三采样时刻的数值0.31,超出所设定的波动范围,执行步骤S3.6.1.3,记录此时的时间偏移量+2和前一个采样时刻的数值0.32,写入压缩数据对{T[+0,+1,+2],V[0.34,0.32]}中,依次继续比较该数据项下一个采样时刻的数值,直到第七个采样时刻的数值0.32,相对于第一个采样时刻的数值0.34,均超出所设定的波动范围,记录之间所有的时间偏移量及其对应的前一个采样时刻的数值,写入压缩数据对{T[+0,+1,+2,+3,+4,+5,+6],V[0.34,0.32,0.31,0.32,0.32,0.32]}按此过程,直至比较完该数据块中该数据项所有采样时刻的数据,压缩后的结果为:{T[+0,+1,+2,+3,+4,+5,+6,+8,+9,+10,+11,+13,+14,+19,+20,+21,+22,+23,+27,+28,+29],V[0.34,0.32,0.31,0.32,0.32,0.32,0.35,0.31,0.31,0.30,0.33,0.32,0.33,0.32,0.31,0.31,0.31,0.33,0.31,0.31]}。
第二个采集数据项AID0002完成压缩处理后,执行步骤S3.6.2,采集数据项编号后移一位,对第三个数据项BID0003的数据进行压缩,重新执行步骤S3.6.1,判断该数据项为布尔型数据,执行步骤S3.6.1.5。计算数据块中该布尔型生产数据两种状态的个数,将TRUE状态标记为1,FAUSE标记为0,则0状态的个数为23,1状态的个数为8,1状态个数少,提取出所有该状态的采样时刻的时间偏移量和该状态数据1,写入压缩数据对{T[],V[]}中,压缩结果为:{T[+3,+7,+8,+11,+16,+19,+20,+26],V[1]};重复执行以上步骤,直至第一个数据块压缩完毕,第一个数据块压缩完成后的T,V二元组压缩数据对如表6所示,与表5相比,数据量明显减小。
表6 第一个数据块压缩后的结果
S4、将步骤S3.6压缩后的数据存储到非关系型数据库中,如图6所示,存储方法如下:
S4.1、在非关系型数据库中建立数据存储表;
S4.2、设置所述数据存储表的行关键字;
S4.2.1、根据工业过程,以生产工序作为行关键字;
S4.2.2、对行关键字进行编码,按照工艺流程先后顺序,使得工序的关键字编码按照字典顺序排列,以保证相连工序的数据存储在相邻位置;
S4.3、设置所述数据存储表的列族,包括:原矿筛分列族、竖炉焙烧列族、弱磁磨矿及选别列族、强磁磨矿及选别列族、精矿浓缩列族,精矿过滤列族;
S4.4、设置每个所述列族下的列名,如表7所示;
表7
表7 续表
S4.5、将步骤S3.6压缩后的数据按照生产工序分类,存储到数据存储表对应的表单元中;
S4.6、判断压缩后的数据是否成功存储到非关系型数据库中,若成功存储,则执行步骤S5;若没有成功存储,则返回步骤S4.5,重新进行数据存储。第一数据块压缩存储后如表8所示。
表8
表8 续表
S5、将日志文件存储模块中对应的已成功存储到非关系型数据库中的数据删除。
S6、判断是否内存缓存模块中的所有数据都完成压缩与存储处理,若是,则执行步骤S7;若否,则返回执行步骤S3.4,从内存缓存模块中读取新的数据快,进行新数据块的压缩与存储。
第一个数据块完成压缩与存储处理后,继续从内存缓存模块中按设定的30次采集的实时工业过程数据的数据块大小读取第二个数据块,按照第一个数据块相同的方法进行压缩,压缩后均按照生产工序分类,存储到数据存储表对应的表单元中,依次完成内存缓存模块中的所有数据的压缩与存储。所有数据块完成压缩与存储后,非关系数据库中存储的结果如表9所示,其中B1、B2、……表示数据块编号。
表9
表9 续表
S7、渲染器读取内存缓存模块或非关系型数据库中的数据,进行在线数据查询、数据计算、数据分析或可视化的处理。渲染器读取非关系型数据库时为压缩后的数据,读取内存缓存模块中的数据时为实时的工业过程数据。
本发明提供的一种实时工业过程大数据压缩存储系统及方法,能有效解决实时工业过程大数据的存储问题,对实时工业过程大数据最大化压缩,并采用非关系型数据库进行存储,既有效地解决对实时工业过程数据的存储,又能为企业节省存储实时工业过程大数据产生的巨额成本,可以使企业实现经济利益最大化;非关系型数据针对某一列或者某几列的查询有非常大的IO优势,可以快速响应数据的在线查询、计算等。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。

Claims (6)

1.一种实时工业过程大数据压缩存储系统,其特征在于,包括数据采集模块(1)、日志文件存储模块、内存缓存模块、数据压缩模块(2)、非关系型数据库和渲染器;
所述数据采集模块(1),用于采集实时工业过程数据,包括电子测量仪、PLC和采集客户端;电子测量仪,用于采集每个工业生产现场的生产数据,并发送到PLC;PLC用于逻辑控制和生产数据的采集;采集客户端用于将生产数据发送到内存缓存模块;
所述日志文件存储模块,用于将采集客户端发送到内存缓存模块的数据写入磁盘,进行数据的持久化,以防止内存缓存模块失效而导致数据丢失;当内存缓存模块因失效而导致数据丢失的时候,日志文件存储模块会向内存缓存模块发送因内存缓存模块失效而丢失的数据,以确保生产数据不在内存缓存模块丢失;当内存缓存模块数据经过数据压缩模块(2)压缩存储后,日志文件存储模块中对应的数据将会被删除;
所述内存缓存模块,用于存储采集客户端发送的实时工业过程数据,一方面供渲染器直接读取内存缓存模块中的数据,满足实时性查询、计算需求,另一方面,为数据压缩模块(2)提供内存数据进行压缩;
所述数据压缩模块(2),用于对内存缓存模块中的实时工业过程数据按设定数据块大小进行压缩,包括块设定模块和压缩模块;所述设定模块用于设定所有采集数据项被用来进行一次数据压缩所采集的次数,即数据块的大小;所述压缩模块用于利用数据压缩方法对采集的工业过程数据进行压缩处理;所述数据压缩模块(2)进行数据压缩的具体方法为:
设定压缩数据块的大小;判断内存缓存模块中是否有因内存缓存模块失效而丢失的数据,若有,则日志文件存储模块向内存缓存模块发送因内存缓存模块失效而丢失的数据,然后从内存缓存模块中读取所设定数据块大小的数据;若没有,则直接从内存缓存模块中读取所设定数据块大小的数据;然后对读取的数据块进行编号,形成数据组<编号,数据块内容>;将待压缩数据块中的采样数据项的采样时刻与该数据块中采样数据项初始采样时刻的偏差作为时间偏移量,对读取的数据块中的采样数据项按采集数据项的编号依次进行压缩,具体步骤为:
步骤a、对该数据块中的待压缩的采集数据项的数据进行压缩,判断该采集数据项的数据类型,若是浮点型生产数据,则对浮点型生产数据进行压缩处理,若是布尔型生产数据,则对布尔型生产数据进行压缩处理;
步骤b、判断是否该数据块的所有数据采集项完成压缩,若是,则将压缩后的数据存储到非关系型数据库中;若否,则采集数据项编号后移一位,对该数据块的下一个采集数据项的数据进行压缩,执行步骤a;
所述非关系型数据库,是面向列存储的数据库,用于存储经数据压缩模块(2)压缩后的大规模实时工业过程数据;
所述渲染器,用于从内存缓存模块或非关系型数据库中读取数据,然后进行在线数据查询、计算、分析或可视化。
2.根据权利要求1所述的一种实时工业过程大数据压缩存储系统,其特征在于,所述电子测量仪采集的数据为浮点型生产数据,所述PLC采集的数据为布尔类型生产数据。
3.根据权利要求1所述的一种实时工业过程大数据压缩存储系统,其特征在于,所述压缩模块中的数据压缩方法为:结合工业过程数据时间采集标签,使用T,V二元组进行压缩表示,针对工业采集中数据的波动,设置数据波动范围,进行压缩。
4.一种实时工业过程大数据压缩存储方法,其特征在于,该方法利用权利要求1所述的一种实时工业过程大数据压缩存储系统实现,包括如下步骤:
步骤1、利用所述数据采集模块(1)采集实时工业过程数据,采集过程如下:
步骤1.1、设定电子测量仪采集每个工业生产现场生产数据的周期;
步骤1.2、电子测量仪和PLC采集每个工业生产现场的生产数据;
步骤1.3、采集客户端读取电子测量仪和PLC采集的生产数据;
步骤2、采集客户端将步骤1.3读取的数据同步发送到内存缓存模块和日志文件存储模块,具体发送与存储方法如下:
步骤2.1、定义内存缓存模块中的数据标识项;
步骤2.1.1、对工业生产过程的工序进行编号;
步骤2.1.2、对采集的生产数据按采集数据项进行编号;
步骤2.1.3、利用步骤2.1.1和步骤2.1.2产生的编号,生成内存缓存的数据标识项,所述数据标识项由两部分组成,前一部分是步骤2.1.1中的工序编号,后一部分是步骤2.1.2中的采集数据项编号;
步骤2.2、采集客户端将步骤1.3读取的数据同步发送到内存缓存模块和日志文件存储模块进行存储;
步骤2.2.1、确定采集数据项在内存缓存模块中的存储位置;
步骤2.2.2、将步骤1.3读取的数据按采集数据项对应存储到步骤2.2.1确定的存储位置,形成键值对数据;
步骤2.2.3、将步骤1.3读取的数据发送到日志文件存储模块中存储;
步骤2.3、判断对内存缓存模块中存储数据的处理方式,若要进行压缩,则转到步骤3;若直接对数据进行在线查询、计算或可视化,则转到步骤7;
步骤3、对内存缓存模块中的数据进行数据压缩处理,压缩过程如下:
步骤3.1、设定压缩数据块的大小;
步骤3.2、判断内存缓存模块中是否有因内存缓存模块失效而丢失的数据,若有,则执行步骤3.3;若没有,则直接执行步骤3.4;
步骤3.3、日志文件存储模块向内存缓存模块发送因内存缓存模块失效而丢失的数据,然后执行步骤3.4;
步骤3.4、从内存缓存模块中读取所设定数据块大小的数据;
步骤3.5、对读取的数据块进行编号,形成数据组<编号,数据块内容>;
步骤3.6、将待压缩数据块中的采样数据项的采样时刻与该数据块中采样数据项初始采样时刻的偏差作为时间偏移量,对读取的数据块中的采样数据项按采集数据项的编号依次进行压缩,具体步骤为:
步骤3.6.1、对该数据块中的待压缩的采集数据项的数据进行压缩,判断该采集数据项的数据类型,若是浮点型生产数据,则对浮点型生产数据进行压缩处理,若是布尔型生产数据,则对布尔型生产数据进行压缩处理;
步骤3.6.2、判断是否该数据块的所有数据采集项完成压缩,若是,则执行步骤4;若否,则采集数据项编号后移一位,对该数据块的下一个采集数据项的数据进行压缩,执行步骤3.6.1;
步骤4、将步骤3.6压缩后的数据存储到非关系型数据库中,存储方法如下:
步骤4.1、在非关系型数据库中建立数据存储表;
步骤4.2、设置所述数据存储表的行关键字;
步骤4.2.1、根据工业过程,以生产工序作为行关键字;
步骤4.2.2、对行关键字进行编码,按照工艺流程先后顺序,使得工序的关键字编码按照字典顺序排列;
步骤4.3、设置所述数据存储表的列族;
步骤4.4、设置每个所述列族下的列名;
步骤4.5、将步骤3.6压缩后的数据按照生产工序分类,存储到对应的表单元中;
步骤4.6、判断压缩后的数据是否成功存储到非关系型数据库中,若成功存储,则执行步骤5;若没有成功存储,则返回步骤4.5,重新进行数据存储;
步骤5、将日志文件存储模块中对应的已成功存储到非关系型数据库中的数据删除;
步骤6、判断是否内存缓存模块中的所有数据都完成压缩与存储处理,若是,则执行步骤7;若否,则返回执行步骤3.4,从内存缓存模块中读取新的数据快,进行新数据块的压缩与存储;
步骤7、渲染器读取内存缓存模块或非关系型数据库中的数据,进行在线数据查询、数据计算、数据分析或可视化的处理。
5.根据权利要求4所述的一种实时工业过程大数据压缩存储方法,其特征在于,所述对浮点型生产数据进行压缩处理的方法如下:
步骤3.6.1.1、设定该浮点型生产数据的数值波动范围;
步骤3.6.1.2、根据数据块中的该浮点型采集数据项第一个采样时刻的数值,判断该采集数据项第m(m>1)个采样时刻的数值相对于第一个采样时刻的数值是否超出所设定的波动范围,若是,则执行步骤3.6.1.3;若否,则执行步骤3.6.1.4;
步骤3.6.1.3、记录对应采样时刻的时间偏移量tm和该采样时刻的前一个采样时刻的数值vm-1,写入该浮点型采集数据项对应的数据库T,V二元组形式的压缩数据对{T[],V[]}中,为{T[+0,tm],V[vm-1]},执行步骤3.6.1.4;
步骤3.6.1.4、判断m是否等于n,n表示该数据块中该采集数据项的所有采样时刻的个数,若不等于,则将m加1,返回步骤3.6.1.2;若等于,则判断压缩数据对{T[],V[]}中是否为空,若为空,则将最后一个采样时刻的时间偏移量tn和对应的数值vn写入压缩数据对{T[],V[]}中,为{T[+0,tn],V[vn]},再执行步骤3.6.2,若不为空,则执行步骤3.6.2。
6.根据权利要求4所述的一种实时工业过程大数据压缩存储方法,其特征在于,所述对布尔型生产数据进行压缩处理的方法如下:计算数据块中该布尔型采集数据项两种状态0和1的个数,提取出所有数据状态个数少的采样时刻的时间偏移量和该状态数据,写入该布尔型采集数据项对应的数据库T,V二元组形式的压缩数据对{T[],V[]}中,再执行步骤3.6.2。
CN201610702102.7A 2016-08-22 2016-08-22 一种实时工业过程大数据压缩存储系统及方法 Active CN106354774B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610702102.7A CN106354774B (zh) 2016-08-22 2016-08-22 一种实时工业过程大数据压缩存储系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610702102.7A CN106354774B (zh) 2016-08-22 2016-08-22 一种实时工业过程大数据压缩存储系统及方法

Publications (2)

Publication Number Publication Date
CN106354774A CN106354774A (zh) 2017-01-25
CN106354774B true CN106354774B (zh) 2019-07-23

Family

ID=57843618

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610702102.7A Active CN106354774B (zh) 2016-08-22 2016-08-22 一种实时工业过程大数据压缩存储系统及方法

Country Status (1)

Country Link
CN (1) CN106354774B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107193968A (zh) * 2017-05-25 2017-09-22 努比亚技术有限公司 一种位置信息存储的方法、装置及计算机可读存储介质
CN107240246B (zh) * 2017-08-08 2019-08-02 四川省建筑科学研究院 一种基于智能终端的建筑工程监测数据无线采集系统及方法
CN108268621A (zh) * 2018-01-09 2018-07-10 上海大学 基于大数据的数据分析、挖掘、渲染及可视化方法
CN108400888B (zh) * 2018-01-29 2021-07-23 深圳壹账通智能科技有限公司 一种日志处理方法、存储介质及终端设备
CN109922124A (zh) * 2018-12-29 2019-06-21 淄博矿业集团有限责任公司 一种基于Hadoop的煤矿数据管理系统
CN109962711B (zh) * 2019-04-09 2022-07-08 深圳市道通智能航空技术股份有限公司 一种数据压缩方法、电子设备及存储介质
WO2020237409A1 (en) * 2019-05-24 2020-12-03 Intel Corporation Technologies for memory-efficient key-value lookup
CN113492890B (zh) * 2020-04-07 2023-06-16 中国航天科工飞航技术研究院(中国航天海鹰机电技术研究院) 中央控制系统数据采集存储方法及中央控制系统
CN111804467B (zh) * 2020-07-06 2021-07-06 深圳市善营自动化股份有限公司 一种用于提高涂布精度的方法、系统、主机及存储介质
CN111966648B (zh) * 2020-07-29 2023-09-08 国机智能科技有限公司 一种工业数据的处理方法和电子设备
CN111930721B (zh) * 2020-09-11 2022-05-10 山东钢铁集团日照有限公司 一种多属性连续性工业生产数据的整合方法
CN112395344A (zh) * 2020-12-03 2021-02-23 中冶南方工程技术有限公司 一种plc数据采集管理系统
CN113495903B (zh) * 2021-09-08 2021-12-17 西安热工研究院有限公司 电力时序数据库缓存方法、系统、设备及可读存储介质
CN114442544B (zh) * 2021-12-16 2023-09-26 捷飞特(大连)工业技术有限公司 一种基于plc的工业设备智能监控录像采集方法
CN114676102B (zh) * 2022-03-10 2024-05-03 中国船舶集团有限公司第七一一研究所 数据库控制方法及控制系统
CN114996245A (zh) * 2022-04-07 2022-09-02 济南大学 一种应用在水泥生产大数据的数据压缩方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201993755U (zh) * 2011-01-30 2011-09-28 上海振华重工(集团)股份有限公司 实时数据库的数据过滤压缩存储系统
CN103309889A (zh) * 2012-03-15 2013-09-18 华北计算机系统工程研究所 一种利用gpu协同计算实现实时数据并行压缩的方法
KR101853148B1 (ko) * 2013-05-20 2018-04-27 엘에스산전 주식회사 데이터 저장방법
CN104503407B (zh) * 2014-12-20 2017-06-06 北京首钢自动化信息技术有限公司 一种工业生产过程中数据采集回放系统和方法
CN105138276B (zh) * 2015-07-14 2018-05-18 苏州科达科技股份有限公司 数据储存方法及数据储存系统

Also Published As

Publication number Publication date
CN106354774A (zh) 2017-01-25

Similar Documents

Publication Publication Date Title
CN106354774B (zh) 一种实时工业过程大数据压缩存储系统及方法
CN109465676B (zh) 一种刀具寿命预测方法
Rogalewicz et al. Methodologies of knowledge discovery from data and data mining methods in mechanical engineering
CN106547882A (zh) 一种智能电网中营销大数据的实时处理方法及系统
CN106372181B (zh) 一种基于工业过程的大数据压缩方法
CN106484857A (zh) 数据采集系统及其方法
CN105956016A (zh) 关联信息可视化处理系统
CN109753502B (zh) 一种基于NiFi的数据采集方法
US9424074B1 (en) Method for learning backup policies for large-scale distributed computing
CN112182077B (zh) 一种基于数据中台技术的智能运维系统
CN108446391A (zh) 数据的处理方法、装置、电子设备和计算机可读介质
CN112181960A (zh) 一种基于AIOps的智能运维框架系统
CN108197656A (zh) 一种基于cuda的属性约简方法
CN110019820A (zh) 一种病历中主诉与现病史症状时间一致性检测方法
CN111339052A (zh) 一种非结构化日志数据处理方法及装置
CN106846170B (zh) 一种发电机组跳闸监测方法及其监测装置
CN110134646A (zh) 知识平台服务数据存储与集成方法及系统
CN116599857B (zh) 一种适用于物联网多场景的数字孪生应用系统
CN104954351B (zh) 数据检测方法和装置
CN113254517A (zh) 一种基于互联网大数据的服务提供方法
CN113535422A (zh) 一种面向工业大数据的数据清洗和事件处理的云平台系统
CN110968596A (zh) 一种基于标签系统的数据处理方法
CN111079809A (zh) 电连接器智能统型方法
CN110162513A (zh) 用于智能电网大数据处理的数据表连接方法及计算机可读存储介质
CN113282568B (zh) 一种iot大数据实时时序流分析应用技术方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant