CN111949830A - 离散式索引方法与系统 - Google Patents

离散式索引方法与系统 Download PDF

Info

Publication number
CN111949830A
CN111949830A CN201910410408.9A CN201910410408A CN111949830A CN 111949830 A CN111949830 A CN 111949830A CN 201910410408 A CN201910410408 A CN 201910410408A CN 111949830 A CN111949830 A CN 111949830A
Authority
CN
China
Prior art keywords
data
logic
graph model
discrete
calculation
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.)
Pending
Application number
CN201910410408.9A
Other languages
English (en)
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.)
Yuntian Beijing Data Technology Co ltd
Original Assignee
Yuntian Beijing Data Technology Co ltd
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 Yuntian Beijing Data Technology Co ltd filed Critical Yuntian Beijing Data Technology Co ltd
Priority to CN201910410408.9A priority Critical patent/CN111949830A/zh
Publication of CN111949830A publication Critical patent/CN111949830A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9038Presentation of query results

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种离散式索引方法与系统,属于数据索引技术领域。所述方法包括:根据投影计算逻辑,将问题域数据对象投影到图模型,建立图模型数据对象;根据投影计算逻辑,实例化图模型;根据实例化的图模型进行分解计算,输出并存储离散式索引数据。所述系统包括投影建立模块、实例化模块和计算存储模块。本发明提供的离散式索引方法与系统能够有效解耦数据孤岛关联关系,实现计算逻辑向数据的分配与迁移,进而通过分布式计算显著提升整体数据分析效率。

Description

离散式索引方法与系统
技术领域
本发明涉及数据索引技术领域,特别涉及一种服务于异地异构数据孤岛联合数据分析的数据索引方法与系统。
背景技术
在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列属性值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速查询到所需的内容。在其他技术领域,如搜索引擎等,索引所包含的意义与上述关系数据库类似。
查询与分析计算过程定义如下:给定一个输入集合M从数据集X中获取输出集合N,如果在获取N的计算过程中仅包含针对数据集X的遍历与提取计算操作,那么获取N的计算过程称之为“查询”;如果在获取N的计算过程中还包括额外的数据计算和加工环节,那么获取N的计算过程称之为“分析”。举例而言,从一个社交数据库针对输入一组身份证号码集合获取身份证号码对应的人员姓名、年龄等属性数据,因整个过程仅包含遍历(遍历身份证号码集合)和提取(每个身份证对应的人员姓名、年龄属性等)操作,所以该计算过程属于“查询”;如果从该数据库针对同样的输入找到包含“人员姓名是张三的”的符合条件社交朋友圈,因整个过程除了遍历和提取计算操作外还包括额外获得“张三”社群信息的复杂数据计算逻辑,所以该计算过程属于“分析”。在本发明中,定义服务于查询计算(即遍历计算环节)效率提升的存储结构为查询索引;同理,定义服务于分析计算(即非遍历计算环节)效率提升的存储结构为分析索引。
目前已有的索引技术都是为提升查询检索(即遍历)数据/信息效率服务的,根据上述定义,属于“查询索引”。然而现实应用中,“分析”计算过程比“查询”计算过程更加耗时耗力,更需要通过“索引”技术进行提升效率(索引本身属于“空间换时间”的性能提升技术手段)。另外,由于分析计算逻辑通常会因实际解决问题场景不同而拥有不确定性,很难像“查询”计算过程统一清晰定义(即遍历计算),因此现有索引技术无法提供统一通用方法体系建立数据对象实例与计算逻辑片段的逻辑指针清单,服务于数据分析计算效率提升。
发明内容
为了解决现有索引技术无法服务于数据分析计算效率提升的问题,本发明提供了一种能够服务于数据分析计算效率提升的分析索引方法,即离散式索引方法,包括如下步骤:
根据投影计算逻辑,将问题域数据对象投影到图模型,建立图模型数据对象;
根据所述投影计算逻辑,实例化所述图模型;以及
根据实例化的所述图模型进行分解计算,输出并存储离散式索引数据。
本发明还提供了一种离散式索引系统,包括:
投影建立模块,用于根据投影计算逻辑,将问题域数据对象投影到图模型,建立图模型数据对象;
实例化模块,用于根据所述投影计算逻辑,实例化所述图模型;以及
计算存储模块,用于根据所述实例化模块实例化的所述图模型进行分解计算,输出并存储离散式索引数据。
本发明提供的离散式索引方法与系统,通过根据投影计算逻辑将问题域数据对象投影到图模型,并根据投影计算逻辑,完成图模型实例化,进而实现对图模型的分解计算得到离散式索引。本发明提供的离散式索引能够有效解耦数据孤岛关联关系,实现计算逻辑向数据的分配与迁移,进而通过分布式计算显著提升整体数据分析效率。
附图说明
图1是现有数据呈离散态分布示意图;
图2是使用本实施例离散式索引实现离散式数据分析的原理示意图;
图3是本实施例问题域数据对象与图模型数据对象的投影关系示意图;
图4是本实施例数据孤岛同步数据的原理示意图;
图5是本实施例数据孤岛异步数据的原理示意图;
图6是现有城市道路交通电子卡口设施示意图;
图7是现有城市道路交通电子卡口网络拓扑示意图;
图8是本实施例社交网络分析社群发现GN算法示意图;
图9是本实施例团伙关系分析算法示意图;
图10是本实施例“离散”数据仓库的数据模型示意图;
图11是本实施例离散式索引的图模型示意图;
图12是本实施例离散式索引方法的流程图;
图13是本实施例离散式索引系统的结构示意图;
图14是本实施例数据孤岛嵌套表达方式示意图。
具体实施方式
下面结合附图和实施例,对本发明技术方案作进一步描述。
现实中,基于数据安全、管理障碍等原因,数据孤岛彼此隔离、无法相互传输数据、呈“离散态”方式分布,如图1所示;但这些数据孤岛所包含的数据对象彼此之间存在关联关系,针对存在关联关系的数据孤岛的联合数据分析在本发明实施例中被定义为离散式数据分析。为了提升离散式数据分析效率,本发明实施例提出了一种分析索引技术,即离散式索引。
为了满足离散式数据分析在数据隔离性、分析效率和数据安全方面的技术要求,可以采用如图2所示数据分析流程:根据所分析问题的需要,通过分解计算针对输入数据集(该数据集可能跨越多个具有网络与数据安全边界的数据孤岛)建立离散式索引,再将数据分析逻辑片段分配到各个数据对象实例,进而实现各个数据实例调用所分配计算逻辑的分布式计算,输出中间结果集,最后通过对各个数据对象返回的中间结果集进行汇总加工计算,输出最终分析结果集。离散式数据分析在现实中有许多应用场景,目前已经成为各个企业和机构解决自身数据资源匮乏,提升自身竞争力,发现新的数据价值必需的技术手段,例如跨各个医院自有数据库、制药厂、保险公司等产业链环节的离散数据源分析会极大地提升整个产业链效率,降低无效浪费,为用户提供更加精准服务。
参见图12,本发明实施例提供的离散式索引方法,包括以下步骤:
步骤S101:建立一个图模型
Figure BSA0000183234530000041
本实施例图模型
Figure BSA0000183234530000042
适用顶点对象与边对象的定义,并与现有标准图模型的技术术语完全一致。顶点对象和边对象可以采用网络本体语言(OWL,Web Ontology Language)来描述;在OWL语义中,顶点对象对应于实体对象,边对象对应于关系对象。OWL语言已经广泛用于知识管理领域,这里不再赘述细节。本实施例图模型
Figure BSA0000183234530000051
的相关信息可以存储在后端图数据库中,或者存储在可以表达图模型语义的数据库中(例如Key-value数据库、文档数据库等)。本实施例图模型
Figure BSA0000183234530000052
可以对应于一个离散式索引,也可以对应于多个离散式索引(即多个离散式索引复用一个图模型);为了描述方便,本实施例后续步骤只限于一一对应关系,而一对多情况相比一对一情况只是图模型的初始状态不同,不影响实际方法步骤的可行性。本实施例图模型
Figure BSA0000183234530000053
的初始状态可以为空,也可以为非空;初始状态非空的图模型一般是图模型被复用的情况,与图模型初始状态为空的情况相比,在建立离散式索引的方法步骤上并无本质区别;为了后续方法步骤讨论方便,以下仅以图模型初始状态为空的情况为前提,即新建一个离散式索引。
步骤S102:建立问题域数据对象到图模型数据对象的投影计算逻辑,并根据投影计算逻辑,将问题域数据对象投影到图模型,建立图模型数据对象。
本发明实施例中,问题域数据对象具体指的是分析主题所涉数据对象,通常以数据模型的形式描述。在这里,数据模型可以是数据孤岛物理数据模型,也可以是多个数据孤岛本地物理数据模型聚合而成的虚拟数据模型。需要说明的是,虚拟数据模型本质上与物理数据模型在数据对象表达语义上是一致的,以结构化关系型数据库为例,二者可以都是以E-R模型方式表达,本质区别仅在于物理数据模型中数据对象有对应的数据的实例(通常存储在背后的介质中,例如数据库),而虚拟数据模型则没有。一般情况下,基于多个物理数据模型建立虚拟数据模型,采取数据虚拟化的技术手段,鉴于数据虚拟化(DataVirtualization)技术目前已经很成熟,已经存在如JBOSS的Data Virtualization、Tibco的Data Virtualization等诸多商业化产品与解决方案,这里不再赘述细节。
另外,本发明实施例中所提及数据孤岛通常是需要进行联合分析的数据来源,一般由网络边界或者用户权限边界所割裂。在实际应用中,数据孤岛可以以数据库、文件系统等存储形式存在。为了本实施例描述方便,后续所指数据孤岛仅以数据库代表,其他存储形式的数据孤岛均可以转化为类似数据库形式,进而复用相关方法步骤。
问题域数据对象可以包括实体对象,具体指的是数据模型层面客观事物的抽象描述,拥有刻画对象特征的属性集合,一般为数据模型中已经保存和定义的实体数据对象;如果数据模型采取数据库E-R模型语义描述,那么实体对象可以是该E-R模型的一个表对象;如果数据模型采取图模型语义描述,那么实体对象可以是该图模型中一个顶点对象。实际应用中,实体对象的数据类别包括结构化数据,例如数据库中表对象,以及以结构化形式描述的非结构化数据,例如JSON数据对象、XML数据对象、结构化方式描述的图片、语音、视频等数据对象。
问题域数据对象还可以包括关系对象,具体指的是实体对象之间关系的抽象描述,拥有刻画关系特征的属性集合,一般为数据模型中已经保存和定义的关系数据对象;如果数据模型采取数据库E-R模型语义描述,那么关系对象可以是该E-R模型的一个关联表对象(用于表征两个表的关系及相关属性的表对象,如图10中“TeachingClass”表对象,描述“Course”和“Teacher”两个表对象之间关联关系及属性);如果数据模型采取图模型语义描述,那么关系对象可以是该图模型中一个边对象。
实际应用中,上述实体对象与关系对象可以以静态形式存在、以动态形式存在或者以静态与动态混合形式存在;静态形式存在是指数据分析过程中实体或关系对象不发生变化(例如文件形式),动态形式存在是指数据分析过程中实体或关系对象发生变化(例如流数据形式)。
投影计算逻辑可以包括根据分析问题需要所采取的虚拟对象计算逻辑。虚拟对象计算逻辑包括虚拟实体对象计算逻辑和虚拟关系对象计算逻辑:
1)虚拟实体对象计算逻辑:虚拟实体对象是数据模型中不存在但是根据问题分析需要在图模型中建立具有与实体对象相同抽象语义的数据对象。虚拟实体对象计算逻辑是用于建立虚拟实体对象的计算逻辑,通常是基于数据模型实际定义和保存的实体对象属性集合的加工计算逻辑。如图10中“Student”实体对象(有关图10中各个数据对象意义请见下文说明),如果目标问题是要找到每个教师所授课同一宿舍的学生姓名(结果集中同一宿舍的学生不少于2人),那么还需要建立一个“宿舍”虚拟实体对象,该虚拟实体对象计算逻辑即基于实体对象“Student”的“DormitoryNo”属性计算得出虚拟实体对象“宿舍”的方法,鉴于相关技术已是业内共识,这里不再赘述细节。
2)虚拟关系对象计算逻辑:虚拟关系对象是数据模型中不存在但是根据问题分析需要在图模型中建立具有与关系对象相同抽象语义的数据对象。虚拟关系对象计算逻辑是用于建立虚拟关系对象的计算逻辑,通常是基于数据模型实际定义和保存的两个实体对象属性集合的加工计算逻辑。如图10中“StudentLog-in”实体对象与“CourseChoosing”实体对象之间的关系,在数据模型中并没有实际对应的关系对象定义,为了在图模型中可以准确定义与描述,需要基于上述实体对象建立一个虚拟关系对象“StudentCourseChoosing”(即图11中“选修”关系对象),该虚拟关系对象是通过二者之间JOIN关联计算(基于“StudentNo”共同属性)获得的,鉴于相关技术已是业内共识,这里不再赘述细节。
需要指出的是:在采用虚拟对象计算逻辑之后,需要将产生的虚拟实体对象和虚拟关系对象投影到图模型,以便建立图模型数据对象。
投影计算逻辑可以包括根据分析问题需要所采取的将问题域数据对象投影到图模型数据对象的投影方法逻辑,投影方法逻辑包括实例化投影方法逻辑和抽象化投影方法逻辑,如图3所示:
1)实例化投影方法逻辑:基于问题域实体和关系对象实例在图模型上以1∶1建立相同属性集合或者部分相同属性集合的顶点与边对象实例。上述实体或关系对象实例,举例而言,如图10中“Student”实体对象与“TeachingClass”关系对象,实际分别对应于数据库的一张表数据,那么该表中每行数据记录即为该实体对象或关系对象的实例。
2)抽象化投影方法逻辑:基于问题域实体和关系对象实例在图模型上以N∶1建立相同属性集合或者部分相同属性集合的顶点与边对象实例;其中N为大于1的自然数。以关系对象抽象化投影为例:假设图模型中顶点对象为旅客A和旅客B(以身份证ID唯一标识),在图模型上记述旅客A与旅客B之间同行关系的边对象实例定义上,可以采取抽象化投影方法逻辑,即无论旅客A与旅客B同行过多少次(可以认为是数据孤岛关系对象实例),在图模型中只有一个“存在同行关系”关系对象(即图模型边对象)实例。需要说明的是:在采取抽象化投影方法逻辑的情况下,还需要定义抽象化投影相关的计算方法,例如上述将旅客A和旅客B同行记录实例合并,可以采取哈希表计算方法,鉴于这类数据实例合并抽象的计算方法已是业内常识,这里不再赘述细节。
在实际应用中,如果投影过程有数据安全考虑,那么投影计算逻辑可以包括数据安全计算逻辑,进而在保证不影响图模型后续分解计算效果的同时,保护数据隐私。数据安全计算逻辑包括但不限于哈希、加密、脱敏等计算方法。举例而言,上述旅客A和旅客B在图模型上标识,如果采取身份证ID方式记述,那么很容易暴露相关隐私,这时可以先将他们的身份证ID进行哈希计算(一般哈希计算不可逆)对数据脱敏,然后再进行投影,这样不但可以实现相同的技术效果,而且还可以有效保护数据隐私。
在实际应用中,鉴于虚拟实体对象、虚拟关系对象与实体对象、关系对象在数据模型语义表达上一致,可以根据解决问题的需要,叠加应用投影方法逻辑和虚拟对象计算逻辑,即先基于数据模型数据对象进行虚拟对象计算逻辑,然后缓存下来所获虚拟数据对象,进而调用投影方法逻辑,投影到图模型建立对应的图模型数据对象。
在实际应用中,如果根据分析问题的需要和接收输入参数列表,需要将(数据孤岛)更新数据同步投影到图模型,那么投影计算逻辑可以包括同步计算逻辑。例如,数据孤岛(假设数据孤岛是以关系型数据库存储形式存在)更新数据使用的是二维表数据结构,在同步投影到图模型前需要通过同步计算逻辑将其转换为图模型数据结构。
在实际应用中,投影计算逻辑所包括的各种逻辑通常需要根据分析问题的需要来决定。例如:在分析查找社群的情况下,投影计算逻辑可包括投影方法逻辑和安全计算逻辑;在分析查找套牌车的情况下,投影计算逻辑可包括投影方法逻辑、安全计算逻辑和同步计算逻辑;在分析团伙关系的情况下,投影计算逻辑可包括投影方法逻辑、安全计算逻辑和同步计算逻辑等。
根据投影计算逻辑,将问题域数据对象投影到图模型,形成图模型数据对象,即顶点对象和边对象。需要说明的是:图模型数据对象(顶点对象、边对象)的属性可以包括其对应的数据模型的数据对象的全部属性或部分属性,也就是说图模型数据对象(顶点对象、边对象)的属性是其对应的数据模型的数据对象属性的子集;此外,图模型数据对象的属性还可以进一步包括图模型分析中需要建立的自定义属性。
S103:根据图模型数据对象中顶点对象的属性关联关系,建立数据孤岛关联关系的计算逻辑。
图模型数据对象包括分析所需的数据模型(对应于所涉数据孤岛)的所有数据对象;在图模型上,数据孤岛关联关系是通过数据模型所包含数据对象之间关联关系描述与刻画的,而数据对象之间关联关系的计算逻辑(即数据孤岛关联关系的计算逻辑)是基于图模型已有(来源于不同数据模型)顶点对象的属性关联关系建立的。举例而言,假设图10中域2数据孤岛(数据库,下同)数据模型上“StudentLog-in”实体对象采取实例化投影方法逻辑在图模型上建立相应的顶点对象;同理,域3数据孤岛数据模型上的“CourseChoosing”实体对象也采取实例化投影方法逻辑在图模型上建立相应顶点对象;那么基于两类顶点对象相同的“StudentNo.”属性可以建立如图11中图模型“选修”边对象,该边对象实例集合表征的就是上述数据孤岛关联关系。鉴于相关基于属性数据的计算建立图模型边对象实例的技术已是业内常识,这里不再赘述细节。
在实际应用中,建立数据孤岛关联关系的计算逻辑是可选项而非必选项,这点通常由分析问题的需要来决定。例如下面步骤S105“动态拓扑与异步数据”组合条件下的示例(如图9所示),数据孤岛关联关系是通过实体对象实例重合(即多个数据孤岛共同具有相同身份证ID的公民)来体现,而无需建立跨数据孤岛对象之间关联关系(即图模型上的边对象),即无需建立数据孤岛关联关系的计算逻辑。然而,作为对照,步骤S105“静态拓扑与异步数据”组合条件下的示例,如果分析问题的需要是要输出跨数据孤岛的分析报表,那么就需要建立数据孤岛关联关系的计算逻辑,即必需建立数据孤岛关联关系的计算逻辑。
步骤S104:抽取数据传输到目标位置,并调用投影计算逻辑和数据孤岛关联关系的计算逻辑,完成图模型实例化。
图模型实例化过程是将数据实例赋予图模型对象定义的过程,鉴于对象实例化过程已是业内常识,这里不再赘述细节。实例化过程需要先抽取步骤S102投影计算逻辑中定义的数据对象实例,然后再调用投影计算逻辑与数据孤岛关联关系的计算逻辑,进而完成实例化。
抽取数据的传输可以在一个网域进行,也可以跨网域进行;可以采取直接传输方式,也可以采取通过另一台计算机(如前置系统)转发方式传输;可以是明文传输,也可以是密文传输。
目标位置可以是内存或持久化存储介质;持久化存储介质可以包括但不限于文件系统或者数据库。
投影计算逻辑与数据孤岛关联关系的计算逻辑,可以采用包括但不限于ApacheFlink,Apache Spark等Hadoop生态体系数据分析工具,或者可以采用包括但不限于MPI、机器学习等其他数据分析工具。
在图模型实例化过程中,可以使用包含成熟的ETL(Extract-Transform-Load,萃取-转置-加载)方法、数据清洗方法、数据同步(Change Data Capture,CDC)等技术手段,鉴于相关技术已经成熟,这里不再赘述细节。图模型实例化可以根据用户定义规则自动启动运行,例如在现实应用中存在数据孤岛侧更新数据不断输入到图模型的场景(例如步骤S105中同步数据约束条件下的场景),用户定义规则可以是图模型待输入数据增量达到用户定义的阈值后自动启动运行,或者图模型实例化可以由用户手动启动运行。
步骤S105:根据实例化的图模型进行分解计算,输出离散式索引数据。
将实例化的图模型进行分解计算的目的是将面向全局数据集的整体分析计算逻辑分解成面向每一个数据实例的计算逻辑片段,进而输出离散式索引数据,如图2所示。离散式索引数据与图模型的函数关系可表达为:
Figure BSA0000183234530000121
其中:
Figure BSA0000183234530000122
为离散式索引数据;
Figure BSA0000183234530000123
为分解计算函数;
Figure BSA0000183234530000124
为实例化的图模型,包括图的拓扑结构、构成拓扑的顶点与边实例集合、以及顶点与边实例集合各个元素的属性;
Figure BSA0000183234530000125
为分解计算运行期间的输入数据,该输入数据来源于数据孤岛在分解计算运行期间的更新数据(通常情况下,该更新数据需要调用对应计算逻辑后投影到图模型,如图4和图5所示)。
在分解函数
Figure BSA0000183234530000126
运行期间,实例化的图模型
Figure BSA0000183234530000127
(分解函数
Figure BSA0000183234530000128
的输入)的情形只有两种:不变化或者变化。在本实施例中,将
Figure BSA0000183234530000129
Figure BSA00001832345300001210
运行期间不变化的情形,定义为静态拓扑,反之定义为动态拓扑。图模型
Figure BSA00001832345300001211
的变化可以包括顶点与边实例的属性变化和/或图模型
Figure BSA00001832345300001212
的拓扑结构变化。在分解函数
Figure BSA00001832345300001213
运行期间,数据孤岛的更新数据是否转化为分解函数
Figure BSA00001832345300001214
的输入数据
Figure BSA00001832345300001215
的情形也有两种:“转化”或者“不转化”。在本实施例中,将数据孤岛在接收到更新数据后,在预设的周期内,将全部或者部分更新数据投影到图模型后,转化为分解函数
Figure BSA00001832345300001216
运行期间的输入数据
Figure BSA00001832345300001217
的情形,定义为同步数据,反之为异步数据。由此可见,分解函数
Figure BSA00001832345300001218
的存在形式只收敛于4个区间:静态拓扑与同步数据组合条件约束下、动态拓扑与异步数据组合条件约束下、动态拓扑与同步数据组合条件约束下、以及静态拓扑与异步数据组合条件约束下。
下面对上述4个组合条件约束区间分别举例,说明分解函数
Figure BSA0000183234530000131
的可行性:
1、静态拓扑与同步数据组合条件
该组合条件约束下的典型例子是:查找套牌车。场景描述如下:所谓套牌车是指不法分子伪造和非法套取真牌车的号牌、型号和颜色,使走私、拼装、报废和盗抢来的车辆在表面披上了“合法”的外衣。套牌就是贴标签,参照真实牌照,将号码相同的假牌套在其他车上。查找套牌车的方法是通过电子卡口(如图6所示)识别路过的车牌号码;如果城市电子卡口网络中(如图7所示)相邻时间节点的电子卡口识别出相同的车牌,并且这两个电子卡口最短距离除以上述相邻时间差所获得的平均车速超过可接受速度范围(例如60公里/小时),那么该车牌即为可疑套牌车;然后再调出相关详细信息(例如电子卡口对车辆牌照、驾驶司机的拍照等)做进一步甄别。
针对查找套牌车,本实施例离散式索引数据的建立过程为:
1)定义输入变量
Figure BSA0000183234530000132
并实例化:根据本实例分析问题需要建立图模型
Figure BSA0000183234530000133
然后建立投影计算逻辑:
①虚拟对象计算逻辑:该实例不需要建立虚拟对象;
②投影方法逻辑:该实例采取实例化投影方法逻辑,图模型顶点实例对应于电子卡口,以电子卡口ID唯一标识;图模型边实例对应于城市电子卡口网络拓扑中各个相邻电子卡口之间的连接线(即道路),边实例的属性为相邻卡口之间的距离;
③安全计算逻辑:如果需要信息安全,可以将上述电子卡口ID以及参与计算的车牌号进行Hash处理,该处理步骤不影响后续
Figure BSA0000183234530000134
的计算逻辑的运行;
④同步计算逻辑:即后文中关于输入变量
Figure BSA0000183234530000141
的定义;
建立投影计算逻辑后,还需要建立数据孤岛关联关系的计算逻辑:跨数据孤岛边对象(即图7的数据可能来源于不同的电子卡口本地数据库/应用)建立方法采取根据具有关联关系顶点实例(有道路关联关系跨电子卡口)的关联属性(即关联道路)进行关联计算(道路左右顶点实例对应于不同数据孤岛的两个电子卡口ID)。
基于所建立的投影计算逻辑和数据孤岛关联关系的计算逻辑,图模型
Figure BSA0000183234530000142
的顶点对象和边对象就可以建立起来了。鉴于该实例场景下分解函数
Figure BSA0000183234530000143
运行期间,图模型
Figure BSA0000183234530000144
不发生变化,所以属于静态拓扑情形。由此图模型
Figure BSA0000183234530000145
实例化方法就是将相关电子卡口ID、城市网络电子卡口网络拓扑(包括跨电子卡口数据库/跨城市(跨数据孤岛)电子卡口网络拓扑)、以及相邻卡口之间的距离等数据作为一个静态文件(例如CSV、JSON或XML)导入,调用上述投影计算逻辑和数据孤岛关联关系的计算逻辑,赋予图模型
Figure BSA0000183234530000146
中顶点与边实例,完成图模型的实例化。
2)定义输入变量
Figure BSA0000183234530000147
在实际应用中,各个电子卡口实时回传其所识别车牌号以及车辆/司机拍照等数据到本地系统(数据库/应用)中,该本地系统为本实施例所述数据孤岛。为支持上述分析逻辑,需要在
Figure BSA00001832345300001413
运行期间,将数据孤岛接收到的更新数据(所捕捉和识别的车牌与时间等信息),在预先定义延时范围内(例如30秒),同步输入给
Figure BSA0000183234530000148
以支持实时发现可疑套牌车。参考上述关于输入数据
Figure BSA0000183234530000149
的定义,该场景下
Figure BSA00001832345300001410
属于同步数据情形。
3)确定
Figure BSA00001832345300001411
的计算逻辑:在接收到
Figure BSA00001832345300001412
(包含某一车牌在某电子卡口ID被识别信息)后,基于最近时间点该车牌所处电子卡口ID’,在图模型上计算出电子卡口ID以及ID’(ID与ID’也是图模型顶点实例唯一标识)之间最短距离,进而根据最短距离-时间差-平均速度关联性,判断该车牌是否为可疑套牌;如果是,则输出车牌号、卡口ID和ID’、通过时间等信息。上述计算逻辑中计算图顶点之间最短距离算法SSSP(Single Source Shortest Path,单源最短路径)已是业内已知图分析算法,这里不再赘述细节。
4)输出离散式索引数据
Figure BSA0000183234530000151
以可疑套牌车“车牌+卡口ID+通过卡口时间”为离散式索引的Key(关于分析索引的数据结构定义请见下面相关叙述,下同),每个Key对应的计算逻辑片段--根据key查询相关属性(例如照片、通过时间),其他离散式索引信息还包括Key对应数据孤岛位置信息、对象标识等。
2、动态拓扑与异步数据组合条件
该组合条件约束下的典型例子是:社群发现。场景描述如下:假设有来源于多个电信运营商的通话数据(对应于多个数据孤岛),基于通话的历史记录构成了基于公民身份证号码的社交网络。现需要基于该社交网络找到某一确定时刻的社群,并输出该时刻基于身份证号码的社群成员信息(例如年龄、性别等)。
针对社群发现,本实施例离散式索引数据的建立过程为:
1)定义输入变量
Figure BSA0000183234530000152
并实例化:根据本实例分析问题需要建立图模型
Figure BSA0000183234530000153
然后建立投影计算逻辑:
①虚拟对象计算逻辑:该实例不需要建立虚拟对象;
②投影方法逻辑:该实例建立图模型顶点对象(实例)采取的是实例化投影方法逻辑,即将实现底层数据孤岛中所有用户的公民身份证号码1∶1投影到图模型上,建立图模型顶点实例;建立图模型边对象(实例)采取的是抽象化投影方法逻辑,即将底层数据孤岛中公民A与公民B之间通讯历史进行合并抽象(不论他们之间进行过多少次通讯),投影到图模型上的边对象只是“公民A与公民B存在通讯关系”;
③安全计算逻辑:如果需要信息安全,可以将上述公民身份证号码以及公民之间通讯关系标识进行Hash处理,该处理步骤不影响后续
Figure BSA0000183234530000169
的计算逻辑的运行;
④同步计算逻辑:即后文中关于输入变量
Figure BSA0000183234530000161
的定义;
建立投影计算逻辑后,还需要建立数据孤岛关联关系的计算逻辑:在本实例中,数据孤岛关联关系的计算逻辑的建立方法,主要是寻找图模型顶点对象实例(即公民)之间进行跨运营商(即数据孤岛)发生通讯关系的情形,比如使用运营商1服务的公民A与使用运营商2服务的公民B发生了通讯关系,进而建立相关计算逻辑;
基于所建立的投影计算逻辑和数据孤岛关联关系的计算逻辑,图模型
Figure BSA0000183234530000162
的顶点对象和边对象就可以建立起来了。鉴于该实例场景下分解函数
Figure BSA0000183234530000163
运行期间,图模型
Figure BSA0000183234530000164
拓扑结构不断发生变化(具体详见下文描述),所以属于动态拓扑情形。由此图模型
Figure BSA0000183234530000165
实例化方法就是从底层数据孤岛抽取数据,同时调用上述投影计算逻辑和数据孤岛关联关系的计算逻辑,在图模型上建立顶点对象实例与边对象实例集合,完成图模型实例化。
2)定义输入变量
Figure BSA0000183234530000166
在该示例场景下,由于所分析的问题是针对一个确定时间节点的社交网络(即图模型)的分析,因此在
Figure BSA00001832345300001610
运行期间,不会有输入数据,属于异步数据情形,即
Figure BSA0000183234530000167
3)确定
Figure BSA0000183234530000168
的计算逻辑:基于社交网络的社群发现有很多成熟的算法,例如GirvanNewman(GN)算法,该算法需要针对图模型边对象(实例)计算介数;所谓边的介数,是指网络中经过该边的最短路径占所有最短路径的比例。如图8所示,GN算法主要步骤包括:a)计算图模型中所有边的介数;b)找到介数最高的边,并将它从图中移除;c)重复以上步骤,直到每个节点就是一个社区为止;由上述步骤可见,在
Figure BSA0000183234530000171
运行期间图模型
Figure BSA0000183234530000172
拓扑结构不断发生变化,直至
Figure BSA0000183234530000176
运行完毕,因此属于动态拓扑情形。
4)输出离散式索引数据
Figure BSA0000183234530000173
以公民身份证号码为离散式索引的Key,每个Key对应的计算逻辑片段--根据key查询相关属性(例如姓名、年龄等),其他离散式索引信息还包括Key对应数据孤岛位置信息、对象标识等。
3、动态拓扑与同步数据组合条件
该组合条件约束下的典型例子是:团伙关系发现。场景描述如下:该场景需要基于多个数据孤岛数据对象(比如旅馆数据、网吧数据、通信数据等)所创建的动态社交网络(如图9所示)--在数据分析运行期间社交关系可能不断发生变化,发现团伙关系。发现规则为满足同住关系(根据旅馆数据获得,即图9所示关系1)、同上网关系(根据网吧数据获得,即图9所示关系2)、通讯关系(根据通信数据获得,即图9所示关系3)三种关系中两种即可认定为一对可疑团伙关系;然后根据他们的性别、年龄等信息进一步甄别。需要说明的是,该场景与“动态拓扑与异步数据组合条件”不同之处在于:公民之间关系存在多条,并且整个分析运行期间社交网络可能不断变化,该变化直接诱因来源于底层数据孤岛的数据变化,而非“动态拓扑与异步数据组合条件”场景的分析算法所覆盖。
针对团伙关系发现,本实施例离散式索引数据的建立过程为:
1)定义输入变量
Figure BSA0000183234530000174
并实例化:根据本实例分析问题需要建立图模型
Figure BSA0000183234530000175
然后建立投影计算逻辑:
①虚拟对象计算逻辑:该实例不需要建立虚拟对象;
②投影方法逻辑:该实例建立图模型顶点对象(实例)采取的是实例化投影方法逻辑,即将实现底层数据孤岛中所有用户的公民身份证号码1∶1投影到图模型上,建立图模型顶点实例;建立图模型边对象(实例)采取的是抽象化投影方法逻辑,即将底层数据孤岛中公民A与公民B之间关系(上述三种关系的一种)进行合并抽象(不论他们之间存在多少次关系),投影到图模型上的边对象只是“公民A与公民B存在关系X”(X=1,2,3),并且以唯一ID标识所述关系(如图9所示);
③安全计算逻辑:如果信息安全需要,可将上述公民身份证号码以及公民之间关系标识进行Hash处理,该处理步骤不影响后续
Figure BSA0000183234530000187
的计算逻辑的运行;
④同步计算逻辑:即后文中关于输入变量
Figure BSA0000183234530000181
的定义;
建立投影计算逻辑后,还需要建立数据孤岛关联关系的计算逻辑:在本实例中,鉴于数据孤岛关联关系是以实体对象实例重合体现(即旅馆数据孤岛、通信数据孤岛、网吧数据孤岛在图模型上都存在相同公民实体对象实例投影),因此无需建立数据孤岛关联关系(即边对象)的计算逻辑;
基于所建立的投影计算逻辑和数据孤岛关联关系计算逻辑,图模型
Figure BSA0000183234530000182
的顶点对象和边对象就可以建立起来了。鉴于该实例场景下分解函数
Figure BSA0000183234530000183
运行期间,社交关系不断发生变化,导致不断有新的社交关系数据输入,进而使图模型
Figure BSA0000183234530000184
拓扑结构不断发生变化,所以属于动态拓扑情形。由此图模型
Figure BSA0000183234530000185
实例化方法就是从底层数据孤岛抽取数据,同时调用上述投影计算逻辑和数据孤岛关联关系的计算逻辑,在图模型上建立顶点对象实例与边对象实例集合,完成图模型实例化。
2)定义输入变量
Figure BSA0000183234530000186
该示例场景下,随着后端数据孤岛数据更新,人与人之间的关系可能随时发生变化(例如图9中李四和王五关系,可能是随着时间变化而后期建立的),所有这些变更数据,按照分析主题要求--数据分析期间持续输出可疑团伙关系,在预先定义延时范围内(例如30秒),同步输入给
Figure BSA0000183234530000191
以支持实时发现可疑团伙关系。
3)确定
Figure BSA0000183234530000192
的计算逻辑:
Figure BSA0000183234530000193
分析逻辑基于图分析方法建立,即针对任一时刻的图拓扑(考虑到变更数据不断改变图拓扑结构),运行图遍历算法(例如BFS),如果该时刻任一一对顶点实例之间边的数量大于等于2,则该顶点实例对(即公民身份证号码对)为候选团伙关系。鉴于相关图分析算法已是业内已知技术,这里不再赘述细节。
4)输出离散式索引数据
Figure BSA0000183234530000196
以公民身份证号码为离散式索引的Key,每个Key对应的计算逻辑片段--根据key查询相关属性(比如姓名、性别、年龄等),其他离散式索引信息还包括Key对应数据孤岛位置信息、对象标识等。
4、静态拓扑与异步数据组合条件
该组合条件约束下的典型例子是:“离散”数据仓库分析报表。场景描述如下:假设有存在关联关系的数据对象(即表)来源于多个数据孤岛(以域1、域2、域3中不同数据库表征),如图10所示,但由于数据安全、传输带宽、或者数据实时性等要素限制,无法采用传统技术将它们集中在一个数据仓库或者同类存储介质上进行联合分析。因此,需要建立一个“离散”数据仓库(关联数据对象分布在彼此割裂的数据孤岛上),输出跨越数据孤岛的分析报表。
针对“离散”数据仓库分析报表,本实施例离散式索引数据的建立过程为:
1)定义输入变量
Figure BSA0000183234530000194
并实例化:根据包含跨数据孤岛数据对象之间关联关系的数据模型(如图10所示)建立图模型
Figure BSA0000183234530000195
(如图11所示);然后建立投影计算逻辑:
①虚拟对象计算逻辑:该实例针对数据孤岛内部对象之间关联关系需要建立虚拟关系对象,建立方法是基于两个表对象外键关联关系使用“JOIN”计算逻辑建立,如图10中“CourseChoosing”和“Course”表对象之间关系需调用JOIN计算逻辑建立虚拟关系对象,才能够对应于图11中“课程”和“已选课程”之间“从属”关系的边对象;
②投影方法逻辑:该实例采取实例化投影方法逻辑,图模型顶点实例对应于表对象实例;图模型边实例对应于数据模型中既有的关联表对象(如图10中“TeachingClass”表对象)或者是虚拟关系对象实例;
③安全计算逻辑:如果需要信息安全,可以将上述实体或者虚拟表对象实例主键进行Hash处理,该处理步骤不影响后续
Figure BSA0000183234530000207
的计算逻辑的运行;
④同步计算逻辑:即后文中关于输入变量
Figure BSA0000183234530000201
的定义;
建立投影计算逻辑后,还需要建立数据孤岛关联关系的计算逻辑:基于存在关联关系顶点实例的关联属性建立,例如基于“CourseChoosing”和“StudentLog-in”对象实例的StudentNo.属性建立图11中跨域2和域3数据孤岛关联关系——“选修”边对象的实例。
基于所建立的投影计算逻辑和数据孤岛关联关系的计算逻辑,图模型
Figure BSA0000183234530000202
的顶点对象和边对象就可以建立起来了。鉴于该实例场景下分解函数
Figure BSA0000183234530000203
运行期间,图模型
Figure BSA0000183234530000204
不发生变化,所以属于静态拓扑情形。由此图模型
Figure BSA0000183234530000205
实例化方法就是从底层数据孤岛抽取数据,同时调用上述投影计算逻辑和数据孤岛关联关系的计算逻辑,在图模型上建立顶点对象实例与边对象实例集合,完成图模型实例化。
2)定义输入变量
Figure BSA0000183234530000206
该示例场景下,一般分析报表都是对于某一确定时间节点的分析,所以在
Figure BSA0000183234530000215
运行期间,不会有变更数据输入,即
Figure BSA0000183234530000211
3)确定
Figure BSA0000183234530000212
的计算逻辑:数据报表的分析逻辑一般以SQL语言表达,其中跨异构表数据对象(包括跨数据孤岛(数据库)的表对象)分析逻辑主要以JOIN算子表达,JOIN算子主要以内联计算逻辑为核心,其他左联、右联等计算逻辑都是基于内联计算的关系代数拓展,因此下面仅以内联计算为例说明,其他场景可以借鉴关系代数计算相关业内常识,进行拓展。
本实例场景下,参见图10,表对象“StudentLog-in”和“CourseChoosing”属于不同数据孤岛(数据库),二者通过关联属性“StudentNo.”建立了图11中边对象实例“选修”。如果建立表对象“StudentLog-in”和“CourseChoosing”之间的“离散”分析报表,对应的
Figure BSA0000183234530000213
计算逻辑就是在图11所示的图模型上以图遍历算法(例如BFS)遍历所有“选修”边实例,输出边实例的左右顶点对实例(以各个顶点ID唯一标识,该顶点ID对应于其所投影的表对象行记录主键)。
4)输出离散式索引数据
Figure BSA0000183234530000214
以顶点ID,即对应表对象行记录的主键为离散式索引的Key,每个Key对应的计算逻辑片段--根据key查询相关属性,其他离散式索引信息还包括Key对应数据孤岛位置信息、(表)对象标识等。
本发明实施例中,离散式索引数据结构包括至少四个维度,即(Key,DID,OID,CID),其中,Key为数据对象实例在数据对象实例维度上的唯一标识,例如上述表对象的主键;DID为数据对象实例(所对应的数据对象)在数据孤岛维度上的唯一标识,例如“域名.数据库名称.模式名称”等,其中域名是一个网络隔离区域的唯一标识,可以是一个企业或者一个部门;数据库名称是该域内某一数据库的唯一标识;模式名称是该数据库的模式唯一标识;OID为数据对象实例(所对应的数据对象)在数据对象维度上的唯一标识,例如上述数据库模式(schema)中的一个表对象;CID为数据对象实例在计算逻辑片段维度上的唯一标识。上述四个维度之间存在正交关系是因为:多个数据孤岛可以包含一个同构数据对象,一个同构数据对象可以包含多个数据对象实例,可能属于不同数据孤岛的一个同构数据对象的多个实例可以对应于多个不同计算逻辑片段。在实际应用中,根据问题解决的需要,离散式索引数据结构还可以包括更多其他维度,例如用户维度、角色维度等,用于控制用户对数据对象实例的访问权限。
需要说明的是,DID可以指向物理数据孤岛,或者指向数据孤岛的集合,即逻辑数据孤岛。在本发明实施例中,逻辑数据孤岛具体指的是问题域内物理数据孤岛集合以一个“逻辑”对象抽象表达的形式。问题域中第i个逻辑数据孤岛vDIDi表达如下:
vDIDi={DIDi1,DIDi2,......,DIDin}(n代表所包含物理数据孤岛的数量)
以步骤S105中“查找套牌车”场景为例,如图14所示,如果分析主题需要在“部”一级寻找跨省作案的套牌车,那么在“部”一级看到的数据孤岛“省”实际上是一个逻辑数据孤岛(与现实中“省”是一个逻辑层面的行政区划情况对应),而“省”才能看到其所含的真正独立数据孤岛——地市。
在实际应用中,鉴于逻辑数据孤岛在表达语义层面与物理数据孤岛一致,因此它也可以与独立数据孤岛在建立离散式索引过程中混合应用,具体方法只是将逻辑数据孤岛中的独立数据孤岛以及其所含数据对象前面加上一个新的命名空间(namespace,一般为逻辑数据孤岛在问题域中唯一标识),而不改变其属性和行为。如需对逻辑数据孤岛数据对象进行实例化,其实就是递归调用针对该逻辑数据孤岛所涉的独立数据孤岛所含数据对象的实例化过程,鉴于相关技术已经是业内常识,这里不再赘述细节。
S106:将离散式索引数据,按照预定义的遍历机制持久化存储到目标存储介质,并提供读写访问接口。
遍历机制可以根据Key或OID或DID或CID等维度来进行设置。根据选定维度设置的遍历机制,对离散式索引数据进行排序,然后再持久化存储到目标存储介质。目标存储介质可以是包括关系数据库、Key-Value数据库、图数据库在内的存储介质。在目标存储介质上持久化的离散式索引数据,还可以选择其他遍历维度建立索引,以提高所选维度遍历效率;基于离散式索引数据建立索引的方法,可以采用但不限于排序、Hash等方法,相关技术已经成熟,这里不再赘述细节。读写访问接口包括但不限于支持查询、更新、删除等操作步骤的接口。
本发明实施例提供的离散式索引方法,通过根据投影计算逻辑将问题域数据对象投影到图模型,并根据图模型数据对象中顶点对象的属性关联关系,建立数据孤岛关联关系,完成图模型实例化,进而实现对图模型的分解计算得到离散式索引。本发明实施例提供的离散式索引针对有关联关系的、处于不同数据孤岛的实体对象,记述它们之间的关联关系,进而通过该关联关系信息,可以解耦数据孤岛,进而支持离散式数据分析。
参见图13,本发明实施例还提供了一种离散式索引系统,包括:
投影建立模块501,用于根据投影计算逻辑,将问题域数据对象投影到图模型,建立图模型数据对象;
实例化模块503,用于根据投影计算逻辑,实例化图模型;以及
计算存储模块504,用于根据实例化模块503实例化的图模型进行分解计算,输出并存储离散式索引数据。
进一步地,本发明实施例的离散式索引系统还包括:
逻辑建立模块502,用于根据投影建立模块501建立的图模型数据对象中顶点对象的属性关联关系,建立数据孤岛关联关系的计算逻辑;相应地,实例化模块503,用于根据投影计算逻辑和逻辑建立模块502建立的计算逻辑,实例化图模型。
其中,投影建立模块501进一步包括以下中的至少一个:
虚拟对象计算逻辑单元,用于存储虚拟实体对象计算逻辑和虚拟关系对象计算逻辑;
投影计算逻辑单元,用于存储实例化投影方法逻辑和抽象化投影方法逻辑;
虚拟实体对象投影单元,用于根据虚拟对象计算逻辑单元存储的虚拟实体对象计算逻辑,将数据模型实际定义和保存的实体对象属性集合进行加工计算得到虚拟实体数据对象;
虚拟关系对象投影单元,用于根据虚拟对象计算逻辑单元存储的虚拟关系对象计算逻辑,将数据模型实际定义和保存的两个实体对象属性集合进行加工计算得到虚拟关系数据对象;
第一实例化投影单元,用于根据投影计算逻辑单元存储的实例化投影方法逻辑,将虚拟实体数据对象和虚拟关系数据对象在图模型上以1∶1建立相同属性集合或者部分相同属性集合的顶点与边对象集合;
第一抽象化投影单元,用于根据投影计算逻辑单元存储的抽象化投影方法逻辑,将虚拟实体数据对象和虚拟关系数据对象在图模型上以N∶1建立相同属性集合或者部分相同属性集合的顶点与边对象集合;
第二实例化投影单元,用于根据投影计算逻辑单元存储的实例化投影方法逻辑,将问题域数据对象在图模型上以1∶1建立相同属性集合或者部分相同属性集合的顶点与边对象集合;
第二抽象化投影单元,用于根据投影计算逻辑单元存储的抽象化投影方法逻辑,将问题域数据对象在图模型上以N∶1建立相同属性集合或者部分相同属性集合的顶点与边对象集合;
安全计算逻辑单元,用于存储安全计算逻辑;或者
安全计算单元,用于根据安全计算逻辑单元存储的安全计算逻辑,将虚拟实体数据对象、虚拟关系数据对象和问题域数据对象中的至少一种进行安全计算;
其中N为大于1的自然数。
其中,计算存储模块504进一步包括:
函数建立单元,用于建立离散式索引与实例化模块实例化的图模型之间的分解计算函数;
计算输出单元,用于根据函数建立单元建立的分解计算函数,计算并输出离散式索引数据;以及
存储单元,用于将计算输出单元输出的离散式索引数据按照预定义的遍历机制持久化存储到目标存储介质,并提供读写访问接口。
进一步地,计算存储模块504还包括:
索引建立单元,用于将存储单元持久化存储到目标存储介质上的离散式索引数据,按照离散式索引数据结构中的一个维度再次遍历建立索引。
本发明实施例提供的离散式索引系统,通过投影建立模块将问题域数据对象投影到图模型,并通过逻辑建立模块建立数据孤岛关联关系,实例化模块完成图模型实例化,进而通过计算存储模块实现对图模型的分解计算得到离散式索引。通过本发明实施例的离散式索引系统,能够有效解耦数据孤岛关联关系,实现计算逻辑向数据的分配与迁移,进而透过分布式计算显著提升整体数据分析效率。
本发明实施例离散式索引与传统索引相比,具有以下不同点:
1、传统索引与离散式索引的技术定位差异:现有索引技术包括关系数据库索引、图数据库索引和搜索引擎索引,它们都属于查询索引,用于查询服务;本发明实施例提出的离散式索引用于分析服务;二者在技术定位上有着本质不同。
2、建立方法不同:不同于传统索引建立如排序、哈希等方法,离散式索引的建立采取图模型方法,建立过程中支持复杂的投影计算、数据孤岛关联关系计算和分解计算。
3、计算方法不同:不同于传统索引的一个阶段排序计算,离散式索引需要经历三阶段计算:投影计算、数据孤岛关联关系计算和分解计算,服务于索引建立各个环节的技术目标。
4、范围不同:传统索引只能用于加速遍历一个数据孤岛的一个同构对象的一个或者多个属性,而离散式索引可用于加速遍历多个数据孤岛的多个异构对象的多个属性。
5、数据结构不同:传统索引数据只需要记录关键字和位置的逻辑指针两个维度的数据,而离散式索引至少包括四个维度的数据,并且随着需要可以拓展更多维度信息。
本发明实施例离散式索引是一种数据存储结构,存储了任一数据对象实例与所对应的包括但不限于计算逻辑片段、存储位置等信息的逻辑指针清单。本发明实施例离散式索引服务于数据分析,通过将全局数据分析计算逻辑分解为针对每个数据对象实例的计算逻辑片段,进而透过分布式计算显著提升整体数据分析效率。
在实际应用中,本实施例中所涉及的各个功能模块及单元,均可以由运行在计算机硬件上的计算机程序实现,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的硬件指的是包含一个或者多个处理器和存储介质的服务器或者台式计算机、笔记本电脑等;所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等;所述计算机程序由不限于C、C++等计算机语言实现。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (18)

