陶 冶,郭帅童,王晓东,侯瑞春,初佃辉
(1.青岛科技大学 信息科学技术学院,青岛 266071;2.中国海洋大学 信息科学与工程学院,青岛 266000;3.哈尔滨工业大学,威海 264209)
在大规模定制的过程中,通常需要整合跨平台、跨企业、跨领域的异质异构数据[1,2],为业务融合、交互共享与服务集成提供基础支持。研究跨域异构数据与资源的融合技术,有助于发现各类实体之间的隐藏关联关系,为业务协同、流程优化与资源调度提供客观依据[3]。
通常,各类业务系统建设持续时间长,在初始设计阶段往往对数据标准、信息开放等方面需求考虑不足,信息孤岛现象普遍存在,另外,伴随系统功能的拓展与更改,原有关联关系也发生改变,导致全局数据空间构建的过程中,实体之间的关联关系难以发现,无法形成有效知识图谱。
关系型数据是大规模定制生产过程中产生主要数据类型[4],一般采用实体-关系模型(Entity-Relationship Diagram,ERD)表达实体之间的关联。尽管直观易懂,但也存在一些局限:一是ERD只表达实体之间固有的、静态的关联关系;二是难以发现实体之间的隐藏关联关系,在概念模式设计不完备的情况下,除通过外键显式描述外,实体之间存在大量隐藏关联无法充分体现。
挖掘关系型数据库各实体之间的关联关系是基于语义的数据融合的关键步骤,相关研究工作主要集中在以下两个方面:一是建立辅助手段与现有的数据库相互结合或者优化访问方式,实现对图结构数据的快速高效的操作,M.Paradies等[5]通过对关系数据库增加图框架来改善在关系型数据库中查询涉及到的图操作,对内部高度关联的数据查询时涉及到的多表联合查询,J.F.Sinnott Jr在[6]中提出查询中设置多表之间的最佳连接顺序和最小成本的路径规划的方案,J.Chhugani等[7]展示了改善图遍历算法可以加快对图结构数据的访问;二是通过将结构化数据迁移到非结构化系统中[8]实现,例如,可将关系型数据库的元组映射为图数据[9]中的节点,将外键映射为边,S.Bordoloi和B.Kalita[10]通过从源数据库的模式图或进行逆向工程得到数学模型,根据数学模型建立图模型,R.De Virgilio等[11]通过在源关系型数据库上定义的完整性约束来构建图数据库,同时将源数据库上的查询命令高效的转换成图数据库上的查询命令。若能在数据迁移同时发掘实体间的跨域深层关联,并通过可视化手段呈现,则有助于建立基于异构关系型数据库之上的逻辑数据空间。
在大多数制造业信息化系统中,日志文件包含丰富信息[12],通常详细记录了用户、动态事件、数据库查询操作等。除了性能优化[13]、故障检测[14]、安全审计[15]外,随着数据规模的增加和处理能力的提高,对日志功能扩展的研究越来越多,例如;应毅等[16]提出根据分析结果对现有业务进行改善并提供定制化服务。若能在一般意义上的系统日志的基础上,通过对日志信息中涉及的数据库访问条目进行深度挖掘,可发现多维异构数据库中数据之间的动态联系,实现对ERD表达方式的有益补充。
本文提出一种基于日志信息挖掘的跨域数据融合与可视化方法,针对目前大规模定制业务系统中广泛应用的关系型数据,通过分析不同系统的访问日志,动态发现跨域实体间的关联关系,并给出其随时间推移的演化模型,利用图数据库与知识图谱工具验证其可行性,主要创新包括:1)相较于传统ERD,由日志驱动的关联挖掘方法生成的关联模型可体现各实体间的内在隐藏关系;2)针对跨域实体聚类与关联,给出了关联量化特征及可视化表示方法;3)能够体现实体关联关系随时间推移的动态演化过程;4)针对不同业务角色,呈现动态实体关联热点,辅助资源动态分配和业务协同。
本节提出基于日志的数据融合模型,通过分析关系型数据库的SQL查询日志,建立关系模型到图模型的实体与数据的关联映射。
假设l是日志L中的一个条目,r代表关系数据库概念模型R中的一个关系,a表示r中的某一属性,v和ˆv分别表示图模型G中与r和a对应的实体节点与属性节点,e代表节点之间的边,φ与ω分别代表节点与边的权重,建立图模型的过程就是通过遍历L,找到从R到G的一组映射并确定相应的参数,即:
图1为一模型映射实例,将r1,r2,r3,r4代表的4个关系分别映射为图模型中的v1,v2,v3,v4代表的4个节点,将各属性aij分别映射为所代表的顶点。
图1 关系模型-图模型映射示意
与传统的ERD不同,该模型通过分析一定时间内的数据库日志,依据不同实体和属性的访问频次和连接关系,计算顶点权重φ与边权重ω,在图模型的可视化过程中,φi体现为vi所代表的节点圆半径,ωi体现为ei所代表的边的线宽。
在ERD描述的基础上,通过分析日志中的SQL查询语句建立映射函数,主要处理以下两种情况。
1)显式连接关系的映射
如果SQL查询日志中的连接关系是显式表达的(也包括存在表别名或列别名的情况),只需要查找对应关系的关联方式便可生成图模型中的相应参数,如图2所示。
图2 显式连接关系映射
2)隐式连接关系的映射
如果SQL查询日志中多层嵌套的连接关系,需要将等价关系中的信息经过多次映射才能发现实际关联,如图3所示。由于临时表r3在实际模型中并不存在,因此,在映射过程中需要将其转换为r1和r2,才能反映实际映射关系信息。
图3 隐式连接关系映射
可视化模型中,顶点权重φ与边权重ω主要与日志条目中对相关实体与属性的访问频次相关,且随选取日志的时间变化而动态变化,参数确定的方法由算法1描述。
算法1:参数计算方法
首先根据关系数据库概念模式R生成初始ERD,在此基础上,逐条读取日志记录l,提取关联实体间的连接操作及相关属性。若该连接操作所涉及的实体已在图模型中生成相应节点,则增加该节点与边的权重,否则在图模型中创建相应的节点与边。
本节通过对比传统ERD与日志驱动生成的图模型,给出实体联系模型的增强可视化方法。ERD通常在数据库的概念设计阶段完成,是从现实中数据之间的显式关系入手创建的数据关联,而通过上一节提出的日志驱动的模型生成算法也可刻画数据库中数据之间的关系,以下对两种生成方式的特点进行对比。
针对同一关系模型,图4(a)是根据具体的由数据定义语言(Data Definition Language,DDL)描述的概念模型中的主外键关联关系直接生成的ERD模型;图4(b)是根据前述算法生成的图模型;图4(c)则是融合了ERD与日志驱动生成的图模型,对实体与关联关系的权重数据进行了可视化,体现的信息更为丰富。
ERD通过主外键描述显式表达实体间关联,但实际应用中,这种关联关系的表达通常都不完备。例如,根据DDL描述,图4(a)中蓝色节点①所代表的role实体中,id是主键,其他实体通过外码roleid与之建立关联。
在实际操作中,还有一些关联是DDL中没有定义的,例如:图4(b)中的深蓝色节点①所代表的role_capabilities实体与橙色节点②所代表的role_allow_switch实体之间则是通过roleid与allowswitch两个属性关联的。但由于这个关联并未在DDL中定义,因此,也就无法体现在传统的ERD中,而日志驱动的模型构建方法不受DDL约束,可以挖掘类似的隐式关联关系。
数据库设计阶段主要考虑实体和关联的静态属性,但给定时间内,实体和属性的查询频率、访问次数等随时间变化的动态因素则无法通过传统ERD进行刻画。图4(a)中节点之间的大小以及节点之间的边都是统一大小的,无法表达不同实体和属性的访问频率。但是在实际应用中不同数据的访问量经常是不同的,难以对“热点”部分进行聚焦。
图4 实体联系模型的增强可视化
但在图4(b)中,节点半径(对应模型参数φ)、节点之间边的线宽(对应模型参数ω)可直观表达权重信息,例如:深绿色④对应的role_allow_view节点比深蓝色①对应的role_capabilities节点半径小,表明在给定的时间内,对关系role_capabilities的访问比对关系role_allow_view的访问更为频繁。另外,连接深蓝色节点①roleid与浅蓝色节点③id之间的边的线宽明显偏大,表明关系role_capabilities与关系role之间的连接操作更为频繁。
由日志驱动生成的图模型还可展示关联关系随时间的演变过程。如图5所示,以某家电制造企业的内部培训系统日志为例,呈现30天内日志条目数量的增长变化情况。显然,日志条目数量与时间正相关,可采用日志条目数量代表时间推移,从而体现对时间维度敏感的数据融合操作。
图5 日志条目数量随时间推移而变化
图6分别是由500条、3000条和10000条日志生成的图模型。通过分析模型随时间的演变过程,可以发现:
1)热点实体的动态变化
图6 (a)中的“热点”实体(φ值较大)主要集中在深蓝色节点①所对应的context节点。随着时间推移,“热点”实体由图6(a)中的①迁移到图6(b)中的②所示的course_modules节点。
2)隐藏关联的动态变化
随着时间推移,图6(b)中浅绿色节点③所代表的user实体与红色节点③所代表forum_discussions实体产生了关联,而这是此前生成的图6(a)所未能展现出的。
3)全景数据视图的整体呈现
通过对30天日志的全面分析,图6(c)体现了更加全面和丰富的整体信息。可见,数据访问主要是以浅绿色节点①所对应的user实体为中心,向外延伸。此外浅蓝色节点②所对应的course实体使图6(b)中的孤立节点群①,②产生了关联。与全景视图相比,前两个阶段生成的图模型仅反映了局部实体和关联信息,而随着时间推移,日志数量不断增长,全景视图才逐渐完整地呈现出来。
综上,三幅子图中节点群间的连接随日志条目的增加而改变,展示了基于日志的跨域数据融合随时间的演变的图模型对数据分析方面的具体应用。
图6 由日志驱动生成的图模型随时间演化示意图
通过对不同用户的操作对应的日志记录建立图模型,可实现对不同角色或特定用户的画像分析,并通过可视化方式呈现用户行为习惯,有针对性对跨域资源和业务流程进行优化。通过过滤选取不同时段、不同用户、不同角色的访问日志(L),采用算法1对各类用户(群)的行为轨迹进行挖掘,通过关联多个实体,提高用户画像的查询性能,降低构建难度。
图7是在一系列日志条目之上的目标用户图模型,图7(a)中的目标用户是普通用户,而图7(b)则是管理员用户,可以发现:
1)实体差异
例如:普通用户主要是以图7(a)中节点群①、②和③所对应的实体user、course_modules和context为中心,向外扩展;而管理员用户则是以图7(b)中的节点群①所对应的实体role为起点,形成一个回路。
2)关联差异
例如:图7(a)中热点之间的连接更加复杂,多是通过不同实体节点(如橙色节点群④所对应的实体assign_submissing)产生间接关联;而图7(b)中与其对应的实体之间则是直接关联,关系更加直接密切。
图7 由不同用户(角色)的日志生成的图模型
上述分析表明,基于日志的跨域数据融合能够依据不同用户群体的操作之间的差异性,直接建立图模型对用户进行具体分类,此外,通过对用户操作深入分析,实现根据同类中已有的情况推测某用户的演变趋势。因此,在角色切换时,可通过图模型预加载或缓存相应资源,提高访问效率。
本文提出了一种基于日志分析的跨域多源异构数据融合方法,通过分析日志中的数据库访问条目,丰富和拓展了传统ERD,形成了增强的“实体-关系”图模型,支持隐藏关联信息的可视化和对不同用户/角色的动态时变分析,并以大规模定制领域的业务系统日志为例,呈现了图模型的可视化结果。
后续研究将通过对数据库中数据之间的相似性分析与当前已实现的跨域数据分析相结合,对数据之间建立关联,形成更为全面的关系数据知识图谱,实现对多源异构数据更精细、更准确的融合。