CN108376174A - 支持结构化与非结构化大数据融合的方法和装置 - Google Patents
支持结构化与非结构化大数据融合的方法和装置 Download PDFInfo
- Publication number
- CN108376174A CN108376174A CN201810164770.8A CN201810164770A CN108376174A CN 108376174 A CN108376174 A CN 108376174A CN 201810164770 A CN201810164770 A CN 201810164770A CN 108376174 A CN108376174 A CN 108376174A
- Authority
- CN
- China
- Prior art keywords
- blob
- data
- big data
- attribute values
- types
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种支持结构化与非结构化大数据融合的方法,基于属性图数据模型,创建支持BLOB属性值的多元大数据融合模型;支持BLOB属性值的多元大数据融合模型对接收到的数据生成N元组数据;判断生成的N元组数据为BLOB类型,将BLOB类型的属性值存储到第一预设位置;第一预设位置通过控制句柄与对应BLOB类型的属性值的数据内容之间的映射以实现结构化与非结构化大数据的融合操作。该方法提供一种支持结构化非结构化多元数据融合管理模型STRUNS及针对STRUNS的实现系统。可以用于多元异构数据,即包括文本型、布尔型、数值型、时间型、BLOB型的整合管理与统一查询,为大数据融合管理提供了理论模型和实用系统。本公开还涉及一种支持结构化与非结构化大数据融合的装置。
Description
技术领域
本公开涉及大数据技术领域,特别是涉及一种支持结构化与非结构化大数据融合的方法和装置。
背景技术
随着海量规模、多元异构数据的产生,传统的数据库技术(通常指关系数据库系统)无法很好实现对海量、非结构化或半结构化数据集的管理。NoSQL、Hadoop等大数据技术的提出,能够高效地解决分布式环境下全网域( Web Scale) 的非结构化信息的管理和处理问题,深化了大数据的应用。
图模型(graph)及图数据库技术是NoSQL技术的一个重要分支,它应用图形理论来存储实体之间的关系信息。图数据库特别适用于社交网络、实时推荐、金融征信系统等领域。领英(LinkedIn)、沃尔玛、CISCO、HP、eBay等全球知名企业都在使用图数据库来管理信息。中国企业也在逐步开始用图数据库来构建自己的应用,尤其在征信领域,工商总局、天眼查、启信宝、企查查等APP都用了关系网络数据库。华为、联想也在密切关注关系网络数据库,考虑将它纳入PaaS平台。另一方面,针对大规模图的分析逐渐成为企业提高业务智能的一个有力的手段。如在很多企业中,社交图谱分析已经运用于反欺诈、影响力分析、舆情监测、市场细分、参与优化等需要快速确定复杂行为模式的应用。
图模型支持多种类型的属性,根据属性图的定义,属性支持文本型、布尔型、数值型、时间型等多种类型。然而,该模型缺少对二进制大对象(BLOB:binary large object)的支持。而在信息系统中,BLOB作为非结构化数据的存储形式,往往占据了相当大的比例。据统计,世界上85%的数据都是非结构化数据,这些数据每年都按指数增长60%(http://www.cio.com.cn/eyan/2295.html)。因此发明一种支持BLOB类型的大数据融合模型和方法,实现对结构化非结构化数据的统一管理和查询,显得尤其重要。
发明内容
基于此,有必要针对传统技术存在的问题,提供一种支持结构化与非结构化大数据融合的方法和装置。具体的,本公开提供一种支持结构化非结构化多元数据融合管理模型STRUNS,以及针对STRUNS的实现系统。可以用于多元异构数据,即包括文本型、布尔型、数值型、时间型、BLOB型的整合管理与统一查询,为大数据融合管理提供了理论模型和实用系统。
第一方面,本公开实施例提供了一种支持结构化与非结构化大数据融合的方法,所述方法包括:基于属性图数据模型,创建支持BLOB属性值的多元大数据融合模型;支持所述BLOB属性值的所述多元大数据融合模型对接收到的数据生成N元组数据;判断生成的所述N元组数据为BLOB类型,将所述BLOB类型的属性值存储到第一预设位置;所述第一预设位置通过控制句柄与对应所述BLOB类型的所述属性值的数据内容之间的映射以实现结构化与非结构化大数据的融合操作。
在其中一个实施例中,创建支持所述BLOB属性值的所述多元大数据融合模型为STRUNS数据模型,其中,所述STRUNS数据模型包括至少一种类型数据。
在其中一个实施例中,支持所述BLOB属性值的所述多元大数据融合模型对接收到的数据生成N元组数据之后,还包括:对所述N元组数据在第二预设位置进行存储。
在其中一个实施例中,对所述N元组数据在第二预设位置进行存储,包括:判断生成的所述N元组数据为所述BLOB类型,支持所述BLOB属性值的所述多元大数据模型根据该数据对应的内容生成一个四元组数据;将所述四元组数据定义为新属性值,将所述四元组数据存储至前端存储系统中,其中,所述四元组中的参数为句柄,长度,摘要,标志。
在其中一个实施例中,将所述BLOB类型的属性值存储到第一预设位置,包括:根据该句柄将所述BLOB类型的所述属性值存储至后端存储系统中。
在其中一个实施例中,还包括:根据所述BLOB属性值,定义所述BLOB属性值支持的操作,其中,操作包括:打开输入流、获取摘要、获取长度、获取标记、判断数据类型是否为BLOB类型。
在其中一个实施例中,还包括:定义所述STRUNS模型中所述BLOB属性值的文本表达方式,其中,基于所述BLOB属性定义与预设文本型、布尔型、数值型、时间型属性相兼容的文本表达方式。
在其中一个实施例中,还包括:基于CYPHER查询语法,通过调用所述BLOB属性值的操作函数,以实现对所述BLOB属性值的匹配。
第二方面,本公开实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面的支持结构化与非结构化大数据融合的方法。
第三方面,本公开实施例提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面所述的方法。
第四方面,本公开实施例还提供了一种支持结构化与非结构化大数据融合的装置,所述装置包括:创建模块,用于基于属性图数据模型,创建支持BLOB属性值的多元大数据融合模型;生成模块,用于支持所述BLOB属性值的所述多元大数据融合模型对接收到的数据生成N元组数据;存储模块,用于判断生成的所述N元组数据为BLOB类型,将所述BLOB类型的属性值存储到第一预设位置;融合模块,用于所述第一预设位置通过控制句柄与对应所述BLOB类型的所述属性值的数据内容之间的映射以实现结构化与非结构化大数据的融合操作。
本公开提供的一种支持结构化与非结构化大数据融合的方法和装置。基于属性图数据模型,创建支持BLOB属性值的多元大数据融合模型;支持BLOB属性值的多元大数据融合模型对接收到的数据生成N元组数据;判断生成的N元组数据为BLOB类型,将BLOB类型的属性值存储到第一预设位置;第一预设位置通过控制句柄与对应BLOB类型的属性值的数据内容之间的映射以实现结构化与非结构化大数据的融合操作。该方法提供一种支持结构化非结构化多元数据融合管理模型STRUNS,以及针对STRUNS的实现系统。可以用于多元异构数据,即包括文本型、布尔型、数值型、时间型、BLOB型的整合管理与统一查询,为大数据融合管理提供了理论模型和实用系统。
附图说明
图1为本公开一个实施例中的一种支持结构化与非结构化大数据融合的方法的步骤流程图;
图2为本公开另一个实施例中的一种支持结构化与非结构化大数据融合的方法的步骤流程图;
图3为本公开一个实施例中的一种支持结构化与非结构化大数据融合的装置的结构示意图。
具体实施方式
为了使本公开的目的、技术方案及优点更加清楚明白,以下通过实施例,并结合附图,本公开涉及一种大数据、数据库技术领域,特别涉及一种支持结构化与非结构化大数据融合的方法和装置。对本公开一种支持结构化与非结构化大数据融合的方法和装置的具体实施方式进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本公开,并不用于限定本公开。
如图1所示,为一个实施例中的一种支持结构化与非结构化大数据融合的方法的步骤流程示意图。具体包括以下步骤:
步骤102,基于属性图数据模型,创建支持BLOB属性值的多元大数据融合模型。 其中,创建支持BLOB属性值的多元大数据融合模型为STRUNS数据模型,其中,STRUNS数据模型包括至少一种类型数据。
步骤104,支持BLOB属性值的多元大数据融合模型对接收到的数据生成N元组数据。
本实施例中,支持BLOB属性值的多元大数据融合模型对接收到的数据生成N元组数据之后,还包括:对N元组数据在第二预设位置进行存储。其中,第二预设位置为前端存储系统。
进一步地,对N元组数据在第二预设位置进行存储,包括:判断生成的N元组数据为BLOB类型,支持BLOB属性值的多元大数据模型根据该数据对应的内容生成一个四元组数据;将四元组数据定义为新属性值,将四元组数据存储至前端存储系统中,其中,四元组中的参数为句柄,长度,摘要,标志。
步骤106,判断生成的N元组数据为BLOB类型,将BLOB类型的属性值存储到第一预设位置。其中,第一预设位置为后端存储系统。
本实施例中,将BLOB类型的属性值存储到第一预设位置,包括:根据该句柄将BLOB类型的属性值存储至后端存储系统中。
步骤108,第一预设位置通过控制句柄与对应BLOB类型的属性值的数据内容之间的映射以实现结构化与非结构化大数据的融合操作。
在一个实施例中,本公开涉及的支持结构化与非结构化大数据融合的方法还包括:根据BLOB属性值,定义BLOB属性值支持的操作,其中,操作包括:打开输入流、获取摘要、获取长度、获取标记、判断数据类型是否为BLOB类型。
在一个实施例中,本公开设计的支持结构化与非结构化大数据融合的方法还包括:定义STRUNS模型中BLOB属性值的文本表达方式,其中,基于BLOB属性定义与预设文本型、布尔型、数值型、时间型属性相兼容的文本表达方式。
在一个实施例中,本公开设计的支持结构化与非结构化大数据融合的方法还包括:基于CYPHER查询语法,通过调用BLOB属性值的操作函数,以实现对BLOB属性值的匹配。
本公开提供的一种支持结构化与非结构化大数据融合的方法,基于属性图数据模型,创建支持BLOB属性值的多元大数据融合模型;支持BLOB属性值的多元大数据融合模型对接收到的数据生成N元组数据;判断生成的N元组数据为BLOB类型,将BLOB类型的属性值存储到第一预设位置;第一预设位置通过控制句柄与对应BLOB类型的属性值的数据内容之间的映射以实现结构化与非结构化大数据的融合操作。该方法提供一种支持结构化非结构化多元数据融合管理模型STRUNS,以及针对STRUNS的实现系统。可以用于多元异构数据,即包括文本型、布尔型、数值型、时间型、BLOB型的整合管理与统一查询,为大数据融合管理提供了理论模型和实用系统。
为了更清楚的理解与应用本公开提出的支持结构化与非结构化大数据融合的方法,进行以下示例。需要说明的是,本公开的保护范围不局限以下示例。
如图2所示,为另一个实施例中的一种支持结构化与非结构化大数据融合的方法的步骤流程示意图。具体包括以下步骤:
步骤201,基于属性图数据模型,创建支持BLOB的多元大数据融合模型,即STRUNS数据模型。
本实施例中,基于属性图(Property Graph)数据模型,针对其不支持BLOB属性值的缺陷,设计支持结构化非结构化的多元大数据融合管理模型STRUNS。STRUNS模型可以包含多种类型的数据,包括常见的文本型、布尔型、数值型、时间型以及BLOB类型。
需要说明的是,多元大数据融合管理模型STRUNS,STRUNS主要基于属性图模型进行扩展,因此具有属性图模型的所有特征。该模型的定义包括3个部分:第一部分为STRUNS模型:与公开的属性图模型相同的是,STRUNS模型采用顶点和边来表达每个实体以及它们之间的关系,顶点和边的属性值可以是一个文本型、布尔型、数值型、时间型。不同的是,STRUNS的属性值可以是BLOB类型;第二部分为BLOB属性值的属性定义:BLOB类型的属性值具有二次属性,包括内容(content)、长度(length)、摘要(digest),以及一个32位的标志(mark)。如表1所示。
表1为BLOB属性值的属性表
属性名 | 含义 | 值类型 | 示例 |
content | BLOB字节数组内容的base64编码,采用Base64.encodeBase64(参见apache开源项目commons-codec)计算得到 | string | R0lGODlhRgAgALP/AP///xAQEBgYGCEhITExMUpKSlpaWmtra3t7e4yMjJycnLW1tcbGxt7e3vf39wAAACwAAAAARgAgAEAE/xDISau9OOu923CToQBNwFXOd64aAQJj4wQGILIAIjXcPAKOwoPG4CwQiBfjASLwLIVFJZGQKHQVxfPSeBQXBODhIdjiKo3C61Q+TxwHd6jg8UoQtUzDkBg8pCspDmskAj8ZBjJxEgk1B0UUDYcWDgKAbzUOBFUTUg0IjUB0JwlMO4tABg8PBwuERgcBQwR8lxMBnBm2ckADvL/AEx5no79hvAcFJA8FAwWqZhgIQgKBPwoDzgcEphkMWAClD6WeA5BGuxqV4Aqr6RdHEpeqq4SD6tl5EwwJrwU6KR64wOFL34Iaey74upAgzZt85xi8IkGgCIMAExmOm/BghINuEv8cKBAC8gCqFOAmXLkwg0e7IZw+5gpGsyavBdFs6syAYNKGhTt/GXiXIcovUDgQmPkmYegZARlXMCCqS5ipA1UYXIlK4cg9OQ0WLNBypouMArh48DnB7UBODAk8yQg5wOeFiA8M+MmzQIWGBAem4UjgZEcBBQHsXkAAaMGSAwrCBKFqgeyKPi80rUKl7pjlBasKcD6hlICyDQugkvBTjNQIVzs6mkRBGcHGSI1Ox25Qxw5XCx8UnDMHACMK3ccnOej7ZMk5ClEGOeWQhqkEAlJ6XihcASeARxZGhx/Ag8BroxkUGNBtIM8DDNsiqSaBPGR9CrMBDFiQIMB+01GV8oQpWRL8sxwC3IggEXS2OLAeTrwtMIZdhO2ABCGIZbScBnP98huBQYWoUwQAOw== |
length | BLOB字节数组的长度 | integer | 628 |
digest | BLOB内容的摘要,采用DigestUtils.md5Hex(参见apache开源项目commons-codec)计算得到 | string | 5ecb3255a12ef30a9d3c3a5554e8021d |
mark | BLOB字节数组的前32个字节的内容的base64编码 | string | R0lGODlhRgAgALP/AP///xAQEBgYGCEhITExMUpKSlo= |
进一步地,第三部分为BLOB属性值的操作定义:BLOB属性值可支持一些操作,包括打开数据流(openStream)、获取长度(getLength)、获取摘要(getDigest)、获取标志(getMark)。如表2所示。
表2为BLOB属性值的操作表
操作 | 含义 |
openStream | 获取二进制数组输入流 |
getLength | 获取BLOB字节数组的长度 |
getDigest | 获取BLOB内容的摘要 |
getMark | 获取BLOB字节数组的前32个字节 |
getMark(n) | 获取BLOB字节数组的前n个字节(n<32) |
getMark(m,n) | 从BLOB字节数组的第m个字节开始,获取n个字节 |
步骤202,STRUNS数据模型对收到的数据生成N元组数据,并存储到前端存储系统中,若该数据为BLOB类型,则将该BLOB类型的属性值存储到后端存储系统中。需要说明的是,BLOB属性值中的数据内容也存储到后端存储系统中。
步骤203,后端存储系统维护句柄与对应BLOB类型的属性值的数据内容之间的映射。需要说明的是,BlobStorage会记录目录与句柄之间的映射关系。
需要说明的是,进一步细化了STRUNS模型中BLOB属性值(BlobLiteral)应该包含的自有属性和操作。针对BLOB属性值,定义其支持的操作,包括打开输入流、获取摘要、获取长度、获取标记、判断是否为BLOB类型。
此外,定义了STRUNS模型中BLOB属性值的文本表达方法,针对BLOB的属性定义了与常见的文本型、布尔型、数值型、时间型等属性相兼容的文本表达方式。具体的,STRUNS属性值的文本表达方法,即STRUNS模型中的非BLOB属性值采用标准的XML literal来表达,它通常包括2个部分:词汇、数据类型的IRI,前者代表属性值的文本,后者来表示值的类型,如:"hello"^^xsd:string,"1"^^xsd:integer。
针对BLOB属性值,STRUNS采用如下表达方式:
<blob-literal > ::= "<blob-value>"^^<urn:x-hp-dt:blob >
<blob-value> ::= content:<content-value>,length:<length-value>,digest:<digest-value>,mark:<mark-value>
其中:content-value、length-value、digest-value、mark-value分别对应于BLOB属性值的内容(content)、长度(length)、摘要(digest),以及一个32位的标志(mark)。
如下代码示例出两个STRUNS属性值,第一行为标准的文本属性,第二行包含了一个BLOB属性值。
"This is a string"
"content:R0lGODlhRgAgALP/AP///xAQEBgYGCEhITExMUpKSlpaWmtra3t7e4yMjJycnLW1tcbGxt7e3vf39wAAACwAAAAARgAgAEAE/xDISau9OOu923CToQBNwFXOd64aAQJj4wQGILIAIjXcPAKOwoPG4CwQiBfjASLwLIVFJZGQKHQVxfPSeBQXBODhIdjiKo3C61Q+TxwHd6jg8UoQtUzDkBg8pCspDmskAj8ZBjJxEgk1B0UUDYcWDgKAbzUOBFUTUg0IjUB0JwlMO4tABg8PBwuERgcBQwR8lxMBnBm2ckADvL/AEx5no79hvAcFJA8FAwWqZhgIQgKBPwoDzgcEphkMWAClD6WeA5BGuxqV4Aqr6RdHEpeqq4SD6tl5EwwJrwU6KR64wOFL34Iaey74upAgzZt85xi8IkGgCIMAExmOm/BghINuEv8cKBAC8gCqFOAmXLkwg0e7IZw+5gpGsyavBdFs6syAYNKGhTt/GXiXIcovUDgQmPkmYegZARlXMCCqS5ipA1UYXIlK4cg9OQ0WLNBypouMArh48DnB7UBODAk8yQg5wOeFiA8M+MmzQIWGBAem4UjgZEcBBQHsXkAAaMGSAwrCBKFqgeyKPi80rUKl7pjlBasKcD6hlICyDQugkvBTjNQIVzs6mkRBGcHGSI1Ox25Qxw5XCx8UnDMHACMK3ccnOej7ZMk5ClEGOeWQhqkEAlJ6XihcASeARxZGhx/Ag8BroxkUGNBtIM8DDNsiqSaBPGR9CrMBDFiQIMB+01GV8oQpWRL8sxwC3IggEXS2OLAeTrwtMIZdhO2ABCGIZbScBnP98huBQYWoUwQAOw==,length:628,digest:5ecb3255a12ef30a9d3c3a5554e8021d,mark:R0lGODlhRgAgALP/AP///xAQEBgYGCEhITExMUpKSlo="^^<urn:x-hp-dt:blob-bytes> .
第二行表示,该属性值是一个BLOB数据,其内容为一个二进制字节数组,即base64解码可以得知其为一个GIF照片文件,数组长度为628个字节,摘要为5ecb3255a12ef30a9d3c3a5554e8021d。
可以理解出,文本输出并不适合BLOB二进制内容的表达,通常建议采用应用程序通过BLOB属性值的打开输入流(openStream)操作,获取到字节流,然后再按照数据流的规范进行后续操作。
此外,提供存储BLOB属性值的方法,即如何允许用户挂接自定义BLOB存储库,同时提供了基于本地文件系统实现BLOB数据的存储。具体的,BLOB属性值的存储方法,即由于BLOB属性值往往占据较大的存储空间,将BLOB属性值和其它属性值保存在同一个空间,会带来严重的内存消耗和读取性能的问题。本发明提出一种与属性图模型实际存储系统融合且又相对独立的存储库方案:首先,在属性图模型实际存储系统中,BLOB属性值存储为一个HLDF四元组而非BLOB数据内容本身,该四元组为<句柄,长度,摘要,32位标志>,其中BLOB句柄为每个BLOB数据分配的一个唯一的标识;其次,BLOB属性值存储在一个命名为BlobStorage的后端存储系统上,BlobStorage维护BLOB句柄与BLOB数据内容之间的映射,即可以根据句柄获得BLOB数据内容;再次,用户可以根据BlobStorage的接口要求,基于关系型数据库、文件系统等来实现后端存储系统。特别的,本发明基于本地文件系统,提供了一个可用的BlobStorage。
特别的,BlobStorage系统提出了的接口方法具体为:fromHandle:根据句柄,获取到对应的BLOB数据;insert:保存指定的BLOB内容,并返回新的句柄;delete:删除指定句柄的BLOB;update:保存指定的BLOB内容至指定的BLOB属性;
本公开同时提供了一套基于本地文件系统实现的BlobStorage,对应的类名为LocalFileSystemBlobStorage。LocalFileSystemBlobStorage的insert()方法的实现步骤具体为:根据当前系统时间创建一个唯一编号ID,作为BLOB句柄;在约定目录下创建一个新文件,文件名为<ID>.bin,写入传入的BLOB内容;同时生成一个<ID>.md5文件,写入BLOB内容的摘要;返回ID。
此外,LocalFileSystemBlobStorage的delete()的实现步骤具体为:获取到传入的句柄ID;删除约定目录下的文件<ID>.bin;删除约定目录下的文件<ID>.md5。
此外,LocalFileSystemBlobStorage的fromHandle ()的实现步骤具体为:获取到传入的句柄ID;找到约定目录下的文件<ID>.bin,以及<ID>.md5,根据<ID>.bin文件的内容、<ID>.bin文件的大小、<ID>.md5文件的内容构建HLDF四元组以及BLOB数据内容;返回BLOB数据内容。
更进一步地,提供针对STRUNS数据模型的查询方法。基于CYPHER查询语法,通过提供BLOB属性值的操作函数,从而支持对BLOB属性值的匹配。由于CYPHER关联查询的能力,针对BLOB进行查询的同时,可以同时将其他属性值以及关联关系作为条件进行筛选。具体的,STRUNS函数与CYPHER查询,即为了实现对BLOB属性值的操作,本发明定义了BLOB属性值的6个操作,并实现了对应的函数类,它们分别是:
(1)GetDigest:获取指定BLOB数据的摘要,接受一个参数;
(2)GetLength:获取指定BLOB数据的长度,接受一个参数;
(3)GetMark:获取指定BLOB数据的摘要,接受一个、两个、三个参数;
(4)IsBlob:判断属性是否为BLOB数据,接受一个参数;
(5)ToBytes:将BLOB数据的内容转换成字节数组,接受一个参数;
(6)ToString:将BLOB数据的内容转换成文本串,接受一个参数;
以GetDigest为例,它的类定义如下:
public class GetDigest extends FunctionBase1
{
@Override
public NodeValue exec(NodeValue arg0)
{
Node n = arg0.asNode();
Object literalValue = n.getLiteralValue();
if (literalValue instanceof Blob)
{
return NodeValue.makeString(((Blob) literalValue).getDigest());
}
else
{
return NodeValue.nvEmptyString;
}
}
}
需要说明的是,一旦在CYPHER查询引擎中注册了以上操作函数,用户程序就可以在CYPHER查询语句中调用这些操作函数,从而达到关联查询的效果,示例:
match (o:person)
where (blob:isBlob(o.photo) && blob:mark(o.photo, 4)=’GIF89a’)
return o.name;
该CYPHER语句查询包含有照片,且照片的标志为GIF89a(格式为GIF图片)的人员的姓名。其中出现的blob:isBlob()和blob:mark()对应于IsBlob()和GetMark()函数。
本公开提供的一种支持结构化与非结构化大数据融合的方法。基于属性图数据模型,创建支持BLOB的多元大数据融合模型,即STRUNS数据模型;创建一后端存储系统;该STRUNS数据模型采用属性图的N元组形式来表达每个资源的属性及其属性值,其中,所述属性值包括BLOB类型的属性值,BLOB类型的属性值包括数据内容、长度、摘要和标志信息;STRUNS数据模型对收到的数据生成N元组并存储到一前端存储系统;其中,如果该数据为BLOB类型,则STRUNS数据模型根据该数据对应的内容生成一个四元组<句柄,长度,摘要,标志>作为新的属性值,保存到该前端存储系统,根据该句柄将该BLOB类型的属性值存储到所述后端存储系统;所述后端存储系统维护句柄与BLOB类型的属性值的数据内容之间的映射。该方法提供一种支持结构化非结构化多元数据融合管理模型STRUNS,以及针对STRUNS的实现系统。可以用于多元异构数据,即包括文本型、布尔型、数值型、时间型、BLOB型的整合管理与统一查询,为大数据融合管理提供了理论模型和实用系统。
基于同一公开构思,还提供了一种支持结构化与非结构化大数据融合的装置。由于此装置解决问题的原理与前述一种支持结构化与非结构化大数据融合的方法相似,因此,该装置的实施可以按照前述方法的具体步骤时限,重复之处不再赘述。
如图3所示,为一个实施例中的一种支持结构化与非结构化大数据融合的装置的结构示意图。该支持结构化与非结构化大数据融合的装置10包括:创建模块200、生成模块400、存储模块600和融合模块800。
其中,创建模块200用于基于属性图数据模型,创建支持BLOB属性值的多元大数据融合模型;生成模块400用于支持BLOB属性值的多元大数据融合模型对接收到的数据生成N元组数据;存储模块600用于判断生成的N元组数据为BLOB类型,将BLOB类型的属性值存储到第一预设位置;融合模块800用于第一预设位置通过控制句柄与对应BLOB类型的属性值的数据内容之间的映射以实现结构化与非结构化大数据的融合操作。
本公开提供的一种支持结构化与非结构化大数据融合的装置。采用传统属性图数据模型来组织数据,由于它对BLOB文件的支持不足,通常无法实现对非结构化文件的管理。折中的办法往往普通类型的属性采用属性图数据模型来管理,BLOB数据仅存储相关的路径或编号,应用程序再根据这些信息显式的去访问文件数据,这种方式增强了应用程序和图数据库之间的耦合性。本公开提出的STRUNS模型定义了BLOB的类型,并完全兼容传统的属性图模型。STRUNS模型可实现文件类型、普通类型数据的统一管理,同时提供了针对BLOB数据的查询函数,可用于标准化的CYPHER查询。传统的多元异构数据管理系统,一类是采用扁平的记录型的结构统一组织数据,完全忽略了数据之间的关联性,不利于数据的关联检索,或者关联检索的代价很高。另一类是基于传统属性图数据模型,无法很好的兼顾到非结构化数据的管理。与这两类系统相比,本公开提出的系统可以实现多元数据,包括非结构化文件的整合,并有效的支持数据的关联检索,即包括针对文件的检索。
本公开实施例还提供了一种计算机可读存储介质。该计算机可读存储介质上存储有计算机程序,该程序被图1或图2中处理器执行。
本公开实施例还提供了一种包含指令的计算机程序产品。当该计算机程序产品在计算机上运行时,使得计算机执行上述图1或2的方法。
以上,根据本公开实施例的支持结构化与非结构化大数据融合的方法和装置,以及计算机可读存储介质。提供一种支持结构化非结构化多元数据融合管理模型STRUNS,以及针对STRUNS的实现系统。可以用于多元异构数据,即包括文本型、布尔型、数值型、时间型、BLOB型的整合管理与统一查询,为大数据融合管理提供了理论模型和实用系统。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
另外,如在此使用的,在以“至少一个”开始的项的列举中使用的“或”指示分离的列举,以便例如“A、B或C的至少一个”的列举意味着A或B或C,或AB或AC或BC,或ABC(即A和B和C)。此外,措辞“示例的”不意味着描述的例子是优选的或者比其他例子更好。
还需要指出的是,在本公开的系统和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
可以不脱离由所附权利要求定义的教导的技术而进行对在此所述的技术的各种改变、替换和更改。此外,本公开的权利要求的范围不限于以上所述的处理、机器、制造、事件的组成、手段、方法和动作的具体方面。可以利用与在此所述的相应方面进行基本相同的功能或者实现基本相同的结果的当前存在的或者稍后要开发的处理、机器、制造、事件的组成、手段、方法或动作。因而,所附权利要求包括在其范围内的这样的处理、机器、制造、事件的组成、手段、方法或动作。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (10)
1.一种支持结构化与非结构化大数据融合的方法,其特征在于,所述方法包括:
基于属性图数据模型,创建支持BLOB属性值的多元大数据融合模型;
支持所述BLOB属性值的所述多元大数据融合模型对接收到的数据生成N元组数据;
判断生成的所述N元组数据为BLOB类型,将所述BLOB类型的属性值存储到第一预设位置;
所述第一预设位置通过控制句柄与对应所述BLOB类型的所述属性值的数据内容之间的映射以实现结构化与非结构化大数据的融合操作。
2.根据权利要求1所述的方法,其特征在于,创建支持所述BLOB属性值的所述多元大数据融合模型为STRUNS数据模型,其中,所述STRUNS数据模型包括至少一种类型数据。
3.根据权利要求1所述的方法,其特征在于,支持所述BLOB属性值的所述多元大数据融合模型对接收到的数据生成N元组数据之后,还包括:对所述N元组数据在第二预设位置进行存储。
4.根据权利要求1所述的方法,其特征在于,对所述N元组数据在第二预设位置进行存储,包括:
判断生成的所述N元组数据为所述BLOB类型,支持所述BLOB属性值的所述多元大数据模型根据该数据对应的内容生成一个四元组数据;
将所述四元组数据定义为新属性值,将所述四元组数据存储至前端存储系统中,其中,所述四元组中的参数为句柄,长度,摘要,标志。
5.根据权利要求1所述的方法,其特征在于,将所述BLOB类型的属性值存储到第一预设位置,包括:根据该句柄将所述BLOB类型的所述属性值存储至后端存储系统中。
6.根据权利要求1所述的方法,其特征在于,还包括:根据所述BLOB属性值,定义所述BLOB属性值支持的操作,其中,操作包括:打开输入流、获取摘要、获取长度、获取标记、判断数据类型是否为BLOB类型。
7.根据权利要求2所述的方法,其特征在于,还包括:定义所述STRUNS模型中所述BLOB属性值的文本表达方式,其中,基于所述BLOB属性定义与预设文本型、布尔型、数值型、时间型属性相兼容的文本表达方式。
8.根据权利要求1所述的方法,其特征在于,还包括:基于CYPHER查询语法,通过调用所述BLOB属性值的操作函数,以实现对所述BLOB属性值的匹配。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-8任一项所述的方法。
10.一种支持结构化与非结构化大数据融合的装置,其特征在于,所述装置包括:
创建模块,用于基于属性图数据模型,创建支持BLOB属性值的多元大数据融合模型;
生成模块,用于支持所述BLOB属性值的所述多元大数据融合模型对接收到的数据生成N元组数据;
存储模块,用于判断生成的所述N元组数据为BLOB类型,将所述BLOB类型的属性值存储到第一预设位置;
融合模块,用于所述第一预设位置通过控制句柄与对应所述BLOB类型的所述属性值的数据内容之间的映射以实现结构化与非结构化大数据的融合操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810164770.8A CN108376174A (zh) | 2018-02-27 | 2018-02-27 | 支持结构化与非结构化大数据融合的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810164770.8A CN108376174A (zh) | 2018-02-27 | 2018-02-27 | 支持结构化与非结构化大数据融合的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108376174A true CN108376174A (zh) | 2018-08-07 |
Family
ID=63016790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810164770.8A Pending CN108376174A (zh) | 2018-02-27 | 2018-02-27 | 支持结构化与非结构化大数据融合的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108376174A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109582831A (zh) * | 2018-10-16 | 2019-04-05 | 中国科学院计算机网络信息中心 | 一种支持非结构化数据存储与查询的图数据库管理系统 |
CN109597919A (zh) * | 2018-10-18 | 2019-04-09 | 中国科学院计算机网络信息中心 | 一种融合图数据库和人工智能算法的数据管理方法及系统 |
CN109977269A (zh) * | 2019-03-12 | 2019-07-05 | 北京理工大学 | 一种针对xml文件的数据自适应融合方法 |
CN112765194A (zh) * | 2020-12-31 | 2021-05-07 | 科大讯飞股份有限公司 | 一种数据检索方法及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107122486A (zh) * | 2017-05-09 | 2017-09-01 | 中国科学院计算机网络信息中心 | 一种支持blob的多元大数据融合方法和系统 |
CN107491476A (zh) * | 2017-06-29 | 2017-12-19 | 中国科学院计算机网络信息中心 | 一种适用于多种大数据管理系统的数据模型转换及查询分析方法 |
-
2018
- 2018-02-27 CN CN201810164770.8A patent/CN108376174A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107122486A (zh) * | 2017-05-09 | 2017-09-01 | 中国科学院计算机网络信息中心 | 一种支持blob的多元大数据融合方法和系统 |
CN107491476A (zh) * | 2017-06-29 | 2017-12-19 | 中国科学院计算机网络信息中心 | 一种适用于多种大数据管理系统的数据模型转换及查询分析方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109582831A (zh) * | 2018-10-16 | 2019-04-05 | 中国科学院计算机网络信息中心 | 一种支持非结构化数据存储与查询的图数据库管理系统 |
CN109582831B (zh) * | 2018-10-16 | 2022-02-01 | 中国科学院计算机网络信息中心 | 一种支持非结构化数据存储与查询的图数据库管理系统 |
CN109597919A (zh) * | 2018-10-18 | 2019-04-09 | 中国科学院计算机网络信息中心 | 一种融合图数据库和人工智能算法的数据管理方法及系统 |
CN109597919B (zh) * | 2018-10-18 | 2021-11-09 | 中国科学院计算机网络信息中心 | 一种融合图数据库和人工智能算法的数据管理方法及系统 |
CN109977269A (zh) * | 2019-03-12 | 2019-07-05 | 北京理工大学 | 一种针对xml文件的数据自适应融合方法 |
CN109977269B (zh) * | 2019-03-12 | 2021-01-12 | 北京理工大学 | 一种针对xml文件的数据自适应融合方法 |
CN112765194A (zh) * | 2020-12-31 | 2021-05-07 | 科大讯飞股份有限公司 | 一种数据检索方法及电子设备 |
CN112765194B (zh) * | 2020-12-31 | 2024-04-30 | 科大讯飞股份有限公司 | 一种数据检索方法及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11966395B2 (en) | Query generation based on merger of subqueries | |
CN110291517B (zh) | 图数据库中的查询语言互操作性 | |
US20190311025A1 (en) | Methods and systems for modeling complex taxonomies with natural language understanding | |
Etcheverry et al. | QB4OLAP: a new vocabulary for OLAP cubes on the semantic web | |
US9418176B2 (en) | Graph-based system and method of information storage and retrieval | |
CN108376174A (zh) | 支持结构化与非结构化大数据融合的方法和装置 | |
US20160162470A1 (en) | Semantic Application Logging and Analytics | |
US7693948B2 (en) | Email traffic integration into a knowledge management system | |
US11928114B2 (en) | Query generation based on a logical data model with one-to-one joins | |
US20130166563A1 (en) | Integration of Text Analysis and Search Functionality | |
US9201700B2 (en) | Provisioning computer resources on a network | |
Collarana et al. | Semantic data integration for knowledge graph construction at query time | |
US10929604B2 (en) | System and method for analyzing items and creating a data structure using lexicon analysis and filtering process | |
US10650044B2 (en) | Method and apparatus for converting from a source database system to a destination database system | |
US11726999B1 (en) | Obtaining inferences to perform access requests at a non-relational database system | |
US20230109545A1 (en) | System and method for an artificial intelligence data analytics platform for cryptographic certification management | |
CN116361487A (zh) | 一种多源异构政策知识图谱构建和存储方法及系统 | |
CN107122486A (zh) | 一种支持blob的多元大数据融合方法和系统 | |
Abid et al. | Towards a smart city ontology | |
Bolchini et al. | Relational data tailoring through view composition | |
US11372943B2 (en) | Custom types controller for search engine support | |
US20230109718A1 (en) | Central Repository System with Customizable Subset Schema Design and Simplification Layer | |
Sharma et al. | FLASc: a formal algebra for labeled property graph schema | |
Cysneiros et al. | Including hierarchical navigation in a Graph Database query language with an OBDA approach | |
US20140143278A1 (en) | Application programming interface layers for analytical applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180807 |
|
WD01 | Invention patent application deemed withdrawn after publication |