CN110096274B - 分布式内存列式数据库的生成代码复用匹配管理方法 - Google Patents
分布式内存列式数据库的生成代码复用匹配管理方法 Download PDFInfo
- Publication number
- CN110096274B CN110096274B CN201910394841.8A CN201910394841A CN110096274B CN 110096274 B CN110096274 B CN 110096274B CN 201910394841 A CN201910394841 A CN 201910394841A CN 110096274 B CN110096274 B CN 110096274B
- Authority
- CN
- China
- Prior art keywords
- code
- matching
- multiplexing
- generated
- codes
- 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
Images
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
- G06F16/221—Column-oriented storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了分布式内存列式数据库的生成代码复用匹配管理方法,解决了现有的代码生成和复用方法无法适应表达式的各种复杂情况,对一复杂的等价表达式的匹配和复用,其无法满足情况;并且,未提出关于Pipeline代码的匹配方法的问题。本发明包括创建映射关系,包括:对数据库中每个生成的代码请求,在缓存复用管理器中创建KV映射关系,KV映射关系表示为<属性,代码标识>;匹配等价性,包括:从缓存复用管理器中的KV映射关系读取属性,对待生成计划代码进行功能等价性匹配,若匹配成功则实现代码缓存复用;若匹配失败则执行创建映射关系。本发明通过两种类型的代码复用匹配方法,减少了重复生成代码导致的代码生成和编译成可执行代码时间过长问题。
Description
技术领域
本发明涉及分布式内存列式数据库的编译执行方式下匹配复用以及管理动态生成的代码的方法技术领域,具体涉及分布式内存列式数据库的生成代码复用匹配管理方法。
背景技术
在经典的数据库火山模型中,执行流程从语法树根节点开始,递归调用子节点处理函数进行处理,到达叶节点后取出相应表的一行数据进行处理并依次返回。在每次递归调用流程中只对一行数据进行处理导致了很差的代码局部性,包括过多的函数调用;还导致了很差的数据局部性,因为每次读取只需要一部分数据,进而使得CPU Cache频繁换入换出。因而火山模型极度不适合海量数据的分析处理。
在海量数据分析处理系统中(包括Spark SQL等),普遍使用的是向量化(Vectorization)模型,即一种批处理模型。在向量化模型中,每次取出一列或几列进行批处理运算,再对结果与其他列进行运算;其整个流程用有向无环图DAG表示,则一次批处理运算代表一个节点,完成该节点运算后将结果推送到其他节点。这种模型具有很好的代码局部性和数据局部性。但其需要多次大量地将中间结果写入内存(即物化)。
于是,一些数据库,如Hyper,提出了Pipeline的执行模型,将多次批处理运算融合到一个Pipeline计算中。在能够融合的多次批处理运算形成的Pipeline中,在单个函数中,每次对单个元组进行计算并传递,最终能减少物化。
但Pipeline执行方式的效率提升依赖于:
1、需要能够根据执行计划动态生成合适的Pipeline代码,以合并对多个批处理的计算,因为难以在开发时即抽象出各种满足所有功能需求的算子;
2、需要将处理代码以及其调用的函数尽可能上提或内联,减少函数调用,提升代码局部性;同时在运行时生成执行代码能利用运行时信息提升代码质量。
目前,现有的代码生成和复用方法使用了LLVM对表达式,如聚合函数、排序函数、数据预取函数等进行生成、缓存,并在下次使用时进行查询,其将函数表示为一定的格式字符串以代表函数的功能,如int型的相加表示为类似“INT_PLUS_INT”这样的字符串。但现有的代码生成和复用方法存在如下的缺点:该表示和匹配方法十分粗略,无法适应表达式的各种复杂情况,如对一复杂的等价表达式的匹配和复用,其无法满足情况;并且,未提出关于Pipeline代码的匹配方法。
发明内容
本发明所要解决的技术问题是:现有的代码生成和复用方法十分粗略,无法适应表达式的各种复杂情况,对一复杂的等价表达式的匹配和复用,其无法满足情况;并且,未提出关于Pipeline代码的匹配方法。本发明提供了解决上述问题的分布式内存列式数据库的生成代码复用匹配管理方法,实现对生成代码的映射关系管理方法,包括创建多个属性、属性具体的内容,给出了对Pipeline生成代码的等价性比较方法和对表达式代码的等价性比较方法,以及对含常量表达式进行抽象再生成代码的方法。
本发明通过下述技术方案实现:
分布式内存列式数据库的生成代码复用匹配管理方法,包括:
创建映射关系,包括:
对数据库中每个生成的代码请求,在缓存复用管理器中创建KV映射关系,KV映射关系表示为<属性,代码标识>;
匹配等价性,包括:
从缓存复用管理器中的KV映射关系读取属性,对待生成计划代码进行功能等价性匹配,若匹配成功,则实现代码缓存复用;若匹配失败,则执行创建映射关系。
本发明的工作原理是:基于现有的代码生成和复用方法十分粗略,无法适应表达式的各种复杂情况,对一复杂的等价表达式的匹配和复用,其无法满足情况;并且,未提出关于Pipeline代码的匹配方法。本发明通过上述方案提出一种复用LLVM生成的代码的匹配方法,以及对生成代码的管理方法,首先对每个生成的代码,在缓存复用管理器中创建KV(key-value)映射关系,以便于进行匹配和查找,KV映射关系表示为<属性,代码标识>;然后,从缓存复用管理器中的KV映射关系读取属性,对待生成计划代码进行功能等价性匹配,若匹配成功,检查新增等价映射,实现代码缓存复用;若匹配失败,则返回执行创建新的映射关系;这里的功能等价性匹配不同于相等匹配,进而能够识别从功能上兼容的代码。
进一步地,KV映射关系表示为<属性,代码标识>,基于可能存在多个不同的KV对,其代码标识相同,即多个属性对应同样的代码,因此,属性与代码标识之间是多对一的对应关系。
其中:针对生成的代码包括Pipeline代码和表达式代码如下两种:
进一步地,针对生成的代码为Pipeline代码,Pipeline代码的<属性,代码标识>映射的属性值包括的内容有(Pipeline长度,各Pipeline节点的功能);
匹配等价性,从缓存复用管理器中的KV映射关系读取属性,对待生成计划代码进行功能等价性匹配,其中,待生成计划代码的属性表示为(Pipeline长度1,各Pipeline节点功能1),已有的代码属性表示为(Pipeline长度2,各Pipeline节点功能2);
(1)当Pipeline长度1<=Pipeline长度2,将Pipeline节点功能1组成的功能节点序列1中的每个节点放置到Pipeline节点功能2组成的功能节点序列2中,如果放置后,功能节点序列1仍然保持原有的相对序列则匹配等价性成功;因为对于Pipeline功能序列2中未匹配的点,可以置空并在运行时直接跳过。
(2)如果放置结果中相对顺序不严格保持原有顺序,则判断该顺序是否仍能保持正确性,对于连续相同功能的代码节点进行顺序互换。比如,连续的filter节点可以进行顺序互换而不影响正确性。
进一步地,针对生成的代码为表达式代码,表达式代码的<属性,代码标识>映射的属性为表达式树形式或者可格式化为字符串形式。
(1)在表达式生成时,通过逻辑转换,创建对应代码的多个等价表达式值。比如,“(int+int)*long”等价于“int*long+int*long”。
(2)对表达式含常量的,可继续创建生成带常量版和不带常量版,比如针对表达式“int+1024”生成代码后,可检测并另外生成”int+int”的版本并另外创建<属性,代码标识>映射关系。
匹配等价性,(1)针对待生成表达式不带常量的,进行相等匹配,这是由于在加入映射关系时已经添加了各种等价性的属性,因而此处的匹配数据相等匹配;(2)针对待生成表达式带常量的,则该常量位置既可以用相应类型的变量匹配也可以用相等的常量进行匹配。
其中:LLVM是一个编译器后端框架,提供了便捷地生成LLVM IR语言代码的方法以及将LLVM IR语言代码编译成可执行的工具。从LLVM衍生出的C++编译器clang将C++代码编译成IR代码,进而通过LLVM工具编译成可执行文件。
LLVM提供C/C++库以方便地生成LLVM IR语言组成的代码,如函数等。LLVM IR是易读的,类似于汇编但其抽象性隐藏了底层具体硬件特性;LLVM IR也是跨平台的,即同一份LLVM IR可在不同CPU的机器甚至GPU上执行。LLVM提供工具将IR编译成适应特定机器上的可执行代码,也可在按照解释执行方式执行。
在测试中发现LLVM IR代码编译时间相对运算时间过长,甚至在部分数据集上计算时超过实际运算时间。
本发明具有如下的优点和有益效果:
1、本发明提出了在分布式内存数据库编译执行方式下对生成的代码的复用匹配和元信息管理方法,以减少重复生成代码导致的代码生成和编译成可执行代码的时间过长问题;
2、本发明提出了两种类型的代码复用匹配方法,包括Pipeline代码和表达式计算的代码匹配方法,Pipeline执行方式是新一代的执行方式,而表达式计算是十分常用的且涵盖范围广、变化多的计算,因而对其进行缓存复用能减少生成编译次数与时间,同时发明中提出了每个Pipeline代码和表达式计算代码能够涵盖相近的一类运算,因而可以进一步复用。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1为本发明的生成代码复用匹配方法流程图。
图2为本发明实施例1的Pipeline匹配方法图。
图3为本发明实施例2的等价表达式示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例1
如图1所示,分布式内存列式数据库的生成代码复用匹配管理方法,包括:
创建映射关系,包括:
对数据库中每个生成的代码请求,在缓存复用管理器中创建KV映射关系,KV映射关系表示为<属性,代码标识>;
匹配等价性,包括:
从缓存复用管理器中的KV映射关系读取属性,对待生成计划代码进行功能等价性匹配,若匹配成功,则实现代码缓存复用;若匹配失败,则执行创建映射关系。
其中:KV映射关系表示为<属性,代码标识>,基于可能存在多个不同的KV对,其代码标识相同,即多个属性对应同样的代码,因此,属性与代码标识之间是多对一的对应关系。
图1为本发明的生成代码复用匹配方法流程图,针对代码匹配请求任务,如下给出一个完整的流程,首先进行功能等价性匹配,如果匹配成功,检查新增KV等价映射,实现代码缓存复用;如果匹配失败,执行生成代码请求,创建KV映射关系,并创建KV等价映射关系。其中,映射关系KV表示为<属性,代码标识>,KV等价映射关系表示为<等价属性,代码标识>。
如图2为Pipeline代码匹配等价性,虽然待生成的Pipeline长度小于已有Pipeline,各节点能放入已有Pipeline中,并且虽然顺序不完全相同,但连续的filter间可进行交换而不影响正确性,而此处filter_float无法交换至join_left前,因为join操作相当于barrier,禁止进行交换。
本实施例为Pipeline代码复用,针对生成的代码为Pipeline代码,Pipeline代码的<属性,代码标识>映射的属性值包括的内容有(Pipeline长度,各Pipeline节点的功能);
匹配等价性,从缓存复用管理器中的KV映射关系读取属性,对待生成计划代码进行功能等价性匹配,其中,待生成计划代码的属性表示为(Pipeline长度1,各Pipeline节点功能1),已有的代码属性表示为(Pipeline长度2,各Pipeline节点功能2);
(1)当Pipeline长度1<=Pipeline长度2,将Pipeline节点功能1组成的功能节点序列1中的每个节点放置到Pipeline节点功能2组成的功能节点序列2中,如果放置后,功能节点序列1仍然保持原有的相对序列则匹配等价性成功;因为对于Pipeline功能序列2中未匹配的点,可以置空并在运行时直接跳过。
(2)如果放置结果中相对顺序不严格保持原有顺序,则判断该顺序是否仍能保持正确性,对于连续相同功能的代码节点进行顺序互换。比如,连续的filter节点可以进行顺序互换而不影响正确性。
如图2所示,首先上层提出了生成代码的请求,该代码的功能需要对表A的a列(int整型类型)进行filter操作,接着对A表的b列(string字符串类型)进行filer操作,接着对A表的c列(double浮点类型)进行filter操作,最后A表d列(int整型类型)生成哈希表。其中,表A如下:
表A
由于系统中不存在该功能代码因而会生成IR和可执行代码(暂时称作代码1),并在缓存复用管理器内部使用的元数据管理器的映射对中形成<<4,filter_int,filter_string,filter_double,join_left_int>,代码1>,其中,缓存复用管理器需要管理相关元数据信息,因而其内部使用元数据管理器进行管理。
当下次有相同代码生成请求时候即可直接通过如上映射关系查找并返回代码1。此时有相似的生成代码需求,其功能为先对B表x列(string字符串类型)进行filter操作,接着对B表y列(int整型类型)进行filer操作,最后最B表z列(int整型类型)生成哈希表。该方法的属性可以表示为<3,filter_string,filter_int,join_left_int>,经过逻辑正确性交换后为<3,filter_int,filter_string,join_left_int>,再经过插入不影响正确性的空值后为<4,filter_int,filter_string,null,join_left_int>。最终该属性能够和已有的<<4,filter_int,filter_string,filter_double,join_left_int>,代码1>中的属性进行匹配并返回代码1以完成该功能。在利用代码1完成后一个功能的计算时,只需要将传入filter_doulbe参数置空则可跳过其计算以完成后续的功能。其中,表B如下:
表B
实施例2
如图3所示,本实施例与实施例1的区别在于,针对生成的代码为表达式代码,表达式代码的<属性,代码标识>映射的属性为表达式树形式或者可格式化为字符串形式。
(1)在表达式生成时,通过逻辑转换,创建对应代码的多个等价表达式值。比如,“(int+int)*long”等价于“int*long+int*long”。
(2)对表达式含常量的,可继续创建生成带常量版和不带常量版,比如针对表达式“int+1024”生成代码后,可检测并另外生成”int+int”的版本并另外创建<属性,代码标识>映射关系。
匹配等价性,(1)针对待生成表达式不带常量的,进行相等匹配,这是由于在加入映射关系时已经添加了各种等价性的属性,因而此处的匹配数据相等匹配;(2)针对待生成表达式带常量的,则该常量位置既可以用相应类型的变量匹配也可以用相等的常量进行匹配。
如图3所示,首先上层提出生成表达式代码的计算请求,该代码的功能是需要对a变量(int整型类型)和b变量(long类型)相乘,对c变量(float类型)和d变量(long类型)相乘,最后对两者结果相加。
由于系统中不存在该表达式计算代码,因而会生成代码2,并在缓存复用管理器内部使用的元数据管理器中形成映射对<<“(int*long)+(float*long)”>,代码2>。接着再经过等价性演绎产生<<“(int+float)*long”>,代码2>,还可经过类型兼容性演绎产生<<“(short+float)*int”>,代码2>等。
当下次有相同的表达式计算功能请求时则直接返回代码2。此时有相似的表达式计算代码请求,其功能为对变量x(int型)和变量y(long型)相加之后再和变量z(long型)相乘。则可通过代码2进行该计算。
本发明提出了在分布式内存数据库编译执行方式下对生成的代码的复用匹配和元信息管理方法,以减少重复生成代码导致的代码生成和编译成可执行代码的时间过长问题;本发明具体给出两种类型的代码复用匹配方法,包括Pipeline代码和表达式计算的代码匹配方法,Pipeline执行方式是新一代的执行方式,而表达式计算是十分常用的且涵盖范围广、变化多的计算,因而对其进行缓存复用能减少生成编译次数与时间,同时发明中提出了每个Pipeline代码和表达式计算代码能够涵盖相近的一类运算,因而可以进一步复用。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.分布式内存列式数据库的生成代码复用匹配管理方法,其特征在于,包括:
创建映射关系,包括:
对数据库中每个生成的代码请求,在缓存复用管理器中创建KV映射关系,KV映射关系表示为<属性,代码标识>;
匹配等价性,包括:
从缓存复用管理器中的KV映射关系读取属性,对待生成计划代码进行功能等价性匹配,若匹配成功,则实现代码缓存复用;若匹配失败,则执行创建映射关系;
创建映射关系,对数据库中每个生成的代码请求,在缓存复用管理器中创建KV映射关系,KV映射关系表示为<属性,代码标识>,其中,生成的代码为Pipeline代码,Pipeline代码的<属性,代码标识>映射的属性值包括的内容有Pipeline长度、各Pipeline节点的功能;
匹配等价性,从缓存复用管理器中的KV映射关系读取属性,对待生成计划代码进行功能等价性匹配,其中,待生成计划代码的属性表示为<Pipeline长度1,各Pipeline节点功能1>,已有的代码属性表示为<Pipeline长度2,各Pipeline节点功能2>;
其中,功能等价性匹配,包括:
当Pipeline长度1<=Pipeline长度2,将Pipeline节点功能1组成的功能节点序列1中的每个节点放置到Pipeline节点功能2组成的功能节点序列2中,对于Pipeline功能序列2中未匹配的点,进行置空操作,如果放置后,功能节点序列1仍然保持原有的相对序列则匹配等价性成功;
如果放置结果中相对顺序不严格保持原有顺序,则判断该顺序是否仍能保持正确性,对于连续相同功能的代码节点进行顺序互换。
2.根据权利要求1所述的分布式内存列式数据库的生成代码复用匹配管理方法,其特征在于,创建映射关系,对数据库中每个生成的代码请求,在缓存复用管理器中创建KV映射关系,KV映射关系表示为<属性,代码标识>,其中,生成的代码为表达式代码,表达式代码的<属性,代码标识>映射的属性为表达式树形式或者格式化为字符串形式。
3.根据权利要求2所述的分布式内存列式数据库的生成代码复用匹配管理方法,其特征在于,表达式代码的<属性,代码标识>映射的属性为表达式树形式或者格式化为字符串形式,在表达式生成时,通过逻辑转换,创建对应代码的多个等价表达式值。
4.根据权利要求2所述的分布式内存列式数据库的生成代码复用匹配管理方法,其特征在于,表达式代码的<属性,代码标识>映射的属性为表达式树形式或者格式化为字符串形式,对表达式含常量的,继续创建生成带常量版和不带常量版。
5.根据权利要求3或者4所述的分布式内存列式数据库的生成代码复用匹配管理方法,其特征在于,针对待生成表达式不带常量的,进行相等匹配。
6.根据权利要求3或者4所述的分布式内存列式数据库的生成代码复用匹配管理方法,其特征在于,针对待生成表达式带常量的,进行相应类型的变量匹配或者相等的常量匹配。
7.根据权利要求1所述的分布式内存列式数据库的生成代码复用匹配管理方法,其特征在于,KV映射关系表示为<属性,代码标识>,其中,属性与代码标识之间是多对一的对应关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910394841.8A CN110096274B (zh) | 2019-05-13 | 2019-05-13 | 分布式内存列式数据库的生成代码复用匹配管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910394841.8A CN110096274B (zh) | 2019-05-13 | 2019-05-13 | 分布式内存列式数据库的生成代码复用匹配管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110096274A CN110096274A (zh) | 2019-08-06 |
CN110096274B true CN110096274B (zh) | 2021-04-02 |
Family
ID=67447811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910394841.8A Active CN110096274B (zh) | 2019-05-13 | 2019-05-13 | 分布式内存列式数据库的生成代码复用匹配管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110096274B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102663117A (zh) * | 2012-04-18 | 2012-09-12 | 中国人民大学 | 面向数据库与Hadoop混合平台的OLAP查询处理方法 |
CN108605010A (zh) * | 2015-10-28 | 2018-09-28 | 分形工业有限公司 | 利用分布式计算图快速预测分析超大型数据集 |
US10282821B1 (en) * | 2015-08-27 | 2019-05-07 | Descartes Labs, Inc. | Observational data processing and analysis |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10733099B2 (en) * | 2015-12-14 | 2020-08-04 | Arizona Board Of Regents On Behalf Of The University Of Arizona | Broadening field specialization |
CN109725893A (zh) * | 2018-05-17 | 2019-05-07 | 平安普惠企业管理有限公司 | 代码生成方法、设备、装置及计算机可读存储介质 |
CN109033292A (zh) * | 2018-07-13 | 2018-12-18 | 南京邮电大学 | 一种数据库分布式缓存系统及方法 |
-
2019
- 2019-05-13 CN CN201910394841.8A patent/CN110096274B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102663117A (zh) * | 2012-04-18 | 2012-09-12 | 中国人民大学 | 面向数据库与Hadoop混合平台的OLAP查询处理方法 |
US10282821B1 (en) * | 2015-08-27 | 2019-05-07 | Descartes Labs, Inc. | Observational data processing and analysis |
CN108605010A (zh) * | 2015-10-28 | 2018-09-28 | 分形工业有限公司 | 利用分布式计算图快速预测分析超大型数据集 |
Also Published As
Publication number | Publication date |
---|---|
CN110096274A (zh) | 2019-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11023443B2 (en) | Collaborative planning for accelerating analytic queries | |
CN106407302B (zh) | 支持通过简单sql调用中间件数据库特有功能的方法 | |
CN110019314B (zh) | 基于数据项分析的动态数据封装方法、客户端和服务端 | |
CN109710220B (zh) | 关系型数据库查询方法、装置、设备及存储介质 | |
CN115543402B (zh) | 一种基于代码提交的软件知识图谱增量更新方法 | |
KR102172255B1 (ko) | 분산형 컴퓨팅 태스크를 실행하기 위한 방법 및 장치 | |
JP2018510445A (ja) | プログラム性能を向上させる領域特化システムおよび方法 | |
CN109408591B (zh) | 支持sql驱动的ai与特征工程的决策型分布式数据库系统 | |
CN111367893A (zh) | 数据库版本迭代的方法及装置 | |
CN109885585A (zh) | 支持存储过程、触发器与视图的分布式数据库系统和方法 | |
Gao et al. | GLog: A high level graph analysis system using MapReduce | |
Fegaras et al. | Compile-time code generation for embedded data-intensive query languages | |
Vakharia et al. | Shared foundations: Modernizing meta’s data lakehouse | |
CN114115839A (zh) | Orm代码处理方法、装置、电子设备以及可读存储介质 | |
US8914782B2 (en) | Optimization of declarative queries | |
CN117421302A (zh) | 一种数据处理方法及相关设备 | |
CN110096274B (zh) | 分布式内存列式数据库的生成代码复用匹配管理方法 | |
CN115469860B (zh) | 基于指令集的需求到软件领域模型的自动生成方法及系统 | |
CN115443456A (zh) | 关系数据库中的迭代查询构造处理 | |
WO2023123111A1 (zh) | 编译方法以及用于编译的装置 | |
CN109918074A (zh) | 编译链接优化方法 | |
Asma et al. | NPCS: Native Provenance Computation for SPARQL | |
US20220075778A1 (en) | Transforming operations of a computer program for execution at a database | |
US20120330878A1 (en) | Conventions for inferring data models | |
KR100505111B1 (ko) | 데이터베이스 연산용 프로그램 소스 생성 장치 및 그방법과 이를 이용한 컴퓨터 프로그램 제품 |
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 |