CN107122486A - 一种支持blob的多元大数据融合方法和系统 - Google Patents
一种支持blob的多元大数据融合方法和系统 Download PDFInfo
- Publication number
- CN107122486A CN107122486A CN201710321988.5A CN201710321988A CN107122486A CN 107122486 A CN107122486 A CN 107122486A CN 201710321988 A CN201710321988 A CN 201710321988A CN 107122486 A CN107122486 A CN 107122486A
- Authority
- CN
- China
- Prior art keywords
- data
- blob
- rdf
- attribute value
- storage system
- 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.)
- Granted
Links
- 238000007500 overflow downdraw method Methods 0.000 title claims abstract description 8
- 238000013499 data model Methods 0.000 claims abstract description 45
- 238000000034 method Methods 0.000 claims abstract description 35
- 230000004927 fusion Effects 0.000 claims description 10
- 238000013507 mapping Methods 0.000 claims description 6
- 238000003491 array Methods 0.000 claims 1
- 241001269238 Data Species 0.000 abstract 3
- 230000006870 function Effects 0.000 description 18
- 238000007726 management method Methods 0.000 description 11
- 230000010354 integration Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011068 loading method Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
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/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种支持BLOB的多元大数据融合方法和系统。本方法为:1)基于RDF数据模型,创建RDF‑B数据模型;RDF‑B数据模型采用三元组形式来表达每个资源的属性及其属性值,所述属性值包括BLOB类型的属性值,BLOB类型的属性值包括数据内容、长度、摘要和标志信息;2)RDF‑B数据模型对收到的数据生成三元组并存储到一前端存储系统;其中,如果该数据为BLOB类型,则RDF‑B数据模型根据该数据对应三元组中BLOB类型的属性值生成一四元组<句柄,长度,摘要,标志>作为该数据的三元组信息的属性值,然后将该数据的三元组保存到该前端存储系统,根据该句柄将数据内容存储到后端存储系统。
Description
技术领域
本发明涉及大数据、数据库、语义网技术领域,提出一种多元大数据融合方法和系统。
背景技术
随着海量规模、多元异构数据的产生,传统的数据库技术(通常指关系数据库系统)无法很好实现对海量、非结构化或半结构化数据集的管理。NoSQL、Hadoop等大数据技术的提出,能够高效地解决分布式环境下全网域(Web Scale)的非结构化信息的管理和处理问题,深化了大数据的应用。
不同于大数据(big data),语义网(semantic web)以及关联数据(linked data)则是从信息组织的角度,通过引入丰富的形式化语义,提高了数据的关联和可理解能力,逐渐成为跨域整合和智能分析的利器。越来越多的大数据应用由于采用了RDF(ResourceDescription Framework,资源描述框架)数据模型进行描述和编码,通过元数据和其他语义描述(本体),使数据具有机器可识别的语义(即形式化的语义描述),丰富了大数据的语义,并使数据具有更好的互操作性。由于采用语义描述的关联数据已不再是堆砌的信息,结合大数据挖掘手段,还能给大数据分析带来强有力的工具,使大数据集相互之间能够实现基于语义的整合。
RDF数据模型(RDF Data Model)提供了一个简单但功能强大的模型,通过资源、属性及其相应值来描述特定资源。RDF数据模型具有较好的可融合性,将两个RDF进行融合时,只需要将相同节点的不同属性附加到RDF节点上即可。这非常符合大规模数据的融合管理的需求。
RDF数据模型支持多种类型的属性,根据RDF规范(https://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/),RDF属性支持文本型、布尔型、数值型、时间型等多种类型。然而,该模型缺少对二进制大对象(BLOB:binary large object)的支持。而在信息系统中,文件作为非结构化数据的存储形式,往往占据了相当大的比例。据统计,世界上85%的数据都是非结构化数据,这些数据每年都按指数增长60%(http://www.cio.com.cn/eyan/2295.html)。因此发明一种支持BLOB类型的大数据融合方法,实现对BLOB数据以及其它类型数据的统一管理和查询,显得尤其重要。
发明内容
本发明的目的在于提供一种支持BLOB的多元大数据融合方法和系统,实现了对多元数据的整合,并有效的支持数据的关联检索。
本发明的技术内容为:
一种支持BLOB的多元大数据融合方法,其步骤为:
1)基于RDF数据模型,创建支持BLOB的多元大数据融合模型,即RDF-B数据模型;创建或设置一后端存储系统;该RDF-B数据模型采用三元组形式来表达每个资源的属性及其属性值,其中,所述属性值包括BLOB类型的属性值,BLOB类型的属性值包括数据内容、长度、摘要和标志信息;
2)RDF-B数据模型对收到的数据生成三元组并存储到一前端存储系统;其中,如果该数据为BLOB类型,则RDF-B数据模型根据该数据对应三元组中BLOB类型的属性值生成一四元组<句柄,长度,摘要,标志>作为该数据的三元组信息的属性值,然后将该数据的三元组保存到该前端存储系统,根据该句柄将该BLOB类型的属性值中的数据内容存储到所述后端存储系统;所述后端存储系统维护句柄与对应BLOB类型的属性值的数据内容之间的映射。
进一步的,创建BLOB类型的属性值的方法为:首先获取该数据的前若干字节作为所述标志信息,然后创建一二进制字节数组保存该数据的内容,获取该数据的长度并生成该数据的摘要。
进一步的,根据该句柄将该BLOB类型的属性值中的数据内容存储到所述后的存储系统的方法为:首先根据当前系统时间创建一个唯一编号ID,作为句柄;然后在所述后端存储系统的设定目录下创建一个新文件,文件名为<ID>.bin,写入该BLOB类型的属性值的数据内容;并且生成一个<ID>.md5文件,写入所述摘要。
进一步的,根据字节数组生成BLOB类型的属性值,、根据文件生成BLOB类型的属性值、根据输入流数据源生成BLOB类型的属性值或根据文本串生成BLOB类型的属性值。
进一步的,所述标志信息为一32位的标志。
一种支持BLOB的多元大数据融合系统,其特征在于,包括一RDF-B数据模型,一后端存储系统和一前端存储系统;其中,
RDF-B数据模型,采用三元组形式来表达每个资源的属性及其属性值,所述属性值包括BLOB类型的属性值,BLOB类型的属性值包括数据内容、长度、摘要和标志信息;
前端存储系统,用于存储RDF-B数据模型对收到的数据生成的三元组;如果该数据为BLOB类型,则RDF-B数据模型根据该数据对应三元组中BLOB类型的属性值生成一四元组<句柄,长度,摘要,标志>作为该数据的三元组信息的属性值;
后端存储系统,用于根据句柄将对应BLOB类型的属性值中的数据内容进行存储;
所述后端存储系统维护句柄与对应BLOB类型的属性值的数据内容之间的映射。
该方法具体描述如下:
(1)基于RDF(Resource Description Framework,资源描述框架)数据模型,针对其不支持BLOB属性值的缺陷,设计支持BLOB的多元大数据融合管理模型RDF-B。RDF-B模型可以包含多种类型的数据,包括常见的文本型、布尔型、数值型、时间型以及BLOB类型(参见具体实施例1);
(2)进一步细化了RDF-B模型中BLOB属性值(BlobLiteral)应该包含的自有属性和操作。针对BLOB属性值,定义其支持的操作,包括打开输入流、获取摘要、获取长度、获取标记、判断是否为BLOB类型,等(参见具体实施例1);
(3)定义了RDF-B模型中BLOB属性值的文本表达方法,针对BLOB的属性定义了与常见的文本型、布尔型、数值型、时间型等属性相兼容的文本表达方式(参见具体实施例2);
(4)提供创建BLOB属性值的方法,即如何从文件、文本串、数据流等已知数据源创建BLOB属性值(参见具体实施例3);
(5)提供存储BLOB属性值的方法,即如何允许用户挂接自定义BLOB存储库,同时提供了基于本地文件系统实现BLOB数据的存储(参见具体实施例4);
(6)提供RDF-B数据模型的加载方法,帮助用户通过API创建/加载RDF-B数据模型(参见具体实施例5);
(7)提供针对RDF-B数据模型的查询方法。基于SPARQL查询语法,通过提供BLOB属性值的操作函数,从而支持对BLOB属性值的匹配。由于SPARQL关联查询的能力,针对BLOB进行查询的同时,可以同时将其他属性值以及关联关系作为条件进行筛选(参见具体实施例6)。
特别的,(4)~(7)采用Java语言实现,并基于开源项目Apache Jena(http://jena.apache.org/)实现,Apache Jena是一个基于Java的语义网开发框架。
本发明的有益效果在于:
本发明的目的在于提供一种支持BLOB的多元大数据融合管理模型RDF-B,以及针对RDF-B的实现系统。可以用于多元异构数据(包括文本型、布尔型、数值型、时间型、BLOB)的整合管理与统一查询,为大数据融合管理提供了理论模型和实用系统。
本发明系统的优点具体为:
(1)采用传统RDF数据模型来组织数据,由于它对BLOB文件的支持不足,通常无法实现对非结构化文件的管理。折中的办法往往普通类型的属性采用RDF数据模型来管理,BLOB数据仅存储相关的路径或编号,应用程序再根据这些信息显式的去访问文件数据,这种方式增强了应用程序和RDF数据库之间的耦合性。本发明提出的RDF-B模型定义了BLOB的类型,并完全兼容传统的RDF模型。RDF-B模型可实现文件类型、普通类型数据的统一管理,同时提供了针对BLOB数据的查询函数,可用于标准化的SPARQL查询。图1、图2示出基于传统RDF模型和RDF-B模型开发应用的差异。
(2)传统的多元异构数据管理系统,一类是采用扁平的记录型的结构统一组织数据,完全忽略了数据之间的关联性,不利于数据的关联检索,或者关联检索的代价很高。另一类是基于传统RDF数据模型,无法很好的兼顾到非结构化数据的管理。与这两类系统相比,本发明提出的系统可以实现多元数据(包括非结构化文件)的整合,并有效的支持数据的关联检索(包括针对文件的检索)。
附图说明
图1示出基于传统RDF模型开发应用的模式;
图2示出基于RDF-B模型开发应用的模式;
图3为本发明的大数据融合方法流程图。
具体实施方式
下面结合附图和具体实例对本发明进行进一步详细描述。
图3为本发明的方法流程图,其步骤包括:
1)基于RDF数据模型,创建支持BLOB的多元大数据融合模型,即RDF-B数据模型;创建一后端存储系统;该RDF-B数据模型采用三元组<资源URI,属性URI,属性值>的形式来表达每个资源的属性及其属性值,其中,所述属性值包括BLOB类型的属性值,BLOB类型的属性值包括数据内容、长度、摘要和标志信息;
2)RDF-B数据模型对收到的数据生成三元组并存储到一前端存储系统;其中,如果该数据为BLOB类型,则RDF-B数据模型根据该数据对应三元组中BLOB类型的属性值生成一四元组<句柄,长度,摘要,标志>作为该数据的三元组信息的属性值,然后将该数据的三元组保存到该前端存储系统,根据该句柄将该BLOB类型的属性值存储到所述后端存储系统;所述后端存储系统维护句柄与BLOB类型的属性值的数据内容之间的映射。
实施例1、多元大数据融合管理模型RDF-B
RDF-B主要基于RDF模型(https://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/)进行扩展,因此具有RDF模型的三元组以及有向图等所有特征。该模型的定义包括3个部分:
(1)RDF-B模型:与公开的RDF模型相同的是,RDF-B模型采用<资源URI,属性URI,属性值>三元组形式来表达每个资源(主语)的属性(谓语)及其属性值(宾语),属性值可以是一个文本型、布尔型、数值型、时间型,甚至另外一个资源。不同的是,RDF-B的属性值可以是BLOB类型;
(2)BLOB属性值的属性定义:BLOB类型的属性值具有自有属性,包括内容(content)、长度(length)、摘要(digest),以及一个32位的标志(mark)。如表1所示。
表1为BLOB属性值的属性表
(3)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个字节 |
实施例2、RDF-B属性值的文本表达方法
RDF-B模型中的非BLOB属性值采用标准的RDF文本表达方法,即采用XML literal来表达属性值,它通常包括2个部分:词汇、数据类型的IRI,前者代表属性值的文本,后者来表示值的类型,如:"hello"^^xsd:string,"1"^^xsd:integer。
针对BLOB属性值,RDF-B采用如下表达方式:
<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)。
如下代码示例出两个RDF-B三元组,第一行为标准的RDF三元组,第二行包含了一个BLOB属性值。
<#bluejoe><#name>"zhihong SHEN".
<#bluejoe><#photo>"content:R0lGODlhRgAgALP/AP///xAQEBgYGCEhITExMUpKSlpaWmtra3t7e4yMjJycnLW1tcbGxt7e3vf39wAAACwAAAAARgAgAEAE/xDISau9OOu923CToQBNwFXOd64aAQJj4wQGILIAIjXcPAKOwoPG4CwQiBfjASLwLIVFJZGQKHQVxfPSeBQXBODhIdjiKo3C61Q+TxwHd6jg8UoQtUzDkBg8pCspDmskAj8ZBjJxEgk1B0UUDYcWDgKAbzUOBFUTUg0IjUB0JwlMO4tABg8PBwuERgcBQwR8lxMBnBm2ckADvL/AEx5no79hvAcFJA8FAwWqZhgIQgKBPwoDzgcEphkMWAC1D6WeA5BGuxqV4Aqr6RdHEpeqq4SD6tl5EwwJrwU6KR64wOFL34Iaey74upAgzZt85xi8IkGgCIMAExmOm/BghINuEv8cKBAC8gCqFOAmXLkwg0e7IZw+5gpGsyavBdFs6syAYNKGhTt/GXiXIcovUDgQmPkmYegZARlXMCCqS5ipA1UYXIlK4cg9OQ0WLNBypouMArh48DnB7UBODAk8yQg5wOeFiA8M+MmzQIWGBAem4UjgZEcBBQHsXkAAaMGSAwrCBKFqgeyKPi80rUKl7pjlBasKcD6hlICyDQugkvBTjNQIVzs6mkRBGcHGSI1Ox25Qxw5XCx8UnDMHACMK3ccnOej7ZMk5ClEGOeWQhqkEAlJ6XihcASeARxZGhx/Ag8BroxkUGNBtIM8DDNsiqSaBPGR9CrMBDFiQIMB+01GV8oQpWRL8sxwC3IggEXS2OLAeTrwtMIZdhO2ABCGIZbScBnP98huBQYWoUwQAOw==,length:628,digest:5ecb3255a12ef30a9d3c3a5554e8021d,mark:R0lGODlhRgAgALP/AP///xAQEBgYGCEhITExMUpKSlo="^^<urn:x-hp-dt:blob-bytes>.
第一行表示,RDF节点#bluejoe具有一个属性#name,属性值是一个文本串"zhihong SHEN"。
第二行表示,RDF节点#bluejoe具有一个属性#photo,属性值是一个BLOB数据,其内容为一个二进制字节数组(base64解码可以得知其为一个GIF照片文件),数组长度为628个字节,摘要为5ecb3255a12ef30a9d3c3a5554e8021d。
可以看出,文本输出并不适合BLOB二进制内容的表达,通常建议采用应用程序通过BLOB属性值的打开输入流(openStream)操作,获取到字节流,然后再按照数据流的规范进行后续操作。
实施例3、BLOB属性值的创建方法
本发明提供了从不同的数据源创建BLOB属性值的方法:
Literal create(byte[]bytes):根据字节数组生成BLOB属性值
Literal create(File file):根据文件生成BLOB属性值
Literal create(InputStreamSource source):根据输入流数据源生成BLOB属性值;
Literal create(String text):根据文本串生成BLOB属性值
以create(File file)为例,伪代码如下:
val bl=new BlobLiteral{
val mark32=IOUtils.readBytes(openStream(),32);//读取前32位标志
def openStream()=new FileInputStream(fileName);//打开文件输入流
def getLength()=file.length();//获取到文件的长度
def getDigest()=DigestUtils.md5Hex(openStream());//生成摘要
def getMark()=mark32;
};
return bl;//返回该属性值
实施例4、BLOB属性值的存储方法
由于BLOB属性值往往占据较大的存储空间,将BLOB属性值和其它属性值保存在同一个空间,会带来严重的内存消耗和读取性能的问题。本发明提出一种与RDF模型实际存储系统融合且又相对独立的存储库方案:
(1)在RDF模型实际存储系统中,BLOB属性值存储为一个BLQ四元组(BLOB LiteralQuadruple)而非BLOB数据内容本身,该四元组为<句柄,长度,摘要,32位标志>,其中BLOB句柄为每个BLOB数据分配的一个唯一的标识;
(2)BLOB属性值中的数据内容存储在一个命名为BlobStorage的后端存储系统上,BlobStorage维护BLOB句柄与BLOB数据内容之间的映射,即可以根据句柄获得BLOB数据内容;
(3)用户可以根据BlobStorage的接口要求,基于关系型数据库、文件系统等来实现后端存储系统。特别的,本发明基于本地文件系统,提供了一个可用的BlobStorage。
特别的,BlobStorage系统提出了如下接口方法:
(1)fromHandle:根据句柄,获取到对应的BLOB数据;
(2)insert:保存指定的BLOB内容,并返回新的句柄;
(3)delete:删除指定句柄的BLOB;
(4)update:保存指定的BLOB内容至指定的BLOB属性;
本发明系统同时提供了一套基于本地文件系统实现的BlobStorage,对应的类名为LocalFileSystemBlobStorage。
LocalFileSystemBlobStorage的insert()方法的实现步骤如下:
(1)根据当前系统时间创建一个唯一编号ID,作为BLOB句柄;
(2)在约定目录下创建一个新文件,文件名为<ID>.bin,写入传入的BLOB内容;
(3)同时生成一个<ID>.md5文件,写入BLOB内容的摘要;
(4)返回ID;
LocalFileSystemBlobStorage的delete()的实现步骤如下:
(1)获取到传入的句柄ID;
(2)删除约定目录下的文件<ID>.bin;
(3)删除约定目录下的文件<ID>.md5;
LocalFileSystemBlobStorage的fromHandle()的实现步骤如下:
(1)获取到传入的句柄ID;
(2)找到约定目录下的文件<ID>.bin,以及<ID>.md5,根据<ID>.bin文件的内容、<ID>.bin文件的大小、<ID>.md5文件的内容构建BLQ四元组以及BLOB数据内容;
(3)返回BLOB数据内容;
实施例5、RDF-B模型操作模块
由于传统RDF模型缺乏对BLOB属性的支持,为了实现对RDF-B模型的操作,需要采用如下步骤:
(1)基于Jena创建一个标准的RDF数据模型(com.hp.hpl.jena.rdf.model.Model类对象),如:
Model model=ModelFactory.createDefaultModel();
或者从已有存储中构建一个RDF数据模型model:
Model model=TDBFactory.createDataset(tdbDir).getDefaultModel().
(2)创建一个BlobStorage类(参见实施例4)的对象blobStorage;
(3)利用addBlobNature(model,blobStorage)方法将以上model改造成RDF-B数据模型blobModel;
如上所述,addBlobNature(model,blobStorage)方法实现了传统RDF的改造,改造的具体方法如下:
(1)定义BlobTripleTable类,该类继承了Jena的com.hp.hpl.jena.tdb.store.TripleTable;
(2)实现BlobTripleTable的add()方法,在添加该RDF三元组的时候,调用blobStorage的create()方法,将BLOB对象写入到后端存储系统中;
(3)实现BlobTripleTable的delete()方法,在删除该RDF三元组的时候,调用blobStorage的delete()方法,同时删除后端存储中的BLOB内容(参见实施例4);
(4)实现BlobTripleTable的update()方法,在更新该RDF三元组的时候,调用blobStorage的update()方法,更新后端存储中的BLOB内容(参见实施例4);
(5)修改传入参数model内部的TripleTable对象,将其替换成一个BlobTripleTable类的对象;
(6)在用户程序针对RDF-B模型进行三元组的更新操作时,以上BlobTripleTable对象的add()、delete()和update()方法会被自动调用,从而实现存储后端的同步;
通过如上方法,可以得到RDF-B模型,为了向RDF-B模型中写入RDF三元组,可以采用如下步骤:
(1)创建BLOB属性值:可以利用BlobLiteralFactory类(参见实施例3),创建某个BLOB属性值,命名为blobLiteral;
(2)调用com.hp.hpl.jena.rdf.model.Model的相关方法来增添一个三元组,如:blobModel.add(person,photo,blobLiteral)。
实施例6、RDF-B函数与SPARQL查询
为了实现对BLOB属性值的操作,本发明定义了BLOB属性值的6个操作,并实现了对应的函数类,它们分别是:
(1)GetDigest:获取指定BLOB数据的摘要,接受一个参数,该类继承于com.hp.hpl.jena.sparql.function.FunctionBase1;
(2)GetLength:获取指定BLOB数据的长度,接受一个参数,该类继承于com.hp.hpl.jena.sparql.function.FunctionBase1;
(3)GetMark:获取指定BLOB数据的摘要,接受一个、两个、三个参数,该类继承于com.hp.hpl.jena.sparql.function.FunctionBase;
(4)IsBlob:判断属性是否为BLOB数据,接受一个参数,该类继承于com.hp.hpl.jena.sparql.function.FunctionBase1;
(5)ToBytes:将BLOB数据的内容转换成字节数组,接受一个参数,该类继承于com.hp.hpl.jena.sparql.function.FunctionBase1;
(6)ToString:将BLOB数据的内容转换成文本串,接受一个参数,该类继承于com.hp.hpl.jena.sparql.function.FunctionBase1;
以GetDigest为例,它的类定义如下:
基于Jena的ARQ模块,可以封装针对RDF-B模型的SPARQL查询引擎。一旦在SPARQL查询引擎中注册了以上操作函数,用户程序就可以在SPARQL查询语句中调用这些操作函数,从而达到关联查询的效果,示例:
select?name
where{
?person<#name>?name.
?person<#photo>?photo
FILTER(blob:isBlob(?o)&&blob:mark(4)=’GIF89a’)
}
该SPARQL语句查询包含有照片,且照片的标志为GIF89a(格式为GIF图片)的人员的姓名。其中出现的blob:isBlob()和blob:mark()对应于IsBlob()和GetMark()函数。
Claims (10)
1.一种支持BLOB的多元大数据融合方法,其步骤为:
1)基于RDF数据模型,创建支持BLOB的多元大数据融合模型,即RDF-B数据模型;创建或设置一后端存储系统;该RDF-B数据模型采用三元组形式来表达每个资源的属性及其属性值,其中,所述属性值包括BLOB类型的属性值,BLOB类型的属性值包括数据内容、长度、摘要和标志信息;
2)RDF-B数据模型对收到的数据生成三元组并存储到一前端存储系统;其中,如果该数据为BLOB类型,则RDF-B数据模型根据该数据对应三元组中BLOB类型的属性值生成一四元组<句柄,长度,摘要,标志>作为该数据的三元组信息的属性值,然后将该数据的三元组保存到该前端存储系统,根据该句柄将该BLOB类型的属性值中的数据内容存储到所述后端存储系统;所述后端存储系统维护句柄与对应BLOB类型的属性值的数据内容之间的映射。
2.如权利要求1所述的方法,其特征在于,创建BLOB类型的属性值的方法为:首先获取该数据的前若干字节作为所述标志信息,然后创建一二进制字节数组保存该数据的内容,获取该数据的长度并生成该数据的摘要。
3.如权利要求1所述的方法,其特征在于,根据该句柄将该BLOB类型的属性值中的数据内容存储到所述后的存储系统的方法为:首先根据当前系统时间创建一个唯一编号ID,作为句柄;然后在所述后端存储系统的设定目录下创建一个新文件,文件名为<ID>.bin,写入该BLOB类型的属性值的数据内容;并且生成一个<ID>.md5文件,写入所述摘要。
4.如权利要求1或2或3所述的方法,其特征在于,根据字节数组生成BLOB类型的属性值,、根据文件生成BLOB类型的属性值、根据输入流数据源生成BLOB类型的属性值或根据文本串生成BLOB类型的属性值。
5.如权利要求1或2或3所述的方法,其特征在于,所述标志信息为一32位的标志。
6.一种支持BLOB的多元大数据融合系统,其特征在于,包括一RDF-B数据模型,一后端存储系统和一前端存储系统;其中,
RDF-B数据模型,采用三元组形式来表达每个资源的属性及其属性值,所述属性值包括BLOB类型的属性值,BLOB类型的属性值包括数据内容、长度、摘要和标志信息;
前端存储系统,用于存储RDF-B数据模型对收到的数据生成的三元组;如果该数据为BLOB类型,则RDF-B数据模型根据该数据对应三元组中BLOB类型的属性值生成一四元组<句柄,长度,摘要,标志>作为该数据的三元组信息的属性值;
后端存储系统,用于根据句柄将对应BLOB类型的属性值中的数据内容进行存储;所述后端存储系统维护句柄与对应BLOB类型的属性值的数据内容之间的映射。
7.如权利要求6所述的系统,其特征在于,所述RDF-B数据模型获取数据的前若干字节作为所述标志信息,然后创建一二进制字节数组保存该数据的内容,获取该数据的长度并生成该数据的摘要,生成该数据的BLOB类型的属性值。
8.如权利要求6所述的系统,其特征在于,所述RDF-B数据模型根据当前系统时间创建一个唯一编号ID,作为句柄;然后在所述后端存储系统的设定目录下创建一个新文件,文件名为<ID>.bin,写入该BLOB类型的属性值的数据内容;并且生成一个<ID>.md5文件,写入所述摘要。
9.如权利要求6或7或8所述的系统,其特征在于,基于RDF数据模型创建支持BLOB的RDF-B数据模型。
10.如权利要求6或7或8所述的系统,其特征在于,所述标志信息为一32位的标志;根据字节数组生成BLOB类型的属性值,、根据文件生成BLOB类型的属性值、根据输入流数据源生成BLOB类型的属性值或根据文本串生成BLOB类型的属性值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710321988.5A CN107122486B (zh) | 2017-05-09 | 2017-05-09 | 一种支持blob的多元大数据融合方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710321988.5A CN107122486B (zh) | 2017-05-09 | 2017-05-09 | 一种支持blob的多元大数据融合方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107122486A true CN107122486A (zh) | 2017-09-01 |
CN107122486B CN107122486B (zh) | 2020-08-14 |
Family
ID=59726936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710321988.5A Active CN107122486B (zh) | 2017-05-09 | 2017-05-09 | 一种支持blob的多元大数据融合方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107122486B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108376174A (zh) * | 2018-02-27 | 2018-08-07 | 河北中科开元数据科技有限公司 | 支持结构化与非结构化大数据融合的方法和装置 |
CN109582831A (zh) * | 2018-10-16 | 2019-04-05 | 中国科学院计算机网络信息中心 | 一种支持非结构化数据存储与查询的图数据库管理系统 |
CN110647703A (zh) * | 2019-09-18 | 2020-01-03 | 平安科技(深圳)有限公司 | 动画播放方法、装置、计算机设备和存储介质 |
CN110704688A (zh) * | 2018-07-09 | 2020-01-17 | 上海交通大学 | 基于关联数据的区块链分离存储系统 |
CN113076325A (zh) * | 2021-03-25 | 2021-07-06 | 上海达梦数据库有限公司 | 一种大字段数据处理方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090077373A1 (en) * | 2007-09-13 | 2009-03-19 | Columbus Venture Capital S. A. R. L. | System and method for providing verified information regarding a networked site |
CN102999563A (zh) * | 2012-11-01 | 2013-03-27 | 无锡成电科大科技发展有限公司 | 基于资源描述框架的网络资源语义检索方法及系统 |
CN106611046A (zh) * | 2016-12-16 | 2017-05-03 | 武汉中地数码科技有限公司 | 基于大数据技术的空间数据存储处理中间件框架 |
-
2017
- 2017-05-09 CN CN201710321988.5A patent/CN107122486B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090077373A1 (en) * | 2007-09-13 | 2009-03-19 | Columbus Venture Capital S. A. R. L. | System and method for providing verified information regarding a networked site |
CN102999563A (zh) * | 2012-11-01 | 2013-03-27 | 无锡成电科大科技发展有限公司 | 基于资源描述框架的网络资源语义检索方法及系统 |
CN106611046A (zh) * | 2016-12-16 | 2017-05-03 | 武汉中地数码科技有限公司 | 基于大数据技术的空间数据存储处理中间件框架 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108376174A (zh) * | 2018-02-27 | 2018-08-07 | 河北中科开元数据科技有限公司 | 支持结构化与非结构化大数据融合的方法和装置 |
CN110704688A (zh) * | 2018-07-09 | 2020-01-17 | 上海交通大学 | 基于关联数据的区块链分离存储系统 |
CN109582831A (zh) * | 2018-10-16 | 2019-04-05 | 中国科学院计算机网络信息中心 | 一种支持非结构化数据存储与查询的图数据库管理系统 |
CN109582831B (zh) * | 2018-10-16 | 2022-02-01 | 中国科学院计算机网络信息中心 | 一种支持非结构化数据存储与查询的图数据库管理系统 |
CN110647703A (zh) * | 2019-09-18 | 2020-01-03 | 平安科技(深圳)有限公司 | 动画播放方法、装置、计算机设备和存储介质 |
WO2021051597A1 (zh) * | 2019-09-18 | 2021-03-25 | 平安科技(深圳)有限公司 | 动画播放方法、装置、计算机设备和存储介质 |
CN113076325A (zh) * | 2021-03-25 | 2021-07-06 | 上海达梦数据库有限公司 | 一种大字段数据处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107122486B (zh) | 2020-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107122486B (zh) | 一种支持blob的多元大数据融合方法和系统 | |
CN106934062B (zh) | 一种查询elasticsearch的实现方法及系统 | |
US8103705B2 (en) | System and method for storing text annotations with associated type information in a structured data store | |
Bikakis et al. | The XML and semantic web worlds: technologies, interoperability and integration: a survey of the state of the art | |
US20130006968A1 (en) | Data integration system | |
US20070073663A1 (en) | System and method for providing full-text searching of managed content | |
US20040220927A1 (en) | Techniques for retaining hierarchical information in mapping between XML documents and relational data | |
US20150205834A1 (en) | PROVIDING FILE METADATA QUERIES FOR FILE SYSTEMS USING RESTful APIs | |
US20110093486A1 (en) | Data query method, data query system and computer readable and writable recording medium | |
US20030226109A1 (en) | Method, apparatus, and system for data modeling and processing | |
US9824128B1 (en) | System for performing single query searches of heterogeneous and dispersed databases | |
US8903842B2 (en) | Metadata driven reporting and editing of databases | |
US9836503B2 (en) | Integrating linked data with relational data | |
US10296505B2 (en) | Framework for joining datasets | |
US20210073196A1 (en) | Semantic, single-column identifiers for data entries | |
CN113157723B (zh) | 一种面向Hyperledger Fabric的SQL访问方法 | |
US10671411B2 (en) | Cloning for object-oriented environment | |
KR100417569B1 (ko) | 메타데이터 교환표준을 이용한 분산 이종 데이터베이스검색방법 | |
Johnson | Indexing linked bibliographic data with JSON-LD, BibJSON and Elasticsearch | |
Saputra et al. | A metadata approach for building web application user interface | |
Dickson et al. | The semi-structured data model and implementation issues for semi-structured data | |
Molnar et al. | Conceptual graph driven modeling and querying methods for RDMBS and XML databases | |
US11372943B2 (en) | Custom types controller for search engine support | |
US20230121287A1 (en) | Metadata elements with persistent identifiers | |
TW202016754A (zh) | 彈性化網頁資料管理系統及其方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |