CN110046158B - 不利用字典管理的通用唯一资源 - Google Patents
不利用字典管理的通用唯一资源 Download PDFInfo
- Publication number
- CN110046158B CN110046158B CN201811599975.5A CN201811599975A CN110046158B CN 110046158 B CN110046158 B CN 110046158B CN 201811599975 A CN201811599975 A CN 201811599975A CN 110046158 B CN110046158 B CN 110046158B
- Authority
- CN
- China
- Prior art keywords
- data
- bits
- class
- index value
- given
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 26
- 230000000644 propagated effect Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000002790 cross-validation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
- G06F40/242—Dictionaries
-
- 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
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- 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/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/325—Hash tables
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本文公开的数据库和方法通过将数据直接存储在索引中(例如,存储文字值或利用通用唯一标识符(UUID))来减少昂贵的字典访问(写入和读取),从而节省时间和存储器。一个示例实施例是包括字典和索引的数据库。字典存储键与数据之间的关联。索引中的每个条目包括对应于数据的多个值。索引的值包括(i)针对特定数据类型的对应数据的直接表示,或(ii)针对其他数据类型的对应数据的散列。散列在字典中用作与对应数据相关联的键。
Description
背景技术
最终一致性是在分布式计算中使用的模型,其目标是对项目的所有单 独访问最终将返回相同的值。最终一致的语义Web上***通常称为BASE (基本可用,软状态,最终一致性)。资源描述框架(RDF)是用于Web上 数据交换的示例标准。RDF使用通用资源标识符(URI)将事物之间的关系描述为主语、谓语和宾语(称为“三元组”)。URI是用于标识资源的字 符串。URI的一个示例是统一资源定位符(URL),通常称为“web地址”。 RDF可以表示为有向的标记图,其中节点表示Web资源,而节点之间的边 表示资源之间的关系。
允许产生非常大量数据的应用可以受益于使用RDF数据集。在这种情 况下,必须支持产生非常大量的URI。字典可以用于提供对RDF三元组存 储的索引,以帮助优化大量冗余信息的持久性。字典和索引本质上提供三 种操作:(1)***——将索引归属于RDF节点并将其值存储在字典中,(2) 定位——提供与RDF节点相关联的索引,以及(3)提取——从字典中提 供与索引相关联的值。随着字典增长,定位操作和提取操作可能成本很高, 因为它们要求从远程站点作为整体访问对字典的最新更新,以便分发准确 的索引。***操作在分散和分布式字典的上下文中可能是有问题的,因为 两个不同的站点可能同时尝试***相同的资源。
发明内容
通用唯一标识符(UUID)可以在几乎没有冲突风险的情况下在RDF 数据集中用于归属数据标识符。表示为字符串的UUID可能比许多传统URI 更紧凑,为36个字节(即,十六进制格式下每字节两个字母数字字符,以 及根据标准UUID文本形式的四个破折号),但是将UUID作为字符串来操 纵是次优的,因为它的自然二进制表示只有16个字节(128位)。使用字符 串字典处理大量基于UUID的URI会浪费处理器周期和存储器,并且会失 去UUID特征的益处:两个不同站点生成相同UUID是极不可能事件。因此不太可能将其认为是在不需要交叉验证的情况下建立分散***的假设。
本文公开的数据库和方法可以利用这一点来减少昂贵的字典访问(写 入和读取),从而节省时间和存储器。一个示例实施例是一种包括字典和索 引的数据库。字典存储键与数据之间的关联。索引中的每个条目包括对应 于数据的多个值。索引的值包括(i)针对特定数据类型的对应数据的直接 表示,或(ii)针对其他数据类型的对应数据的散列。散列在字典中用作与对应数据相关联的键。
另一示例实施例是一种在数据库中存储数据的计算机实现的方法,其 中数据库包括索引和字典。示例方法包括在字典中存储键与数据之间的关 联。该方法还包括在索引中存储包括对应于数据的多个值的索引。索引的 值包括(i)针对特定数据类型的对应数据的直接表示,或(ii)针对其他数 据类型的对应数据的散列。散列在字典中用作与对应数据相关联的键。
另一示例实施例是一种在计算机存储器中对数据进行存储和取回的方 法。示例方法包括根据索引和字典来配置存储器。索引中的每个条目包括 对应于数据的多个值。字典存储键与数据之间的关联。索引的每个值包括 (i)针对特定数据类型的对应数据的直接表示,或(ii)针对其他数据类型 的对应数据的散列。散列在字典中用作与对应数据相关联的键。
在一些实施例中,数据库可以是资源描述框架数据库,并且索引的多 个值可以包括对应于主语、谓语以及宾语的三个值。在一些实施例中,索 引的值可以包括针对以下任何数据类型的对应数据的直接表示:整数、双 精度、浮点数、八个字符或更少的字符串或通用唯一标识符。
在一些实施例中,索引值的第一数量的位可以表示由该值表示的数据 的类别。由索引值的第一数量的位表示的数据的类别可以是文字值类别, 在这种情况下,索引值的第二数量的位可以表示文字值的数据类型。索引 值的其余位可以存储数据的文字值。索引值可以是128位的,并且第一数量的位(表示数据的类别)可以是两位。在文字值类别的情况下,第二数 量的位(表示数据类型)可以是62位。在除文字值之外的情况下,索引值的其余位(除了第一数量的位之外)可以存储数据。在一些情况下,存储 在索引值的其余位中的数据可以是通用唯一标识符,并且在其他情况下, 索引值的其余位可以存储数据的散列。
附图说明
根据以下对示例实施例的更具体的描述,前述内容将变得显而易见, 如附图中所示,其中相同的附图标记贯穿不同视图指代相同的部分。附图 不一定按比例绘制,而是将重点放在说明实施例上。
图1是示出根据示例实施例的存储器中的字典和索引的框图。
图2A-D是示出根据示例实施例的索引值的示例的框图。
图3是示出根据示例实施例的对数据库的示例操作的流程图。
图4是示出根据示例实施例的将数据存储在数据库中的计算机实现的 方法的流程图。
图5是示出根据示例实施例的将数据存储在数据库中的流程图。
图6是示出根据示例实施例的从数据库读取数据的流程图。
图7是其中可以实现本文呈现的示例实施例的计算机网络环境的示意 图。
图8是示出图7的网络的示例计算机节点的框图。
具体实施方式
以下是对示例实施例的描述。
需要命名方案来识别数据集中的数据。UUID通常用于在几乎没有冲突 风险的情况下归属数据标识符。UUID是128位数字,用于标识计算机***中的信息。当根据标准方法生成时,UUID是唯一的,而不依赖于对生成 UUID的各方之间的集中管理或协调。UUID重复的概率可以忽略不计。
图1是示出根据示例实施例的存储器100中的字典110和索引105的 框图。字典存储键130a-n与数据135a-n之间的关联。索引105中的每个条 目(索引105的一行)包括对应于数据的多个值115a-m、120a-m和125a-m。 索引105的值包括(i)针对特定数据类型的对应数据的直接表示,或(ii) 针对其他数据类型的对应数据的散列。散列在字典110中用作与对应数据相关联的键(130a-n中的一个)。
在特定实施例中,字典110可以使用128位散列键作为对任何信息(例 如,RDF节点)的索引。特定数据类型的文字值(例如,整数、双精度浮 点数、日期和时间或短字符串)可以适合64位半键。可以保留128位值的 两位用于数据分类,并且其余62位可以用于对数据类型进行编码。类似地,UUID可以使用128位散列键的完全长度编码为128位值,两个保留位使得 区分UUID的情况成为可能。
图2A-D是示出根据示例实施例的索引值205、225、250和270的示例 的框图。图2A示出了表示空白节点的示例索引值205。索引值205的两位 可以用于指示空白节点。在图2A的情况下,使用值205的前两位210、215, 并且指示空白节点的位值可以是例如“00”,如所示出的。应该理解,可以使用位值的不同组合。
图2B示出了表示文字形式的数据的示例索引值225。索引值225的两 位可以用于指示数据的文字值存储在索引中。在图2B的情况下,使用值 225的前两位230、235,并且指示文字类别的位值可以是例如“01”,如所 示出的。应该理解,可以使用位值的不同组合。可以使用多个位240来指 示数据的类型(例如,整数、双精度浮点数、日期、时间或短字符串)。其 余位245可以用于存储数据的文字值。例如,在图2B的情况下,62位可 以用于指定数据类型,并且64位可以用于存储数据的文字值。
图2C示出了将数据表示为UUID的示例索引值250。索引值250的两 位可以用于指示数据作为UUID存储在索引中。在图2C的情况下,使用值 250的前两位255、260,并且指示UUID类别的位值可以是例如“10”,如 所示出的。应该理解,可以使用位值的不同组合。其余位265可以用于以 UUID格式存储数据。
图2D示出了示例索引值270,其是用于在字典(例如,图1的110) 中查找数据的散列键。索引值270的两位可以用于指示数据存储在字典中。 在图2D的情况下,使用值270的前两位275、280,并且指示数据存储在 字典中的位值可以是例如“11”,如所示出的。应该理解,可以使用位值的 不同组合。其余位285可以用于存储散列键。
图3是示出根据示例实施例的对数据库的示例操作的流程图。本文公 开的数据库和方法的字典可以被认为是反向散列表,其可以在给定散列键 的情况下计算值以执行提取操作。另一方面,***操作和定位操作以恒定 时间操作,并且不要求在远程站点之间进行任何同步。在RDF字典的情况 下,字典本质上是仅附加的BASE数据库,具有宽松的事务要求。使用所 公开的散列键使得能够通过写入字典而不从字典读取来执行***操作。根 据设计,无需检查要归属的索引是否已在字典中使用。另外,定位操作可以通过“在没有读数的情况下读取”来执行,因为如果已知正确的散列算 法,则可以从值本身推断出键。参考图3,可以通过基于资源生成310UUID 并将UUID编码315为128位键来创建305RDF资源。可以使用生成的键 来存储320RDF三元组。通过基于键搜索330三元组并且对匹配的128位 键进行解码335,可以搜索325RDF资源。如果可能的话,优选地通过对 键进行解码而不参考字典来获得资源。通过将UUID编码为128位键并使用键匹配350三元组,可以读取340RDF资源。对于完整的分散字典,尽 可能避免存储在字典中是有益的,这可以使用这里公开的数据库和方法通 过对散列键中的数据进行就地编码来实现。对于大多数文字值,对于所有 基于UUID的生成的资源,以及对于匿名节点(使用UUID),可以避免字 典访问。给定足够大的数据集,几乎所有节点(达到几个数量级)都不要 求字典管理。
图4是示出根据示例实施例的将数据存储在数据库中的计算机实现的 方法400的流程图。该示例方法包括在字典中存储405键与数据之间的关联。该方法还包括在索引中存储410包括与数据相对应的多个值的索引。 索引的值包括(i)针对特定数据类型的对应数据的直接表示,或(ii)针对 其他数据类型的对应数据的散列。散列在字典中用作与对应数据相关联的 键。
图5是示出根据示例实施例的将数据存储在数据库中的方法500的流 程图。确定505要存储在数据库中的数据的类别(例如,URI)。如果类别 是“空白”(空节点),则可以将数据为空白的指示存储510在索引值中。 如果类别是“文字”并且数据类型是例如整数、浮点数、日期或时间,则 可以将数据是文字值的指示连同数据类型和数据的文字值的指示一起存储 510在索引值中。如果文字的数据类型是字符串,则可以确定525字符串的 大小。如果字符串的大小小于或等于8个字符(64位),则可以将数据是文 字值的指示连同数据类型(字符串)和数据的文字值的指示一起存储510在索引值中。如果字符串的大小大于8个字符(64位),则可以将数据存储 在字典中的指示连同数据的散列一起存储530在索引值中;散列用作字典 中的键。
如果数据的类别不是空白或文字,则可以确定535数据的大小。如果 数据的大小小于或等于十六个字节(128位),则数据可以表示为UUID, 并且可以将数据被表示为UUID的指示连同该UUID一起存储540在索引 值中。如果数据的大小大于16个字节(128位),则可以将数据被存储在字 典中的指示连同数据的散列一起存储545在索引值中;散列用作字典中的键。
图6是示出根据示例实施例的从数据库读取数据的方法600的流程图。 可以确定605存储在索引值中的数据的类别(例如,通过解译索引值的两 位,如上面描述的)。如果类别是“空白”(空节点),则数据是空白的610。 如果类别是文字,则可以从索引值解译615数据的类型(例如,通过解译索引值的62位,如上面描述的)。基于数据类型,可以从索引值(例如, 从其余64位)读取615数据作为文字值。如果类别是UUID,则可以基于 数据作为UUID的表示从索引值读取620数据。如果类别是字典查找,则 可以从索引值读取625散列键并将其用于访问字典中的数据。
图7示出了其中可以实现本实施例的计算机网络或类似的数字处理环 境。(多个)客户端计算机/设备/处理器50和(多个)服务器计算机60提 供执行应用程序等的处理、存储和输入/输出设备。(多个)客户端计算机/ 设备50还可以通过通信网络70链接到其他计算设备,包括其他客户端设备/过程50和(多个)服务器计算机60。通信网络70可以是远程访问网络、 全球网络(例如,互联网)、云计算服务器或服务、全球计算机集合、局域网或广域网以及当前使用相应协议(TCP/IP、蓝牙等)来彼此通信的网关 的一部分。其他电子设备/计算机网络架构也是合适的。
图8是图7的计算机***中的计算机(例如,客户端处理器/设备50 或服务器计算机60)的内部结构的图。每个计算机50、60包含***总线 79,其中总线是用于计算机或处理***的组件之间的数据传送的一组硬件 线。总线79本质上是连接计算机***的不同元件(例如,处理器、磁盘存储装置、存储器、输入/输出端口和网络端口)的共享管道,其使得能够在 元件之间传送信息。附接到***总线79的是I/O设备接口82,用于将各种 输入设备和输出设备(例如,键盘、鼠标、显示器、打印机和扬声器)连 接到计算机50、60。网络接口86允许计算机连接到各种附接到网络(例如, 图7的网络70)的其他设备。存储器90为用于实现许多实施例的计算机软件指令92和数据94(例如,上面和图3-6中详述的代码,包括例程300、 400、500和600)提供易失性存储。磁盘存储装置95为用于实现许多实施 例的计算机软件指令92和数据94提供非易失性存储。中央处理器单元84 也附接到***总线79,并且提供计算机指令的执行。
在一个实施例中,处理器例程92和数据94是计算机程序产品(一般 标记为92),包括提供用于***的软件指令的至少一部分的计算机可读介质 (例如,诸如一个或多个DVD-ROM、CD-ROM、软盘和磁带之类的可移 除存储介质)。如本领域中公知的,计算机程序产品92可以通过任何合适的软件安装过程来安装。在另一实施例中,还可以通过电缆、通信和/或无 线连接来下载软件指令的至少一部分。在其他实施例中,程序是计算机程 序传播信号产品75(图7),其体现在传播介质(例如,通过诸如互联网或 (多个)其他网络之类的全球网络传播的无线电波、红外波、激光波、声波或电波)上的传播信号上。这种载波介质或信号提供用于例程/程序92 的软件指令的至少一部分。
在替代实施例中,传播信号是传播介质上承载的模拟载波或数字信号。 例如,传播信号可以是通过全球网络(例如,互联网)、电信网络或其他网 络传播的数字化信号。在一个实施例中,传播信号是在一段时间内通过传 播介质传输的信号,例如,在毫秒、秒、分钟或更长的时间段内通过网络 以分组发送的用于软件应用的指令。在另一实施例中,计算机程序产品92 的计算机可读介质是计算机***50可以接收和读取的传播介质,例如,通过接收传播介质并识别传播介质中体现的传播信号,如上面针对计算机程序传播信号产品描述的。一般而言,术语“载波介质”或瞬态载波涵盖前 述瞬态信号、传播信号、传播介质、存储介质等。在其他实施例中,程序 产品92可以实现为所谓的软件即服务(SaaS),或支持最终用户的其他安 装或通信。
虽然已经具体示出和描述了示例实施例,但是本领域技术人员将理解, 在不脱离所附权利要求涵盖的实施例的范围的情况下,其中可以在形式和 细节上进行各种改变。
Claims (12)
1.一种数据库,包括:
字典,其存储键与数据之间的关联;以及
索引,所述索引中的每个条目包括对应于数据的多个值;
所述索引的给定条目中的值中的每个值包括基于对应数据的数据类型的所述对应数据的相应表示,其中,(i)当所述对应数据的数据类型为特定数据类型中的一个时,所述索引的给定条目中的每个值包括所述对应数据的直接表示,以及(ii)当所述对应数据的数据类型为其他数据类型中的一个时,所述索引的给定条目中的每个值包括所述对应数据的散列,所述散列在所述字典中用作与所述对应数据相关联的键;
其中,给定索引值的第一数量的位表示由所述给定索引值表示的数据的类别;
如果由所述给定索引值的第一数量的位表示的数据的类别为空白类别,则所述给定索引值中的不属于所述第一数量的位的其余位为空白;
如果由所述给定索引值的第一数量的位表示的数据的类别为文字值类别,则所述给定索引值的第二数量的位表示文字值的数据类型,并且所述给定索引值的其余位存储所述数据的文字值,所述其余位为所述给定索引值中的不属于所述第一数量的位或者所述第二数量的位的位;
如果由所述给定索引值的第一数量的位表示的数据的类别为通用唯一标识符UUID类别,则所述给定索引值中的不属于所述第一数量的位的其余位将所述数据存储为UUID;以及
如果由所述给定索引值的第一数量的位表示的数据的类别为字典查找类别,则所述给定索引值中的不属于所述第一数量的位的其余位存储所述数据的散列,所述数据的散列在所述字典中用作与相对应的数据相关联的键。
2.如权利要求1所述的数据库,其中,所述数据库是资源描述框架数据库,并且所述索引的多个值包括对应于主语、谓语以及宾语的三个值。
3.如权利要求1所述的数据库,其中,如果所述数据的类别为所述文字值类别,则所述数据的文字值包括针对整数、双精度、浮点数、八个字符或更少的字符串中的任何一个的对应数据的直接表示。
4.如权利要求1-3中的任一项所述的数据库,其中,如果所述数据的类别为所述文字值类别,则所述给定索引值是128位的,所述第一数量的位是2位,并且所述第二数量的位是62位。
5.一种在数据库中存储数据的计算机实现的方法,所述数据库包括索引和字典,所述方法包括:
在所述字典中存储键与数据之间的关联;以及
在所述索引中存储包括对应于数据的多个值的索引;
所述索引的给定条目中的值中的每个值包括基于对应数据的数据类型的所述对应数据的相应表示,其中,(i)当所述对应数据的数据类型为特定数据类型中的一个时,所述索引的给定条目中的每个值包括所述对应数据的直接表示,以及(ii)当所述对应数据的数据类型为其他数据类型中的一个时,所述索引的给定条目中的每个值包括所述对应数据的散列,所述散列在所述字典中用作与所述对应数据相关联的键;
其中,给定索引值的第一数量的位表示由所述给定索引值表示的数据的类别;
如果由所述给定索引值的第一数量的位表示的数据的类别为空白类别,则所述给定索引值中的不属于所述第一数量的位的其余位为空白;
如果由所述给定索引值的第一数量的位表示的数据的类别为文字值类别,则所述给定索引值的第二数量的位表示文字值的数据类型,并且所述给定索引值的其余位存储所述数据的文字值,所述其余位为所述给定索引值中的不属于所述第一数量的位或者所述第二数量的位的位;
如果由所述给定索引值的第一数量的位表示的数据的类别为通用唯一标识符UUID类别,则所述给定索引值中的不属于所述第一数量的位的其余位将所述数据存储为UUID;以及
如果由所述给定索引值的第一数量的位表示的数据的类别为字典查找类别,则所述给定索引值中的不属于所述第一数量的位的其余位存储所述数据的散列,所述数据的散列在所述字典中用作与相对应的数据相关联的键。
6.如权利要求5所述的方法,其中,所述数据库是资源描述框架数据库,并且所述索引的多个值包括对应于主语、谓语以及宾语的三个值。
7.如权利要求5所述的方法,其中,如果所述数据的类别为所述文字值类别,则所述数据的文字值包括针对整数、双精度、浮点数、八个字符或更少的字符串中的任何一个的对应数据的直接表示。
8.如权利要求5-7中的任一项所述的方法,其中,如果所述数据的类别为所述文字值类别,则所述给定索引值是128位的,所述第一数量的位是2位,并且所述第二数量的位是62位。
9.一种在计算机存储器中对数据进行存储和取回的方法,所述方法包括:
根据索引和字典来配置所述存储器,所述索引中的每个条目包括对应于数据的多个值,并且所述字典存储键与数据之间的关联;
所述索引的给定条目中的值中的每个值包括基于对应数据的数据类型的所述对应数据的相应表示,其中,(i)当所述对应数据的数据类型为特定数据类型中的一个时,所述索引的给定条目中的每个值包括所述对应数据的直接表示,以及(ii)当所述对应数据的数据类型为其他数据类型中的一个时,所述索引的给定条目中的每个值包括所述对应数据的散列,所述散列在所述字典中用作与所述对应数据相关联的键;
其中,给定索引值的第一数量的位表示由所述给定索引值表示的数据的类别;
如果由所述给定索引值的第一数量的位表示的数据的类别为空白类别,则所述给定索引值中的不属于所述第一数量的位的其余位为空白;
如果由所述给定索引值的第一数量的位表示的数据的类别为文字值类别,则所述给定索引值的第二数量的位表示文字值的数据类型,并且所述给定索引值的其余位存储所述数据的文字值,所述其余位为所述给定索引值中的不属于所述第一数量的位或者所述第二数量的位的位;
如果由所述给定索引值的第一数量的位表示的数据的类别为通用唯一标识符UUID类别,则所述给定索引值中的不属于所述第一数量的位的其余位将所述数据存储为UUID;以及
如果由所述给定索引值的第一数量的位表示的数据的类别为字典查找类别,则所述给定索引值中的不属于所述第一数量的位的其余位存储所述数据的散列,所述数据的散列在所述字典中用作与相对应的数据相关联的键。
10.如权利要求9所述的方法,其中,所述索引的多个值包括对应于主语、谓语以及宾语的三个值。
11.如权利要求9所述的方法,其中,如果所述数据的类别为所述文字值类别,则所述数据的文字值包括针对整数、双精度、浮点数、八个字符或更少的字符串中的任何一个的对应数据的直接表示。
12.如权利要求9-11中的任一项所述的方法,其中,如果所述数据的类别为所述文字值类别,则所述给定索引值是128位的,所述第一数量的位是2位,并且所述第二数量的位是62位。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/858,306 US10762294B2 (en) | 2017-12-29 | 2017-12-29 | Universally unique resources with no dictionary management |
US15/858,306 | 2017-12-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110046158A CN110046158A (zh) | 2019-07-23 |
CN110046158B true CN110046158B (zh) | 2024-05-31 |
Family
ID=64661080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811599975.5A Active CN110046158B (zh) | 2017-12-29 | 2018-12-26 | 不利用字典管理的通用唯一资源 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10762294B2 (zh) |
EP (1) | EP3506120B1 (zh) |
JP (1) | JP7403223B2 (zh) |
CN (1) | CN110046158B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1652112A (zh) * | 2005-03-02 | 2005-08-10 | 北京北方烽火科技有限公司 | 一种嵌入式环境下数据字典的实现方法 |
CN101925895A (zh) * | 2007-12-13 | 2010-12-22 | 谷歌公司 | 用于高效传输数据的通用格式 |
CN103353867A (zh) * | 2005-12-29 | 2013-10-16 | 亚马逊科技公司 | 具有网络服务客户接口的分布式存储*** |
CN103617276A (zh) * | 2013-12-09 | 2014-03-05 | 南京大学 | 一种分布式层次化的rdf数据的存储方法 |
CN105630864A (zh) * | 2014-11-25 | 2016-06-01 | Sap欧洲公司 | 存储行标识符值的字典的强制排序 |
CN107229718A (zh) * | 2017-05-31 | 2017-10-03 | 北京京东尚科信息技术有限公司 | 处理报表数据的方法和装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63233431A (ja) * | 1987-03-20 | 1988-09-29 | Fujitsu Ltd | タグ付きデ−タ記憶制御方式 |
US6041345A (en) * | 1996-03-08 | 2000-03-21 | Microsoft Corporation | Active stream format for holding multiple media streams |
US8719250B2 (en) | 2005-04-18 | 2014-05-06 | Oracle International Corporation | Integrating RDF data into a relational database system |
US8458191B2 (en) | 2010-03-15 | 2013-06-04 | International Business Machines Corporation | Method and system to store RDF data in a relational store |
US8848970B2 (en) * | 2011-04-26 | 2014-09-30 | Digimarc Corporation | Salient point-based arrangements |
US9065767B2 (en) * | 2012-04-03 | 2015-06-23 | Cisco Technology, Inc. | System and method for reducing netflow traffic in a network environment |
US20140156587A1 (en) * | 2012-06-19 | 2014-06-05 | Ontotext AD | Rdf data warehouse via partitioning and replication |
US10474652B2 (en) * | 2013-03-14 | 2019-11-12 | Inpixon | Optimizing wide data-type storage and analysis of data in a column store database |
WO2014201047A1 (en) * | 2013-06-11 | 2014-12-18 | InfiniteBio | Fast, scalable dictionary construction and maintenance |
JP6188607B2 (ja) * | 2014-03-10 | 2017-08-30 | 株式会社日立製作所 | インデクスツリーの探索方法及び計算機 |
US9674644B2 (en) * | 2014-10-14 | 2017-06-06 | Avago Technologies General Ip (Singapore) Pte. Ltd | Method for determining directionality using bluetooth low energy communications |
US10142227B2 (en) * | 2016-01-28 | 2018-11-27 | Cisco Technology, Inc. | Bit indexed explicit replication for deterministic network data plane |
US10194477B2 (en) * | 2016-05-24 | 2019-01-29 | Lg Electronics Inc. | Method and apparatus for controlling a device using bluetooth technology |
CA3026281A1 (en) * | 2016-06-06 | 2017-12-14 | Agilepq, Inc. | Data conversion systems and methods |
-
2017
- 2017-12-29 US US15/858,306 patent/US10762294B2/en active Active
-
2018
- 2018-12-06 EP EP18210734.2A patent/EP3506120B1/en active Active
- 2018-12-26 CN CN201811599975.5A patent/CN110046158B/zh active Active
- 2018-12-27 JP JP2018246026A patent/JP7403223B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1652112A (zh) * | 2005-03-02 | 2005-08-10 | 北京北方烽火科技有限公司 | 一种嵌入式环境下数据字典的实现方法 |
CN103353867A (zh) * | 2005-12-29 | 2013-10-16 | 亚马逊科技公司 | 具有网络服务客户接口的分布式存储*** |
CN101925895A (zh) * | 2007-12-13 | 2010-12-22 | 谷歌公司 | 用于高效传输数据的通用格式 |
CN103617276A (zh) * | 2013-12-09 | 2014-03-05 | 南京大学 | 一种分布式层次化的rdf数据的存储方法 |
CN105630864A (zh) * | 2014-11-25 | 2016-06-01 | Sap欧洲公司 | 存储行标识符值的字典的强制排序 |
CN107229718A (zh) * | 2017-05-31 | 2017-10-03 | 北京京东尚科信息技术有限公司 | 处理报表数据的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US10762294B2 (en) | 2020-09-01 |
JP2019121395A (ja) | 2019-07-22 |
US20190205380A1 (en) | 2019-07-04 |
JP7403223B2 (ja) | 2023-12-22 |
EP3506120B1 (en) | 2022-11-09 |
EP3506120A1 (en) | 2019-07-03 |
CN110046158A (zh) | 2019-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11392550B2 (en) | System and method for investigating large amounts of data | |
US7472346B2 (en) | Multidimensional XBRL engine | |
CN107092666B (zh) | 用于网络的***、方法以及存储介质 | |
US8572110B2 (en) | Textual search for numerical properties | |
US6101556A (en) | Method for content-based dynamic formatting for interoperation of computing and EDI systems | |
US9886783B2 (en) | Indexing and querying spatial graphs | |
US9703967B1 (en) | System and method to anonymize data transmitted to a destination computing device | |
US20170147652A1 (en) | Search servers, end devices, and search methods for use in a distributed network | |
KR20210048425A (ko) | 데이터 매핑을 위한 방법, 장치 및 시스템 | |
CN113190517B (zh) | 数据集成方法、装置、电子设备和计算机可读介质 | |
CN111984745B (zh) | 数据库字段动态扩展方法、装置、设备及存储介质 | |
US11461551B1 (en) | Secure word search | |
JP2017513252A (ja) | 最適化されたデータ凝縮器及び方法 | |
US20100010973A1 (en) | Vector Space Lightweight Directory Access Protocol Data Search | |
CN110046158B (zh) | 不利用字典管理的通用唯一资源 | |
WO2023164294A1 (en) | Query splitter for an inverted index datastore | |
CN113393288B (zh) | 订单处理信息生成方法、装置、设备和计算机可读介质 | |
US11550777B2 (en) | Determining metadata of a dataset | |
CN115795187A (zh) | 资源访问方法、装置及设备 | |
CN112732789A (zh) | 基于区块链的可搜索加密方法和电子设备 | |
El Mokhtar et al. | Existence of Multiple Positive Solutions for Brezis–Nirenberg‐Type Problems Involving Singular Nonlinearities | |
CN113722334B (zh) | 数据处理的方法、装置、电子设备及介质 | |
CN114330758B (zh) | 基于联邦学习的数据处理方法、装置及存储介质 | |
US7386570B2 (en) | Method, system and program product for providing high performance data lookup | |
WO2021207829A1 (en) | Methods and systems for searching eventually-consistent databases |
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 |