1.一种离散式索引方法,其特征在于,包括:
根据投影计算逻辑,将问题域数据对象投影到图模型,建立图模型数据对象;
根据所述投影计算逻辑,实例化所述图模型;以及
根据实例化的所述图模型进行分解计算,输出并存储离散式索引数据。
2.如权利要求1所述的离散式索引方法,其特征在于,在所述建立图模型数据对象与根据所述投影计算逻辑实例化所述图模型的步骤之间还包括:根据所述图模型数据对象中顶点对象的属性关联关系,建立数据孤岛关联关系的计算逻辑;相应地,根据所述投影计算逻辑和数据孤岛关联关系的计算逻辑,实例化所述图模型。
3.如权利要求2所述的离散式索引方法,其特征在于,所述问题域数据对象指的是以数据模型形式描述的分析主题所涉及的数据对象,包括实体对象和关系对象;所述数据模型为数据孤岛物理数据模型或由多个数据孤岛本地物理数据模型聚合而成的虚拟数据模型;所述投影计算逻辑至少包括虚拟对象计算逻辑、投影方法逻辑、安全计算逻辑和同步计算逻辑中的至少一种。
4.如权利要求3所述的离散式索引方法,其特征在于,所述图模型数据对象的属性包括其对应的所述数据模型的数据对象的全部属性或部分属性。
5.如权利要求4所述的离散式索引方法,其特征在于,所述图模型数据对象的属性还包括图模型分析中需要建立的自定义属性。
6.如权利要求3所述的离散式索引方法,其特征在于,所述投影方法逻辑包括实例化投影方法逻辑和抽象化投影方法逻辑;所述虚拟对象计算逻辑包括虚拟实体对象计算逻辑和虚拟关系对象计算逻辑。
7.如权利要求6所述的离散式索引方法,其特征在于,所述根据投影计算逻辑,将问题域数据对象投影到图模型的步骤包括下列步骤中的至少一个:
根据所述虚拟实体对象计算逻辑,将所述数据模型实际定义和保存的实体对象属性集合进行加工计算得到虚拟实体数据对象;
根据所述虚拟关系对象计算逻辑,将所述数据模型实际定义和保存的两个实体对象属性集合进行加工计算得到虚拟关系数据对象;
根据所述实例化投影方法逻辑,将所述虚拟实体数据对象和虚拟关系数据对象在所述图模型上以1∶1建立相同属性集合或者部分相同属性集合的顶点与边对象集合;
根据所述抽象化投影方法逻辑,将所述虚拟实体数据对象和虚拟关系数据对象在所述图模型上以N∶1建立相同属性集合或者部分相同属性集合的顶点与边对象集合;
根据所述实例化投影方法逻辑,将问题域数据对象在图模型上以1∶1建立相同属性集合或者部分相同属性集合的顶点与边对象集合;
根据所述抽象化投影方法逻辑,将问题域数据对象在图模型上以N∶1建立相同属性集合或者部分相同属性集合的顶点与边对象集合;或者
根据所述安全计算逻辑,将所述虚拟实体数据对象、虚拟关系数据对象和问题域数据对象中的至少一种进行安全计算;
其中N为大于1的自然数。
8.如权利要求7所述的离散式索引方法,其特征在于,所述实例化所述图模型的步骤通过跨网域、前置系统转发或/和密文传输方式进行数据对象实例的传输。
9.如权利要求7所述的离散式索引方法,其特征在于,所述根据实例化的所述图模型进行分解计算,输出并存储离散式索引数据的步骤具体包括:
建立离散式索引与实例化的所述图模型之间的分解计算函数;
根据所述分解计算函数,计算并输出离散式索引数据;
将所述离散式索引数据按照预定义的遍历机制持久化存储到目标存储介质,并提供读写访问接口。
10.如权利要求9所述的离散式索引方法,其特征在于,所述分解计算函数的数学表达式为:
Figure FSA0000183234520000031
其中:
Figure FSA0000183234520000032
为离散式索引数据;
Figure FSA0000183234520000033
为分解计算函数;
Figure FSA0000183234520000034
为实例化的图模型,包括图的拓扑结构、构成拓扑的顶点与边实例集合、以及顶点与边实例集合各个元素的属性;
Figure FSA0000183234520000035
为数据孤岛在分解计算运行期间的更新数据。
11.如权利要求10所述的离散式索引方法,其特征在于,所述分解函数
Figure FSA0000183234520000036
的存在形式收敛于四个区间:静态拓扑与同步数据组合条件约束下、动态拓扑与异步数据组合条件约束下、动态拓扑与同步数据组合条件约束下、以及静态拓扑与异步数据组合条件约束下。
12.如权利要求11所述的离散式索引方法,其特征在于,所述离散式索引数据结构包括至少四个维度,分别为数据对象实例维度、数据孤岛维度、数据对象维度和计算逻辑片段维度;所述数据孤岛维度包括独立的数据孤岛或逻辑数据孤岛;所述逻辑数据孤岛具体指的是问题域内物理数据孤岛集合以一个“逻辑”对象抽象表达的形式。
13.如权利要求12所述的离散式索引方法,其特征在于,所述离散式索引数据结构还包括用户维度和/或角色维度,用于控制用户对数据对象实例的访问权限。
14.如权利要求12所述的离散式索引方法,其特征在于,所述目标存储介质为包括关系数据库、Key-Value数据库、图数据库在内的存储介质。
15.如权利要求12所述的离散式索引方法,其特征在于,所述实体对象与关系对象以静态形式存在、以动态形式存在或者以静态与动态混合形式存在;所述实体对象的数据类别包括结构化数据和以结构化形式描述的非结构化数据。
16.如权利要求12所述的离散式索引方法,其特征在于,所述实例化所述图模型的步骤通过ETL、数据清洗或数据同步方法来实现,并且根据用户定义规则自动启动运行或由用户手动启动运行。
17.如权利要求12所述的离散式索引方法,其特征在于,在所述将所述离散式索引数据按照预定义的遍历机制持久化存储到目标存储介质的步骤之后还包括:将持久化存储到目标存储介质上的离散式索引数据,按照所述维度中的一个再次遍历建立索引。
18.一种离散式索引系统,其特征在于,包括:
投影建立模块,用于根据投影计算逻辑,将问题域数据对象投影到图模型,建立图模型数据对象;
实例化模块,用于根据所述投影计算逻辑,实例化所述图模型;以及
计算存储模块,用于根据所述实例化模块实例化的所述图模型进行分解计算,输出并存储离散式索引数据。
CN201910410408.9A 2019-05-17 2019-05-17 离散式索引方法与系统 Pending CN111949830A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910410408.9A CN111949830A (zh) 2019-05-17 2019-05-17 离散式索引方法与系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910410408.9A CN111949830A (zh) 2019-05-17 2019-05-17 离散式索引方法与系统

Publications (1)

Publication Number Publication Date
CN111949830A true CN111949830A (zh) 2020-11-17

Family

ID=73336669

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910410408.9A Pending CN111949830A (zh) 2019-05-17 2019-05-17 离散式索引方法与系统

Country Status (1)

Country Link
CN (1) CN111949830A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022206089A1 (zh) * 2021-04-01 2022-10-06 即云天下(北京)数据科技有限公司 一种数据互联网方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120059840A1 (en) * 2010-09-03 2012-03-08 Tata Consultancy Services Limited Data integration using conceptual modeling framework
CN107402927A (zh) * 2016-05-19 2017-11-28 上海斯睿德信息技术有限公司 一种基于图模型的企业关联关系拓扑建立方法及查询方法
CN109710618A (zh) * 2018-12-29 2019-05-03 北京航天云路有限公司 知识图谱数据关系分离的混合存储方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120059840A1 (en) * 2010-09-03 2012-03-08 Tata Consultancy Services Limited Data integration using conceptual modeling framework
CN107402927A (zh) * 2016-05-19 2017-11-28 上海斯睿德信息技术有限公司 一种基于图模型的企业关联关系拓扑建立方法及查询方法
CN109710618A (zh) * 2018-12-29 2019-05-03 北京航天云路有限公司 知识图谱数据关系分离的混合存储方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022206089A1 (zh) * 2021-04-01 2022-10-06 即云天下(北京)数据科技有限公司 一种数据互联网方法及系统

Similar Documents

Publication Publication Date Title
Khare et al. Big data in IoT
US10929345B2 (en) System and method of performing similarity search queries in a network
CN103488673B (zh) 用于执行调和处理的方法、控制器及数据存储系统
CN110688495A (zh) 一种事件信息的知识图谱模型构建方法、装置、存储介质
Petrenko et al. Problem of developing an early-warning cybersecurity system for critically important governmental information assets
CN111026874A (zh) 知识图谱的数据处理方法及服务器
CN104809244B (zh) 一种大数据环境下的数据挖掘方法和装置
CN109063138A (zh) 用于在区块链即服务平台搜索数据的方法、设备及存储介质
CN104239513A (zh) 一种面向领域数据的语义检索方法
US9069880B2 (en) Prediction and isolation of patterns across datasets
CN103838847A (zh) 一种面向海云协同网络计算环境的数据组织方法
Zheng et al. Study on the method of road transport management information data mining based on pruning Eclat algorithm and MapReduce
CN110888930A (zh) 基于知识图谱的金融知识查询服务接口设计与实现方法
Ahamed et al. Data integration progression in large data source using mapping affinity
CN116415203A (zh) 一种基于大数据的政务信息智能融合系统及方法
CN115686868A (zh) 一种基于联邦哈希学习的面向跨节点多模态检索方法
CN106326317A (zh) 数据处理方法及装置
Bhuyan et al. Crime predictive model using big data analytics
CN111949830A (zh) 离散式索引方法与系统
Vasilyeva et al. Leveraging flexible data management with graph databases
Munir et al. Towards the modelling of Veillance based citizen profiling using knowledge graphs
da Silva et al. Efficient and distributed dbscan algorithm using mapreduce to detect density areas on traffic data
CN115510116A (zh) 数据目录构建方法、装置、介质及设备
CN115495478A (zh) 数据查询方法、装置、电子设备以及存储介质
Xu et al. The semantic analysis of knowledge map for the traffic violations from the surveillance video big data.

Legal Events

Date Code Title Description
DD01 Delivery of document by public notice
DD01 Delivery of document by public notice

Addressee: Zhao Naiyan

Document name: Notification of Passing Examination on Formalities

PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination