基于JSON文档结构的工业大数据多维分析方法

李敏波1,2 许鑫星1 李 强3 韩 乐1,4

1.复旦大学软件学院, 上海,2004332.复旦大学上海市数据科学重点实验室, 上海,2004333.希姆通信息技术(上海)有限公司, 上海,2003354.复旦大学青岛研究院, 青岛, 266520

摘要在智能生产制造过程中,工业数据存在复杂的关联关系和多源异构特性,不断增长的工业大数据使得数据分析与挖掘异常复杂,而传统的基于数据仓库或关系型数据库的工业数据分析方法数据处理不灵活、分析查询效率低。提出了基于JSON文档结构的工业大数据联机分析处理(OLAP)模型架构,使用Key-Value数据的JSON文档结构灵活定义工业数据结构,将维度信息中的表结构转换为基于JSON的文档结构,将事实包含的维度信息通过嵌套文档的方式保存。通过构建分析目标为根节点的文档树,基于Elasticsearch平台储存文档结构树并建立倒排索引,将查询与分析操作转变为文档内容的遍历与查询,使用倒排索引的方法提高数据分析查询的效率。设计了自定义配置检索条件与查询语句的智能解析引擎,实现了工业数据多维分析可视化图表的智能生成。

关键词:工业大数据;联机分析处理(OLAP)模型架构;多维分析;JSON文档结构

0 引言

随着信息化与工业化的深度融合,信息化、智能化技术已经逐步深入工业企业的方方面面。相比互联网行业,工业企业所积累的海量生产制造数据的价值密度更高,挖掘的价值更高。工业大数据是工业企业在未来的全球化竞争中的核心优势与竞争力。工业大数据是指在工业领域中,围绕典型智能制造模式,在整个产品全生命周期各个环节所产生的各类数据及相关技术和应用的总称,其数据主要来源可分为以下三类:一是生产经营相关业务数据和产品设计工艺数据;二是机器设备的物联数据;三是外部数据。工业大数据不仅具有大数据的“4V”特征,即大体量(volume)、多样性(variety)、快速性(velocity)、价值性(valve),还具有与工业生产相关的特征,如数据多来源异构、数据质量低、数据蕴含信息复杂、动态多时空与时间序列性、数据实时性高等特点,这使得工业大数据的数据建模与联机分析处理(online analysis processing, OLAP)及多维分析复杂多样,对大数据分析处理的实时性要求更高。

工业大数据分析有助于提高“两化”融合水平,实现智能制造,具有广阔的应用前景,同时也面临着诸多挑战[1]。尽管工业数据丰富,但据Gartner公司的分析,由于缺少有效的分析工具以及高效的计算技术来提取有用信息,工业大数据未被充分利用[2]。目前主要是将数据压缩、短时间段的数据存档,仅在特殊运行状况下进行数据恢复与分析,企业很少将历史数据的分析挖掘用于常规的制造决策过程中。工业大数据面临的挑战在于挖掘历史大数据中蕴含的知识,但知识不是直接呈现在数据里,而是呈现在用于揭示数据的模型中,需要通过工业大数据的建模和数据挖掘来实现工业大数据的价值。

工业数据存在复杂的关联关系,再加上工业数据的多源异构特性,若使用关系型数据库做数据仓库,则无法通过一个完整的对象表示多源异构的工业大数据。当数据量非常巨大时,传统数据仓库的查询速度会显著降低,使得工业大数据的分析挖掘异常复杂。本文通过基于JSON文档结构的数据源配置、数据转换与清洗动作的配置,利用Spark引擎以并行化的方式将分散在各个业务存储系统中的原始数据导入大数据存储平台中;通过图形化方式配置数据分析的流程来提前构建适用于多维分析的目标数据集,避免在具体分析时的重复关联操作。基于预构建的多维分析数据集,通过自定义配置检索条件及用户查询语句的智能解析引擎,得到用户所查询的维度,自动生成各类可视化图表。

1 数据OLAP多维分析建模

工业大数据生命周期包括采集、管理、处理、分析和应用5个环节。工业大数据处理是一个数据集到另一个数据集的“物理”过程。工业大数据分析是利用机器学习、深度网络等人工智能算法,从训练数据集里学习未知的模型和知识。目前,尽管许多研究尝试将大数据分析方法应用于工业场景,但这些大数据分析模型相对简单和单一,分析算法以通用的数据挖掘算法为主,主要是经典的大数据分析算法及其改进算法,如关联规则分析的Apriori算法和FP-Growth算法,决策树分析的ID3算法、C4.5算法和CART算法,以及分类算法、回归预测算法、神经网络和聚类分析算法等。数据分析模型在工业大数据中多采用分类、聚类、关联等数据挖掘的方法,对工业生产过程中设备、工艺等历史数据及实时数据建立工业过程模型。

刘强等[3]论述了传统数据建模方法应用于工业大数据建模时的局限,对于大容量数据,难以在传统计算平台实现,主成分分析(principal component analysis,PCA)法在数据量过大时难以进行求解;探讨了不规则采样数据、多时空序列数据、不真实数据的鲁棒等工业大数据建模有待研究的问题。宫夏屹等[4]提出了大数据平台的体系架构,对大数据的存储与分析等相关技术进行了研究与综述。以上研究较少涉及工业数据多维度OLAP建模、数据处理、数据可视化分析。因此,有必要对工业大数据中的数据模型生成与转换、大数据高效查询聚合、大数据OLAP多维分析、数据可视化等方面内容进行深入系统的研究。

当今商业智能(business intelligence,BI)系统的核心是通过建立数据仓库将运营数据转换成用于决策制定的信息和知识,而OLAP方法在BI系统中被广泛使用,利用OLAP方法可分析数据仓库和数据立方体中的多维数据。IBM Cognos Analytics是一种BI工具,提供企业级的交互式数据库查询、企业数据多维分析、统计报表生成,主要功能包括元数据建模、开放式许可证(microsoft open license pack, MOLP)建模、内存OLAP建模、专业报表开发、可视化RAVE(report authoring visual environment)引擎、SDK开发集成。随着大数据的发展,传统的数据仓库方式和基于关系数据库管理系统(relational database management system,RDBMS)解决方案的OLAP服务器无法适用,它们不能高效快速处理各类大数据的整理、交叉分析、比对、深度挖掘。目前有很多NoSQL模式的解决方案。ZHAO等[5]在面向列存储的数据仓库HBase中建立了OLAP引擎,运用mapper和reducer函数方法来进行数据操作。CHEVALIER等[6-7]试图为NoSQL数据存储(面向列和面向文档)定义逻辑模型,提出了一套规则将星型模式映射到两个NoSQL模型,使用了HBase的面向列存储和MongoDB的面向文档模型。YANGUI等[8]提出一个基于ETL的平台,该平台可以在NoSQL系统下实现数据仓库,并通过BPMN表示法来表示ETL过程。SIEGEL等[9]提出一种基于schema-read的方法在NoSQL数据库上进行OLAP查询,这种方法聚焦JSON的多维表示。

根据数据模型,NoSQL数据库具体可以分为以下4类:Key-Value,Wide-Column,Graph-Based和Document-Oriented[10]。Document-oriented类型的数据模式(JSON)被认为是对开发者最友好的,它提供了灵活的数据模型,易于查询和维护,并提供了丰富的API,因此受到了很多开发者和研究人员的青睐。在数据分析时,需要将用于存储的数据模型转换为用于分析的数据模型。对于OLAP多维分析,数据模型的设计要求不再是去除冗余和高效存储,而是高效查询聚合以及快速定位数据。

DEHDOUH等[11]提出了关于面向列存储的非关系的数据仓库的数据聚合方法。NoSQL数据存储在应用程序开发中变得越来越流行,以上研究结果表明可以在NoSQL存储下实现数据仓库功能。以上多数方法都是基于非关系型数据的多维分析模型构建方法,并没有将其应用到工业大数据领域中,基于工业大数据的特点,本文构建一个能够快速响应的工业大数据多维分析模型和可视化分析系统。

2 基于JSON文档的多维工业数据模型

在工业领域,大量的工业数据需要快速地查询定位和生成聚合统计报表。在传统的BI软件中,往往通过SQL查询利用关系型数据库解决企业的需求。当工业数据逐渐增加以致超出关系型数据库的SQL查询处理能力时,企业需要通过制定大数据的查询条件和统计指标来完成大数据的层次浏览和OLAP操作。为了解决这一问题,提出以下方法:①建立统一的数据结构。通过规范化的算法将常规的关系型工业数据转换为基于文档的结构化数据,文档的Key-Value键值组合可以根据实际分析需求改变,通过指定分析目标完成关系型数据的文档改造并且可以较好地表示数据间的级别、度量与层次关系。②制定统一的查询与分析流程。提供一种比SQL更简洁的查询方式,将文档委托给Elasticsearch平台,通过建立倒排索引的方式完成数据的快速实时查询。通过对用户指定的对象与指标结合数据层次结构的解析,完成对聚合查询条件的检查与执行。

2.1 多维分析的数据模型设计

在工业领域,生产制造过程的OLAP多维分析主要包括:时间维度(年、月、周、日、班次、小时、分钟),产品维度(产品系列、产品、产品序列号),工序设备维度(车间、生产线、工序、设备)及设备运行监控数据。常用统计分析指标包括生产数量、合格数量、不合格数量、生产计划和订单完成率、合格率、不良率、一次通过率,设备综合效率OEE,员工生产效率等。

制造执行系统(MES)和ERP系统设计,按照业务流程和数据库一致性、原子性设计要求将数据设计为众多独立的表结构,根据产品编码或者工序流程等领域知识,为多个表结构建立连接。通常将这种表存储结构转换为基于事实表和维度表的星型结构,可以有效地提升多维分析的查询性能,但是在大数据平台上通过非关系型数据库实现星型结构会严重影响查询的性能。以下将事实包含的维度信息以JSON嵌套文档的方式保存。

2.1.1 数据维度表信息

将维度信息中的表结构转换为基于JSON的文档结构。例如,表1所示的结构化表数据可以转化为图1所示的JSON格式。

表1 关系型数据示例

Tab.1 Example of relational data

Product_id1Name工序1Code1Date2019-01-01OperatorAResultgood

图1 关系型数据对应的JSON格式
Fig.1 JSON structure of relational data

JSON文件可以抽象为结构化文档形式,进而表示为图2所示结构,根节点表示该文档结构的逻辑实体,此时即“工序一”这个维度,叶子节点表示实体的成员属性。

图2 JSON文件对应的文档结构
Fig.2 Document structure corresponding to JSON file

将一个表结构定义为D(K,Vk),K表示所有键的集合,Vk为对应键值的集合。

2.1.2 数据维度信息集成

由于某一个数据维度的信息并非总是由一个表结构给出,关联多个表结构可以分解为文档结构的两两组合,故可以将维度实体D1(K1,Vk),D2(K2,Vk)组合为新的文档结构D3(K3,Vk),其中K3=K1K2。为了维持原来数据维度信息中的层次关系,将D3的键按来源分组为

D3={d1:{K1,Vk},d2:{K2,Vk}}

(1)

为了完成信息的关联,需要定义一个由键值组合成的分组条件Q(K,V),对于关系型数据库,通常只需要指定分组条件为两个表的外键。根据分组条件,D1D2均会被拆分为若干个集合,可以表示为

(2)

(3)

其中,qn表示分组条件在集合D1D2中取值的并集,表示k文档在分组条件取第n个值时得到的子集。新的组合文档就可以表示为

(4)

再根据的形式,依次对集合内的所有项qn合并2个维度的信息,得到新的集合形式:

D3={d1:{D1},d2:{D2}}

(5)

图3所示为合并多个维度信息的数据集合。

图3 合并多个维度信息的数据集合
Fig.3 Merge data collections of multiple
dimension information

合并两个维度信息时还有一种内嵌的形式即将某一集合信息嵌入另一集合,如图4所示,对于D1(K1,Vk),D2(K2,Vk),希望新的维度结构区别于上一种情形,组合方式变为

(6)

D1={D1,d2:{D2}}

(7)

图4 维度集合信息嵌入另一集合中
Fig.4 Dimension set information is embedded in
another collection

2.1.3 事实信息的构建

通过使用分组条件能够将不同的维度信息组合为文档信息,接下来需要将所有维度信息通过事实关联起来。对于事实的关联,需要一组查询QF,作用是将维度信息中不同实体区分开来,由于不同的维度结构中该查询未必相同,故对于某一维度信息k中的事实分组查询称为两个维度的事实关联为

(8)

(9)

这时,所指向的集合为第k个事实所含有的所有维度信息的集合,将第k个事实表示为fk,则在最终关联时,有

(10)

再将维度D1D2的维度信息表示出来,对应结构可以表示为

DF={f1,f2,…,fn}

(11)

每一组fk由{d_1:{D_1},d_2:{D_2}}组成。

由于JSON结构可以用树来表示,故将一个维度的文档结构定义为一棵维度树,这里T代表构建该维度树所依据的分组条件或维度的逻辑含义。由维度树森林构建生成树的过程中,首先需要确定的是分析目标,通常通过分析主体来确定,对于工业领域,一般为产品的唯一编号、生产订单号、设备编号;然后将分析主体字段设置为分组条件,将所有维度树的根节点通过该条件拼接到生成树的根节点上。构建示例如图5所示。

图5 维度树的根节点通过分析目标拼接构建生成树
Fig.5 The root node of the dimension tree builds the
spanning tree by analyzing the target stitching

2.2 数据倒排索引

事实集合DF={f1,f2,…,fn},每一组fk{d1:D1,d2:D2,…,dn:Dn}会将每一个事实对象的所有维度属性保存在一个较大的文档中,因此,在对该文档进行查询或者聚合时,通过遍历文档往往会大量消耗内存。考虑到无论查询还是聚合都是针对文档中值的运算或者分组,故可以将关键信息从文档中先提取出来,利用分词器和倒排索引的方式,在存入数据时完成提取数据的优化。此时,每一个维度中的集合Dk{K,V}可表示为

Dk={k1:V1,k2:V2,…,kn:Vn}

(12)

Vk={v1,v2,…,vn}为通过分词器将属性kk对应的值拆分后的关键字集合。通过该方式建立了一种从值到文档的映射。

通过构建分析目标为根节点的文档树,每一个分析主体的各维度信息将被包含在一个大的文档内储存,将查询与分析操作转变为文档内容的遍历与查询。使用Elasticsearch开源平台为文档结构建立倒排索引,从而加速文档值的查询与聚合操作。例如,图6中error字段的索引建立后,将转变为图7所示结构。

图6 工序过程数据信息
Fig.6 Process data information

图7 结构转变后字段数据
Fig.7 Field data after structural transformation

在实际应用中需要解决对象数组的存储问题,文档中的对象数组在建立倒排索引时,会由于对值的分词而导致数值对关系的丢失,因为索引建立时会将对象集合转变为值集合。

由于文档丢失了(p1,1),(p2,2)这种成对的属性关系,故在Elasticsearch中,使用Nested字段建立了一个隐藏的索引(index),可以从根目录通过指定对应的路径(path)访问。

2.3 数据多维统计分析与查询

在图6和图7目标树结构中包含以下信息:①根节点,它表示分析主体,也是最粗的分析粒度;②维度节点,它表示该分析主体的某一维度的所有信息的集合,维度节点也可以被认为是粒度划分的依据,如果分析目标集中于某一子树上时,则分析粒度可以指定为该子树根节点或者其父节点;③属性节点,它表示某维度的成员,也是查询的指定目标,通过解析成员所在维度节点从而获得维度信息所在索引位置。

对于查询方法,定义一个原子查询条件为字段f、操作op、值v组成的元组:q=(f,op,v),则一组查询条件可以表示为Q(F,OP,V,r),r表示原子条件间的关系。具体代码如下:

Require:A collection of Document D,

a set of query-define Q=(F,OP,V,r)

1 For all f,op,v in Q:

2 Fq,path=parseField(f,op,v);

3 q_pack=check(path);

4 QSL<-buildQuery(QSL,Fq,q_pack,r);

5 execute(QSL);

通过parseField方法解析设置的字段,找到该字段所在维度节点的路径(path),通过检查路径的相对位置check(path)设置查询语法,这里检查的主要是字段间的关系是否在同一颗子树上,以及其上下级关系,最后通过归类同级别查询的结构合并原子查询的关系生成结构化的查询条件。

对倒排索引结构的多维统计分析是基于关键词分组查询的统计分析方式来实现的,它包含三个步骤:①过滤条件Qf(expr);②分组条件Qa(k);③计算指标Metric(D)。

利用过滤条件筛选出事实文档中的待分析信息:

(13)

再通过分离出来的文档信息,根据分组条件分为多个组集合:

(14)

对分组集合中每一个组计算统计分析的指标:

(15)

多维分析过程可拆分为3个阶段:①通过查询筛选数据集;②选择分析维度;③选择分析指标。选择分析维度实质上是指定某一维度表中的属性特征,通过该特征可以应用的分组条件将数据集合进行分组,然后在每个分组中计算分析指标。分析指标可以是指标的合计值、最大值、最小值、平均值、某个唯一值等。

考虑到指定分析维度和指定分析指标都需要指定某一属性,根据属性所属维度节点所处结构树的位置不同可以分为以下几种情况。

(1)同一节点。如果维度与指标均在统一节点上,统计查询只需将路径设置到该节点上运算即可。

(2)孩子双亲或祖先子孙关系。此时需要考虑维度节点与计算指标节点的相对位置。如果维度节点是指标节点的孩子,即分组后指标计算直接可以访问分组内的子树属性,则可直接使用该路径计算聚合条件。如果维度节点是指标节点的双亲,则通过维度节点分组之后,分组内不包含指标节点信息,需要通过reverse(path)从维度节点寻找上游的节点从而获取到包含指标节点的子树,然后针对转换后的分组计算聚合条件。具体代码如下:

Require: a set of metric-define MD,

a dimension-define dd

1.d_path=parse(dd);

2.For all md in MD:

3. aggs,f<-md;

4. m_path=parse(md);

5. if(d_path == m_path)

6. msl=build(d_path,md);

7. else if(d_path contains m_path)

8. msl=build(m_path,md);

9. else if(m_path contains d_path)

10. reverseTo(m_path);

11. msl=build(m_path,md);

12. else

13. reverseTo(root);

14. msl=build(m_path,md);

15. msl.add(aggs);

16. MSL.build(msl);

17.exec ut(MSL)

(3)兄弟关系或共同祖先关系。这种关系下,通过维度分组后依然无法在分组内找到指标计算所需属性信息,需要找到其共同祖先节点作为分组的目标结构,考虑到文档结构是一个以事实节点为根节点的结构树,因此无论何种情况都可以找到一个共同的祖先节点作为计算指标的结构。

(4)选择分析粒度。在分组聚合之后,每个分组内的数据如果进行向上翻卷(reverse),则可以得到不同的结构数据,随着根节点选择的不同,代表的是分析粒度的不同。如果向上翻卷到文档的根目录,则此时统计计算的集合是全体产品的集合;如果翻卷到的是工序一这个节点,则此时统计计算的集合是全体工序一的操作记录。

3 基于JSON文档的大数据多维分析应用

课题组开发了工业数据可视化分析平台,集中管理某电子工厂MES系统采集的2年生产数据,包括印刷工序检验SPI数据890万条,AOI图像检测数据1 296万条,FT测试数据3 424万条,产品维修数据35万、设备运行和产品数据45万个文件;涵盖SMT生产全过程的SPI/AOI检测数据、SMD数据、炉温数据、组装数据、测试和维修数据、产品/工单数据等。实验选用的数据是电子组装行业里的表面贴装技术(surface mount technology,SMT)的数据,其工艺生产数据包含:锡膏检测 (solder paste inspection,SPI)、自动光学检查(automated optical inspection,AOI)、功能检查(Function Test,FT)、维修记录(FIX)、生产订单信息(Work_Order)。

图8 电子产品SMT生产数据的关系型数据结构
Fig.8 Relational data structure for electronic product
SMT production data

首先确定分析主题是生产的PCBA电路板,需要分析不同类别PCBA电路板的贴片生产质量合格率、生产数量或者错误分类等统计结果。原关系型数据结构如图8所示,对应的文档结构如图9所示。此时,所有维度节点以Nested的结构存在索引数据库中,存储结构为独立的子索引的形式,有如下几种情况:简单查询、组合查询、单属性聚合统计、多属性聚合统计、条件聚合统计。

图9 电子产品SMT生产数据的文档结构
Fig.9 Document structure of electronic product SMT
production data

(1)场景一:简单查询。例如希望查看某型号的所有产品记录,可以设定条件为Q:product_model=model1。通过一般情况定义一种简单的查询语法为结构,field包括结构树上的所有成员属性,op是涵盖等于、包含等的判断类型。通过应用Elasticsearch的Terms查询完成查询操作。具体代码如下:

Require:简单查询Q1,Q2,逻辑运算L

1.path1,path2=parseField(Q1,Q2);

2.q1=build(path1,Q1); q2=build(path2,Q2);

3.m=check(path1,path2);

4.q=build(m,q1,L,q2);

(1)场景二:组合查询。组合查询可以被定义为将一组简单查询通过逻辑组合的形式关联。因此,可以结构化地定义为 (L)+的结构。其中,L为逻辑运算,包括与、或、非。这是根据解析多组简单查询条件中查询字段所处维度节点的不同需要,在查询中设定目标路径。查询过程可以表示为

Require: 字段f,判断关系op,判断值v,结构模型m

1.path<-check(f);

2.query = buildQuery(path,f,op,v);

3.execute(query);

此时如果含有多组简单查询,则需要将统一路径下的所有查询与逻辑预算归类在一起,由于结构树的大小有限,故对于实验使用的数据集,路径只包含8个类别。如果希望查询某产品类型A并且AOI过程出错,条件查询写为

Order.product_model=A and AOI.result=bad

解析时,判断对应访问路径分别为AOI和Order,属于兄弟节点,因此分别访问对应路径,生成查询条件并执行。

本系统使用Elasticsearch作为分布式文件存储引擎,Elasticsearch是面向文档存储的,它可以存储整个对象或者文档,其中复杂的关联关系也可以得到保存。Elasticsearch会为每个文档的内容建立倒排索引文档结构,能快速执行复杂的全文搜索,通过对用户指定的对象与指标结合数据层次结构的解析,完成对聚合查询条件的检查与执行。实验数据的性能测试见表2,在2.1亿条数据、271个参数中执行5个查询条件的响应时间为1 120 ms。多维工业数据可视化分析流程如图10所示。SMT生产数据与质量缺陷占比可视化分析的自动化生成图形如图11所示。

表2 实验数据的性能测试

Tab.2 Performance test of experimental data

实验数据条数参数个数耗时(ms)查询条件个数选择维度500 00042432500 0004251028 000 00012421528 000 00012454102210 000 0002711 12052210 000 0002711 310103210 000 0002712 980105

图10 多维数据可视化分析流程
Fig.10 Multidimensional data visualization
analysis process

4 结语

针对基于数据仓库或关系型数据库的工业数据分析方法存在的数据处理不灵活、分析查询效率低等问题,提出了基于JSON文档结构的工业大数据OLAP模型架构,使用Key-Value的JSON文档结构灵活定义工业数据结构,将维度信息中的表结构转换为JSON的文档结构,将事实包含的维度信息用嵌套文档的方式保存。

图11 SMT生产数据分析、质量缺陷占比分析界面
Fig.11 SMT production data analysis, quality defect proportion analysis interface

通过定义JSON格式对各类异构数据源中数据以及数据之间复杂关系的映射方式,并利用JSON文档配置自定义的数据转换以及数据清洗服务。利用Spark分布式并行计算平台,将分散在各个业务系统中的原始数据导入基于ElasticSearch的工业数据存储平台中,不仅构建了与业务系统物理分离的数据集市,而且利用JSON文档保留了数据之间的复杂关系。通过构建分析目标为根节点的文档树,每一个分析主体的各维度信息被包含在文档结构中,使用Elasticsearch平台储存文档结构树并建立倒排索引,将查询与分析操作转变为文档内容的遍历与查询,从而加速了文档值的查询与聚合操作。设计了自定义配置检索条件与查询语句的智能解析引擎,实现了工业数据多维分析可视化图表的智能生成。

参考文献

[1] 王宏志,梁志宇,李建中,等.工业大数据分析综述:模型与算法[J]. 大数据, 2018(5):62-79.

WANG Hongzhi, LIANG Zhiyu, LI Jianzhong, et al. Review of Industrial Big Data Analysis: Models and Algorithms[J]. Big Data, 2018(5):62-79.

[2] YAN J. Big Data, Bigger Opportunities[EB/OL].(2013-04-09).http:∥www.meritalk.com/pdfs/bdx/bdx-whitepaper- 090413.pdf.

[3] 刘强,秦泗钊. 过程工业大数据建模研究展望[J].自动化学报,2016,42(2):161-171.

LIU Qiang, QIN Sizhao. Prospect of Research on Big Data Modeling in Process Industry[J].Acta Automatica Sinica, 2016, 42(2):161-171.

[4] 宫夏屹, 李伯虎, 柴旭东,等. 大数据平台技术综述 [J]. 系统仿真学报, 2014, 26(3): 489-496.

GONG Xiayi, LI Bohu, CHAI Xudong, et al. Overview of Big Data Platform Technology[J]. Journal of System Simulation, 2014, 26(3): 489-496.

[5] ZHAO Hongwei,YE Xiaojun. A Practice of TPC-DS Multidimensional Implementation on NoSQL Database Systems[C]∥TPCTC 2013:Performance Characterization and Benchmarking. Riva del Garda, 2013: 93-108.

[6] CHEVALIER M, MALKI M E, KOPLIKU A, et al. Implementing Multidimensional Data Warehouses into NoSQL[C]∥Proceedings of the 17th International Conference on Enterprise Information Systems.Setubal, 2015: 172-183.

[7] CHEVALIER M, MALKI M E, KOPLIKU A, et al.Document-oriented Models for data Warehouses[C]∥Proceedings of the 18th International Conference on Enterprise Information Systems. Setubal, 2016: 142-149.

[8] YANGUI R, NABLI A, GARGOURI F. ETL Based Framework for NoSQL Warehousing[C]∥14th European, Mediterranean, and Middle Eastern Conference. Coimbra, 2017:40-53.

[9] SIEGEL E, RETTER A. eXist:a NoSQL Document Database and Application Platform[M]. Sebastopol: O’Reilly Media, Inc., 2014.

[10] CHOUDER M L , RIZZI S , CHALAL R . EXODuS:Exploratory OLAP over Document Stores[J]. Information Systems, 2019, 79:44-57.

[11] DEHDOUH K , BENTAYEB F , BOUSSAID O, et al. Columnar NoSQL CUBE: Agregation Operator for Columnar NoSQL Data Warehouse[C]∥IEEE International Conference on Systems, Man and Cybernetics. San Diego, 2014:14789988.

Multi-dimensional Analysis Method of Industrial Big Data Based on JSON Document Structure

LI Minbo1,2 XU Xinxing1 LI Qiang3 HAN Le1,4

1.Software School, Fudan University, Shanghai,200433 2.Shanghai Key Laboratory of Data Science,Fudan University,Shanghai,200433 3.Shanghai SIMCom Limited,Shanghai,200335 4.Qingdao Institute of Fudan University,Qingdao,Shandong,266520

Abstract: The growing industrial big data made data analysis and mining extremely complicated since they had complex correlations and multi-source heterogeneous characteristics in the intelligent manufacturing processes. However, the traditional industrial big data analysis approach based on the relational database or data warehouse was not flexible to deal with multi-source heterogeneous data and was less efficient to do search and analysis operations. An OLAP model architecture of industrial big data was presented based on JSON document structure, which might use Key-Value data to flexibly define diverse industrial data structure. The table structure in the dimensional information was converted into a JSON-based document structure, and the dimensional information contained in the fact table was stored by nested document. Then constructing a document tree and the analysis target was the root node, and used Elasticsearch to store the document structure tree and built an inverted index, which might improve the efficiency of the data analysis query. The query and analysis operations were transformed into the traversal and query operations in the document contents. An intelligent parsing engine which might design custom search conditions and query statements was realized to generate intelligent visualization chart related to multidimensional industrial data.

Key words: industrial big data; online analytical processing(OLAP) model architecture; multi-dimensional analysis; JSON document structure

收稿日期2019-08-05

基金项目国家自然科学基金资助项目(61671157);上海科技创新行动计划资助项目(18511107800);山东省重大科技创新工程项目(2018CXGC0604)

中图分类号:TP182

DOI:10.3969/j.issn.1004-132X.2020.14.009

开放科学(资源服务)标识码(OSID):

(编辑 陈 勇)

作者简介李敏波,男,1970年生,副教授、博士。研究方向为工业大数据与物联网智能信息等。发表论文40余篇。E-mail:limb@fudan.edu.cn。