CN107229723B - 指令处理方法及指令处理装置 - Google Patents
指令处理方法及指令处理装置 Download PDFInfo
- Publication number
- CN107229723B CN107229723B CN201710412635.6A CN201710412635A CN107229723B CN 107229723 B CN107229723 B CN 107229723B CN 201710412635 A CN201710412635 A CN 201710412635A CN 107229723 B CN107229723 B CN 107229723B
- Authority
- CN
- China
- Prior art keywords
- instruction
- data processing
- protocol
- processing instruction
- mongodb
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 46
- 238000006243 chemical reaction Methods 0.000 claims abstract description 23
- 238000000034 method Methods 0.000 claims description 23
- 238000004458 analytical method Methods 0.000 claims description 19
- 230000009466 transformation Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 15
- 241001178520 Stomatepia mongo Species 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000002194 synthesizing effect Effects 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- LTMHDMANZUZIPE-PUGKRICDSA-N digoxin Chemical compound C1[C@H](O)[C@H](O)[C@@H](C)O[C@H]1O[C@@H]1[C@@H](C)O[C@@H](O[C@@H]2[C@H](O[C@@H](O[C@@H]3C[C@@H]4[C@]([C@@H]5[C@H]([C@]6(CC[C@@H]([C@@]6(C)[C@H](O)C5)C=5COC(=O)C=5)O)CC4)(C)CC3)C[C@@H]2O)C)C[C@@H]1O LTMHDMANZUZIPE-PUGKRICDSA-N 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
-
- 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/18—File system types
- G06F16/182—Distributed file systems
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
Abstract
本发明提供一种指令处理方法,其包括:接收数据处理指令,并确定数据处理指令的指令接收端口;根据指令接收端口,确定数据处理指令的协议类型;如数据处理指令的协议类型为MongoDB协议,则执行数据处理指令;如数据处理指令的协议类型不是MongoDB协议,则使用预设规则将数据处理指令转换为MongoDB协议类型的数据处理指令,并执行转换后的数据处理指令。本发明还提供一种指令处理装置,本发明的指令处理方法及指令处理装置可兼容不同类型的数据处理指令;由于不需要用户对数据处理指令进行协议类型转换,因此也简化了数据处理指令的生成流程。
Description
技术领域
本发明涉及数据处理领域,特别是涉及一种指令处理方法及指令处理装置。
背景技术
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。其支持的数据结构非常松散,因此可以存储比较复杂的数据类型。
DynamoDB是亚马逊的键/值模式的数据存储平台,由于其可用性和扩展性很好,读写访问中99.9%的响应时间都在300ms内,同样受到广大用户的喜爱。
但是现有的MongoDB并无法对DynamoDB对应的DynamoDB协议的指令进行兼容,即MongoDB接收到DynamoDB协议的数据处理指令,并无法对该数据处理指令进行响应,这样导致现有的MongoDB数据库对不同类型的数据处理指令的兼容性较差。如用户需要向MongoDB数据库发送数据处理指令,需要自行将数据处理指令转换为MongoDB协议的数据处理指令,使得用户的数据处理指令的生成流程较为复杂。
发明内容
本发明实施例提供一种兼容性较高,且对应的数据处理指令生成流程较为简单的指令处理方法及指令处理装置;以解决现有的指令处理方法及指令处理装置对不同类型的数据处理指令的兼容性较差,以及对应的数据处理指令的生成流程较为复杂的技术问题。
本发明实施例提供一种指令处理方法,其包括:
接收数据处理指令,并确定所述数据处理指令的指令接收端口;
根据所述指令接收端口,确定所述数据处理指令的协议类型;
如所述数据处理指令的协议类型为MongoDB协议,则执行所述数据处理指令;以及
如所述数据处理指令的协议类型不是MongoDB协议,则使用预设规则将所述数据处理指令转换为MongoDB协议类型的数据处理指令,并执行转换后的数据处理指令。
本发明实施例还提供一种指令处理装置,其包括:
指令接收模块,用于接收数据处理指令,并确定所述数据处理指令的指令接收端口;
指令类型确定模块,用于根据所述指令接收端口,确定所述数据处理指令的协议类型;
第一指令执行模块,用于如所述数据处理指令的协议类型为MongoDB协议,则执行所述数据处理指令;以及
第二指令执行模块,用于如所述数据处理指令的协议类型不是MongoDB协议,则使用预设规则将所述数据处理指令转换为MongoDB协议类型的数据处理指令,并执行转换后的数据处理指令。
相较于现有技术,本发明的指令处理方法及指令处理装置通过对非MongoDB协议的数据处理指令进行对应的协议类型转换,使得本发明的指令处理方法及指令处理装置可兼容不同类型的数据处理指令;由于不需要用户对数据处理指令进行协议类型转换,因此也简化了数据处理指令的生成流程;解决了现有的指令处理方法及指令处理装置对不同类型的数据处理指令的兼容性较差,以及对应的数据处理指令的生成流程较为复杂的技术问题。
附图说明
图1为本发明的指令处理方法的第一优选实施例的流程图;
图2为本发明的指令处理方法的第二优选实施例的流程图;
图3为本发明的指令处理方法的第二优选实施例的步骤S207的流程图;
图4为本发明的指令处理方法的第二优选实施例的数据处理指令对应的抽象语法树的结构示意图;
图5为本发明的指令处理装置的第一优选实施例的结构示意图;
图6为本发明的指令处理装置的第二优选实施例的结构示意图;
图7为本发明的指令处理装置的第二优选实施例的第二指令执行模块的结构示意图;
图8为本发明的指令处理方法及指令处理装置的指令处理示意图;
图9为本发明的指令处理装置所在的电子设备的工作环境结构示意图。
具体实施方式
请参照图式,其中相同的组件符号代表相同的组件,本发明的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本发明具体实施例,其不应被视为限制本发明未在此详述的其它具体实施例。
在以下的说明中,本发明的具体实施例将参考由一部或多部计算机所执行之作业的步骤及符号来说明,除非另有述明。因此,其将可了解到这些步骤及操作,其中有数次提到为由计算机执行,包括了由代表了以一结构化型式中的数据之电子信号的计算机处理单元所操纵。此操纵转换该数据或将其维持在该计算机之内存系统中的位置处,其可重新配置或另外以本领域技术人员所熟知的方式来改变该计算机之运作。该数据所维持的数据结构为该内存之实体位置,其具有由该数据格式所定义的特定特性。但是,本发明原理以上述文字来说明,其并不代表为一种限制,本领域技术人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。
本发明的指令处理方法及指令处理装置可设置存储有云数据,并可对各种外部数据处理指令进行处理的电子设备中。该电子设备包括但不限于可穿戴设备、头戴设备、医疗健康平台、个人计算机、服务器计算机、手持式或膝上型设备、移动设备(比如移动电话、个人数字助理(PDA)、媒体播放器等等)、多处理器系统、消费型电子设备、小型计算机、大型计算机、包括上述任意系统或设备的分布式计算环境,等等。该电子设备优选为基于分布式文件存储的MongoDB数据库。本发明的指令处理方法以及指令处理装置通过对非MongoDB协议的数据处理指令进行对应的协议类型转换,使得该电子设备可兼容不同类型的数据处理指令,有效的解决了现有的指令处理方法及指令处理装置对不同类型的数据处理指令的兼容性较差,以及对应的数据处理指令的生成流程较为复杂的技术问题。
请参照图1,图1为本发明的指令处理方法的第一优选实施例的流程图。本优选实施例的指令处理方法可使用上述的电子设备进行实施。本优选实施例的指令处理方法包括:
步骤S101,接收数据处理指令,并确定数据处理指令的指令接收端口;
步骤S102,根据指令接收端口,确定数据处理指令的协议类型;
步骤S103,判断数据处理指令的协议类型是否为MongoDB协议,如为MongoDB协议,则转到步骤S104;如不是MongoDB协议,则转到步骤S105;
步骤S104,执行数据处理指令;
步骤S105,使用预设规则将数据处理指令转换为MongoDB协议类型的数据处理指令,并执行转换后的数据处理指令。
下面详细说明本优选实施例的指令处理方法的各步骤的具体流程。
在步骤S101中,指令处理装置接收用户的数据处理指令,该数据处理指令为对指令处理装置对应的数据库中的数据进行处理,如查找、排序等处理的指令。
由于数据处理指令可能具有不同协议类型,如MongoDB协议类型以及DynamoDB协议类型等。指令处理装置会预先设定好不同的指令接收端口来接收对应协议类型的数据处理指令。如使用6554端口接收MongoDB协议类型的数据处理指令,使用6555端口接收DynamoDB协议类型的数据处理指令等。
因此随后指令处理装置会根据预设设定确定接收到的数据处理指令的指令接收端口。随后转到步骤S102。
在步骤S102中,指令处理装置根据步骤S101确定的指令接收端口以及预设规则,确定该指令接收端口对应的数据处理指令的协议类型。随后转到步骤S103。
在步骤S103中,指令处理装置判断步骤S102确定的数据处理指令的协议类型是否为MongoDB协议,如为MongoDB协议,则转到步骤S104;如不是MongoDB协议,则转到步骤S105。
在步骤S104中,如数据处理指令的协议类型为MongoDB协议,由于本优选实施例的指令处理装置的数据库对应的是MongoDB数据库,因此指令处理装置可直接执行该数据处理指令。
在步骤S105中,如数据处理指令的协议类型不是MongoDB协议,则指令处理装置可使用预设规则将步骤S101接收到的数据处理指令转换为MongoDB协议类型的数据处理指令。这里的预设规则为根据用户发送的数据处理指令的协议类型预先设置的转换规则。最后指令处理装置可直接执行转换后的数据处理指令。
这样即完成了本优选实施例的指令处理方法的数据处理指令执行流程。
本优选实施例的指令处理方法通过对非MongoDB协议的数据处理指令进行对应的协议类型转换,使得对应的指令处理装置以及数据库可兼容不同类型的数据处理指令;由于不需要用户对数据处理指令进行协议类型转换,因此也简化了数据处理指令的生成流程。
请参照图2,图2为本发明的指令处理方法的第二优选实施例的流程图。本优选实施例的指令处理方法可使用上述的电子设备进行实施。本优选实施例的指令处理方法包括:
步骤S201,接收端口设置指令;
步骤S202,根据端口设置指令,设置不同协议类型的数据处理指令的指令接收端口;
步骤S203,接收数据处理指令,并确定数据处理指令的指令接收端口;
步骤S204,根据指令接收端口,确定数据处理指令的协议类型;
步骤S205,判断数据处理指令的协议类型是否为MongoDB协议,如为MongoDB协议,则转到步骤S206;如不是MongoDB协议,则转到步骤S207;
步骤S206,执行数据处理指令;
步骤S207,使用预设规则将数据处理指令转换为MongoDB协议类型的数据处理指令,并执行转换后的数据处理指令。
下面详细说明本优选实施例的指令处理方法的各步骤的具体流程。
在步骤S201中,指令处理装置接收用户的端口设置指令。该端口设置指令为用户对指令处理装置接收不同协议类型的数据处理指令的指令接收端口进行设置的指令。随后转到步骤S202。
在步骤S202中,指令处理装置根据步骤S201接收的端口设置指令,设置不同协议类型的数据处理指令的指令接收端口。这里可以设置指令接收端口和不同协议类型的数据处理指令一一对应。如使用6554端口接收MongoDB协议类型的数据处理指令,使用6555端口接收DynamoDB协议类型的数据处理指令等。
这样即完成了指令接收端口的设置过程。随后转到步骤S203。
在步骤S203中,指令处理装置接收用户的数据处理指令,该数据处理指令为对指令处理装置对应的数据库中的数据进行处理,如查找、排序等处理的指令。随后指令处理装置会根据预设设定确定接收到的数据处理指令的指令接收端口。随后转到步骤S204。
在步骤S204中,指令处理装置根据步骤S203确定的指令接收端口以及预设规则,确定该指令接收端口对应的数据处理指令的协议类型。随后转到步骤S205。
在步骤S205中,指令处理装置判断步骤S204确定的数据处理指令的协议类型是否为MongoDB协议,如为MongoDB协议,则转到步骤S206;如不是MongoDB协议,则转到步骤S207。
在步骤S206中,如数据处理指令的协议类型为MongoDB协议,由于本优选实施例的指令处理装置的数据库对应的是MongoDB数据库,因此指令处理装置可直接执行该数据处理指令。
在步骤S207中,如数据处理指令的协议类型不是MongoDB协议,则指令处理装置可使用预设规则将步骤S203接收到的数据处理指令转换为MongoDB协议类型的数据处理指令。这里的预设规则为根据用户发送的数据处理指令的协议类型预先设置的转换规则。
具体的,请参照图3,图3为本发明的指令处理方法的第二优选实施例的步骤S207的流程图。该步骤S207包括:
步骤S301,基于正则表达式词法,对DynamoDB协议的数据处理指令进行词法分析,获取数据处理指令的指令参数和条件参数;
这里的数据处理指令的指令参数是指数据处理指令中的操作数(operand),数据处理指令的条件参数是指数据处理指令中的操作条件(condition)。
步骤S302,基于DynamoDB文法以及预读左扫描右规约算法(LALR,lookaheadleftscan right reduction算法),对数据处理指令的指令参数和条件参数进行文法分析,获取数据处理指令对应的抽象语法树。
步骤S303,自下而上遍历抽象语法树,并根据抽象语法树中的节点以及MongoDB文法,生成MongoDB协议类型的数据处理指令。
最后由于本优选实施例的指令处理装置的数据库对应的是MongoDB数据库,因此指令处理装置可直接执行转换后的数据处理指令。
这样即完成了本优选实施例的指令处理方法的数据处理指令执行流程。
下面通过一例子说明详细说明步骤S207中数据处理指令的协议类型转换过程。
DynamoDB的巴克斯范式(BNF,Backus-Naur Form)文法为:
使用LALR算法对上述DynamoDB文法进行解析,得到DynamoDB的执行语句和MongoDB的执行语句的对应关系如表1所示:
表1
如指令处理装置对DynamoDB协议的数据处理指令:
A IN list(b,c,d)AND B>=c AND(C<>d OR contains(ARR,g))进行词法分析,可以得到该数据处理指令的指令参数A、(b,c,d)、B、c、C、d、ARR、g;以及该数据处理指令的条件参数IN、list、AND、>=、AND(数据处理指令中的第二个AND)、<>、OR、contains。
随后指令处理装置基于LALR算法对上述数据处理指令的指令参数和条件参数进行文法分析,获取数据处理指令对应的抽象语法树,如图4所示。
最后指令处理装置自下而上遍历抽象语法树,并根据上述抽象语法树中的节点以及MongoDB文法,生成抽象语法树每个区域的数据处理指令,如
区域a的数据处理指令为:{A:{$in:[b,c,d]}};
区域b的数据处理指令为:{B:{$gte:c}};
区域c的数据处理指令为:{C:{$ne:d}};
区域d的数据处理指令为:{ARR:{$regex:.*.g.*}};
随后对区域a和区域b的数据处理指令进行合成,合成后的区域A的数据处理指令为:{$and:[{A:{$in:[b,c,d]}},{B:{$gte:c}}]};
对区域c和区域d的数据处理指令进行合成,合成后的区域B的数据处理指令为:{$or:[{C:{$ne:d}},{ARR:{$regex:.*.g.*}}]};
最后对区域A和区域B的数据处理指令进行合成,最终生成的MongoDB协议类型的数据处理指令为:{$and:[{$and:[{A:{$in:[b,c,d]}},{B:{$gte:c}}]},{$or:[{C:{$ne:d}},{ARR:{$regex:.*.g.*}}]}]};
这样即完成了将DynamoDB协议的数据处理指令转换为MongoDB协议类型的数据处理指令的过程。
在第一优选实施例的基础上,本优选实施例的指令处理方法可通过正则表达式词法、DynamoDB文法、MongoDB文法以及LALR算法,实现了DynamoDB协议的数据处理指令与MongoDB协议类型的数据处理指令的相互转换,使得对应的指令处理装置以及数据库可兼容不同类型的数据处理指令,进一步提高了指令处理方法的指令处理效率。
本发明还提供一种指令处理装置,请参照图5,图5为本发明的指令处理装置的第一优选实施例的结构示意图,本优选实施例的指令处理装置可使用上述的指令处理方法的第一优选实施例进行实施,本优选实施例的指令处理装置50包括指令接收模块51、指令类型确定模块52、第一指令执行模块53以及第二指令执行模块54。
指令接收模块51用于接收数据处理指令,并确定数据处理指令的指令接收端口;指令类型确定模块52用于根据指令接收端口,确定数据处理指令的协议类型;第一指令执行模块53用于如数据处理指令的协议类型为MongoDB协议,则执行数据处理指令;第二指令执行模块54用于如数据处理指令的协议类型不是MongoDB协议,则使用预设规则将数据处理指令转换为MongoDB协议类型的数据处理指令,并执行转换后的数据处理指令。
本优选实施例的指令处理装置50使用时,指令接收模块51接收用户的数据处理指令,该数据处理指令为对指令处理装置对应的数据库中的数据进行处理,如查找、排序等处理的指令。
由于数据处理指令可能具有不同协议类型,如MongoDB协议类型以及DynamoDB协议类型等。指令处理装置会预先设定好不同的指令接收端口来接收对应协议类型的数据处理指令。如使用6554端口接收MongoDB协议类型的数据处理指令,使用6555端口接收DynamoDB协议类型的数据处理指令等。
因此随后指令接收模块51会根据预设设定确定接收到的数据处理指令的指令接收端口。
随后指令类型确定模块52根据指令接收模块51确定的指令接收端口以及预设规则,确定该指令接收端口对应的数据处理指令的协议类型。
然后指令处理装置判断数据处理指令的协议类型是否为MongoDB协议。
如数据处理指令的协议类型为MongoDB协议,由于本优选实施例的指令处理装置50的数据库对应的是MongoDB数据库,因此第一指令执行模块53可直接执行该数据处理指令。
如数据处理指令的协议类型不是MongoDB协议,则第二指令执行模块54可使用预设规则将指令接收模块接收到的数据处理指令转换为MongoDB协议类型的数据处理指令。这里的预设规则为根据用户发送的数据处理指令的协议类型预先设置的转换规则。最后第二指令执行模块54可直接执行转换后的数据处理指令。
这样即完成了本优选实施例的指令处理装置50的数据处理指令执行流程。
本优选实施例的指令处理装置通过对非MongoDB协议的数据处理指令进行对应的协议类型转换,使得对应的指令处理装置以及数据库可兼容不同类型的数据处理指令;由于不需要用户对数据处理指令进行协议类型转换,因此也简化了数据处理指令的生成流程。
请参照图6,图6为本发明的指令处理装置的第二优选实施例的结构示意图。本优选实施例的指令处理装置可使用上述的指令处理方法的第二优选实施例进行实施,本优选实施例的指令处理装置60包括设置指令接收模块61、端口设置模块62、指令接收模块63、指令类型确定模块64、第一指令执行模块65以及第二指令执行模块66。
设置指令接收模块61用于接收端口设置指令;端口设置模块62用于根据端口设置指令,设置不同协议类型的数据处理指令的指令接收端口;指令接收模块63用于接收数据处理指令,并确定数据处理指令的指令接收端口;指令类型确定模块64用于根据指令接收端口,确定数据处理指令的协议类型;第一指令执行模块65用于如数据处理指令的协议类型为MongoDB协议,则执行数据处理指令;第二指令执行模块66用于如数据处理指令的协议类型不是MongoDB协议,则使用预设规则将数据处理指令转换为MongoDB协议类型的数据处理指令,并执行转换后的数据处理指令。
请参照图7,图7为本发明的指令处理装置的第二优选实施例的第二指令执行模块的结构示意图。该第二指令执行模块66包括参数获取单元71、语法树获取单元72以及转换单元73。
参数获取单元71用于对DynamoDB协议的数据处理指令进行词法分析,获取数据处理指令的指令参数和条件参数;具体的,基于正则表达式词法,对DynamoDB协议的数据处理指令进行词法分析,获取数据处理指令的指令参数和条件参数。
语法树获取单元72用于基于正则表达式词法,对DynamoDB协议的数据处理指令进行词法分析,获取数据处理指令的指令参数和条件参数;具体的,基于DynamoDB文法以及预读左扫描右规约算法,对数据处理指令的指令参数和条件参数进行文法分析,获取数据处理指令对应的抽象语法树。
转换单元73用于根据抽象语法树,将数据处理指令转换为MongoDB协议类型的数据处理指令;具体的,自下而上遍历抽象语法树,并根据抽象语法树中的节点以及MongoDB文法,生成MongoDB协议类型的数据处理指令。
本优选实施例的指令处理装置60使用时,首先设置指令接收模块61接收用户的端口设置指令。该端口设置指令为用户对指令处理装置接收不同协议类型的数据处理指令的指令接收端口进行设置的指令。
随后端口设置模块62根据设置指令接收模块接收的端口设置指令,设置不同协议类型的数据处理指令的指令接收端口。这里可以设置指令接收端口和不同协议类型的数据处理指令一一对应。如使用6554端口接收MongoDB协议类型的数据处理指令,使用6555端口接收DynamoDB协议类型的数据处理指令等。这样即完成了指令接收端口的设置过程。
然后指令接收模块63接收用户的数据处理指令,该数据处理指令为对指令处理装置对应的数据库中的数据进行处理,如查找、排序等处理的指令。随后指令接收模块63会根据预设设定确定接收到的数据处理指令的指令接收端口。
随后指令类型确定模块64根据指令接收模块63确定的指令接收端口以及预设规则,确定该指令接收端口对应的数据处理指令的协议类型。
然后指令处理装置60判断指令类型确定模块64确定的数据处理指令的协议类型是否为MongoDB协议。
如数据处理指令的协议类型为MongoDB协议,由于本优选实施例的指令处理装置60的数据库对应的是MongoDB数据库,因此第一指令执行模块65可直接执行该数据处理指令。
如数据处理指令的协议类型不是MongoDB协议,则第二指令执行模块66可使用预设规则将指令接收模块63接收到的数据处理指令转换为MongoDB协议类型的数据处理指令。这里的预设规则为根据用户发送的数据处理指令的协议类型预先设置的转换规则。
具体转换过程包括:
第二指令执行模块66的参数获取单元71基于正则表达式词法,对DynamoDB协议的数据处理指令进行词法分析,获取数据处理指令的指令参数和条件参数;
这里的数据处理指令的指令参数是指数据处理指令中的操作数(operand),数据处理指令的条件参数是指数据处理指令中的操作条件(condition)。
第二指令执行模块66的语法树获取单元72基于DynamoDB文法以及预读左扫描右规约算法(LALR,lookahead leftscan right reduction算法),对数据处理指令的指令参数和条件参数进行文法分析,获取数据处理指令对应的抽象语法树。
第二指令执行模块66的转换单元73自下而上遍历抽象语法树,并根据抽象语法树中的节点以及MongoDB文法,生成MongoDB协议类型的数据处理指令。
最后由于本优选实施例的指令处理装置60的数据库对应的是MongoDB数据库,因此第二指令执行模块66可直接执行转换后的数据处理指令。
这样即完成了本优选实施例的指令处理装置60的数据处理指令执行流程。
在第一优选实施例的基础上,本优选实施例的指令处理装置可通过正则表达式词法、DynamoDB文法、MongoDB文法以及LALR算法,实现了DynamoDB协议的数据处理指令与MongoDB协议类型的数据处理指令的相互转换,使得对应的指令处理装置以及数据库可兼容不同类型的数据处理指令,进一步提高了指令处理方法的指令处理效率。
下面通过一具体实施例说明本发明的指令处理方法及指令处理装置的具体工作原理,请参照图8,图8为本发明的指令处理方法及指令处理装置的指令处理示意图。其中客户端81向MongoDB数据库82发送数据处理指令。本具体实施例的指令处理装置设置在MongoDB数据库82中。
其中MongoDB数据库82包括用于接收DynamoDB协议的数据处理指令的指令接收端口821、用于接收MongoDB协议的数据处理指令的指令接收端口822、用于将DynamoDB协议的数据处理指令转换为MongoDB协议的数据处理指令的指令协议类型转换插件823以及用于存储数据的Mongo数据集群824。
本具体实施例的指令处理方法及指令处理装置使用时,MongoDB数据库82会监听指令接收端口821以及指令接收端口822。客户端81也清楚指令接收端口821以及指令接收端口822的设置。
这样当客户端81要发送MongoDB协议的数据处理指令至MongoDB数据库82时,客户端81可以向MongoDB数据库82的指令接收端口822发送数据处理指令,如指令接收端口822接收到MongoDB协议的数据处理指令,Mongo数据集群824会直接根据MongoDB语法进行解析,然后执行该数据处理指令。
当客户端81要发送DynamoDB协议的数据处理指令至MongoDB数据库82时,客户端81可以向MongoDB数据库82的指令接收端口821发送数据处理指令,如指令接收端口821接收到MongoDB协议的数据处理指令,则会把MongoDB协议的数据处理指令发送至指令协议类型转换插件823,指令协议类型转换插件823将DynamoDB协议的数据处理指令转换为MongoDB协议的数据处理指令。随后Mongo数据集群824会根据MongoDB语法对转换后的数据处理指令进行解析,然后执行该转换后的数据处理指令。具体的数据处理指令转换过程可参见上述指令处理方法的第二优选实施例中的步骤S207的相关描述。
这样即完成了本具体实施例的指令处理方法及指令处理装置的数据处理指令执行流程。
本发明的指令处理方法及指令处理装置通过对非MongoDB协议的数据处理指令进行对应的协议类型转换,使得本发明的指令处理方法及指令处理装置可兼容不同类型的数据处理指令;由于不需要用户对数据处理指令进行协议类型转换,因此也简化了数据处理指令的生成流程;解决了现有的指令处理方法及指令处理装置对不同类型的数据处理指令的兼容性较差,以及对应的数据处理指令的生成流程较为复杂的技术问题。
如本申请所使用的术语“组件”、“模块”、“系统”、“接口”、“进程”等等一般地旨在指计算机相关实体:硬件、硬件和软件的组合、软件或执行中的软件。例如,组件可以是但不限于是运行在处理器上的进程、处理器、对象、可执行应用、执行的线程、程序和/或计算机。通过图示,运行在控制器上的应用和该控制器二者都可以是组件。一个或多个组件可以有在于执行的进程和/或线程内,并且组件可以位于一个计算机上和/或分布在两个或更多计算机之间。
图9和随后的讨论提供了对实现本发明所述的指令处理装置所在的电子设备的工作环境的简短、概括的描述。图9的工作环境仅仅是适当的工作环境的一个实例并且不旨在建议关于工作环境的用途或功能的范围的任何限制。实例电子设备912包括但不限于可穿戴设备、头戴设备、医疗健康平台、个人计算机、服务器计算机、手持式或膝上型设备、移动设备(比如移动电话、个人数字助理(PDA)、媒体播放器等等)、多处理器系统、消费型电子设备、小型计算机、大型计算机、包括上述任意系统或设备的分布式计算环境,等等。
尽管没有要求,但是在“计算机可读指令”被一个或多个电子设备执行的通用背景下描述实施例。计算机可读指令可以经由计算机可读介质来分布(下文讨论)。计算机可读指令可以实现为程序模块,比如执行特定任务或实现特定抽象数据类型的功能、对象、应用编程接口(API)、数据结构等等。典型地,该计算机可读指令的功能可以在各种环境中随意组合或分布。
图9图示了包括本发明的指令处理装置中的一个或多个实施例的电子设备912的实例。在一种配置中,电子设备912包括至少一个处理单元916和存储器918。根据电子设备的确切配置和类型,存储器918可以是易失性的(比如RAM)、非易失性的(比如ROM、闪存等)或二者的某种组合。该配置在图9中由虚线914图示。
在其他实施例中,电子设备912可以包括附加特征和/或功能。例如,设备912还可以包括附加的存储装置(例如可移除和/或不可移除的),其包括但不限于磁存储装置、光存储装置等等。这种附加存储装置在图9中由存储装置920图示。在一个实施例中,用于实现本文所提供的一个或多个实施例的计算机可读指令可以在存储装置920中。存储装置920还可以存储用于实现操作系统、应用程序等的其他计算机可读指令。计算机可读指令可以载入存储器918中由例如处理单元916执行。
本文所使用的术语“计算机可读介质”包括计算机存储介质。计算机存储介质包括以用于存储诸如计算机可读指令或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。存储器918和存储装置920是计算机存储介质的实例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光存储装置、盒式磁带、磁带、磁盘存储装置或其他磁存储设备、或可以用于存储期望信息并可以被电子设备912访问的任何其他介质。任意这样的计算机存储介质可以是电子设备912的一部分。
电子设备912还可以包括允许电子设备912与其他设备通信的通信连接926。通信连接926可以包括但不限于调制解调器、网络接口卡(NIC)、集成网络接口、射频发射器/接收器、红外端口、USB连接或用于将电子设备912连接到其他电子设备的其他接口。通信连接926可以包括有线连接或无线连接。通信连接926可以发射和/或接收通信媒体。
术语“计算机可读介质”可以包括通信介质。通信介质典型地包含计算机可读指令或诸如载波或其他传输机构之类的“己调制数据信号”中的其他数据,并且包括任何信息递送介质。术语“己调制数据信号”可以包括这样的信号:该信号特性中的一个或多个按照将信息编码到信号中的方式来设置或改变。
电子设备912可以包括输入设备924,比如键盘、鼠标、笔、语音输入设备、触摸输入设备、红外相机、视频输入设备和/或任何其他输入设备。设备912中也可以包括输出设备922,比如一个或多个显示器、扬声器、打印机和/或任意其他输出设备。输入设备924和输出设备922可以经由有线连接、无线连接或其任意组合连接到电子设备912。在一个实施例中,来自另一个电子设备的输入设备或输出设备可以被用作电子设备912的输入设备924或输出设备922。
电子设备912的组件可以通过各种互连(比如总线)连接。这样的互连可以包括外围组件互连(PCI)(比如快速PCI)、通用串行总线(USB)、火线(IEEE1394)、光学总线结构等等。在另一个实施例中,电子设备912的组件可以通过网络互连。例如,存储器918可以由位于不同物理位置中的、通过网络互连的多个物理存储器单元构成。
本领域技术人员将认识到,用于存储计算机可读指令的存储设备可以跨越网络分布。例如,可经由网络928访问的电子设备930可以存储用于实现本发明所提供的一个或多个实施例的计算机可读指令。电子设备912可以访问电子设备930并且下载计算机可读指令的一部分或所有以供执行。可替代地,电子设备912可以按需要下载多条计算机可读指令,或者一些指令可以在电子设备912处执行并且一些指令可以在电子设备930处执行。
本文提供了实施例的各种操作。在一个实施例中,所述的一个或多个操作可以构成一个或多个计算机可读介质上存储的计算机可读指令,其在被电子设备执行时将使得计算设备执行所述操作。描述一些或所有操作的顺序不应当被解释为暗示这些操作必需是顺序相关的。本领域技术人员将理解具有本说明书的益处的可替代的排序。而且,应当理解,不是所有操作必需在本文所提供的每个实施例中存在。
而且,尽管已经相对于一个或多个实现方式示出并描述了本公开,但是本领域技术人员基于对本说明书和附图的阅读和理解将会想到等价变型和修改。本公开包括所有这样的修改和变型,并且仅由所附权利要求的范围限制。特别地关于由上述组件(例如元件、资源等)执行的各种功能,用于描述这样的组件的术语旨在对应于执行所述组件的指定功能(例如其在功能上是等价的)的任意组件(除非另外指示),即使在结构上与执行本文所示的本公开的示范性实现方式中的功能的公开结构不等同。此外,尽管本公开的特定特征已经相对于若干实现方式中的仅一个被公开,但是这种特征可以与如可以对给定或特定应用而言是期望和有利的其他实现方式的一个或多个其他特征组合。而且,就术语“包括”、“具有”、“含有”或其变形被用在具体实施方式或权利要求中而言,这样的术语旨在以与术语“包含”相似的方式包括。
本发明实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。上述的各装置或系统,可以执行相应方法实施例中的方法。
综上所述,虽然本发明已以实施例揭露如上,实施例前的序号仅为描述方便而使用,对本发明各实施例的顺序不造成限制。并且,上述实施例并非用以限制本发明,本领域的普通技术人员,在不脱离本发明的精神和范围内,均可作各种更动与润饰,因此本发明的保护范围以权利要求界定的范围为准。
Claims (9)
1.一种指令处理方法,其特征在于,包括:
接收数据处理指令,并确定所述数据处理指令的指令接收端口;
根据所述指令接收端口,确定所述数据处理指令的协议类型;
如所述数据处理指令的协议类型为MongoDB协议,则执行所述数据处理指令;以及
如所述数据处理指令的协议类型不是MongoDB协议,则使用预设规则将所述数据处理指令转换为MongoDB协议类型的数据处理指令,并执行转换后的数据处理指令;
如所述数据处理指令的协议类型为DynamoDB协议,所述使用预设规则将所述数据处理指令转换为MongoDB协议类型的数据处理指令的步骤包括:
对DynamoDB协议的数据处理指令进行词法分析,获取所述数据处理指令的指令参数和条件参数;其中所述指令参数为数据处理指令中的操作数,所述条件参数为数据处理指令中的操作条件;
对所述数据处理指令的指令参数和条件参数进行文法分析,获取所述数据处理指令对应的抽象语法树;以及
根据所述抽象语法树,将所述数据处理指令转换为MongoDB协议类型的数据处理指令。
2.根据权利要求1所述的指令处理方法,其特征在于,所述接收数据处理指令的步骤之前还包括:
接收端口设置指令;以及
根据所述端口设置指令,设置不同协议类型的数据处理指令的指令接收端口。
3.根据权利要求1所述的指令处理方法,其特征在于,
所述对DynamoDB协议的数据处理指令进行词法分析,获取所述数据处理指令的指令参数和条件参数的步骤包括:
基于正则表达式词法,对DynamoDB协议的数据处理指令进行词法分析,获取所述数据处理指令的指令参数和条件参数;
所述对所述数据处理指令的指令参数和条件参数进行文法分析,获取所述数据处理指令对应的抽象语法树的步骤包括:
基于DynamoDB文法以及预读左扫描右规约算法,对所述数据处理指令的指令参数和条件参数进行文法分析,获取所述数据处理指令对应的抽象语法树。
4.根据权利要求1所述的指令处理方法,其特征在于,所述根据所述数据处理指令的抽象语法树,将所述数据处理指令转换为MongoDB协议类型的数据处理指令的步骤包括:
自下而上遍历所述抽象语法树,并根据所述抽象语法树中的节点以及MongoDB文法,生成所述MongoDB协议类型的数据处理指令。
5.一种指令处理装置,其特征在于,包括:
指令接收模块,用于接收数据处理指令,并确定所述数据处理指令的指令接收端口;
指令类型确定模块,用于根据所述指令接收端口,确定所述数据处理指令的协议类型;
第一指令执行模块,用于如所述数据处理指令的协议类型为MongoDB协议,则执行所述数据处理指令;以及
第二指令执行模块,用于如所述数据处理指令的协议类型不是MongoDB协议,则使用预设规则将所述数据处理指令转换为MongoDB协议类型的数据处理指令,并执行转换后的数据处理指令;
所述第二指令执行模块包括:
参数获取单元,用于对DynamoDB协议的数据处理指令进行词法分析,获取所述数据处理指令的指令参数和条件参数;其中所述指令参数为数据处理指令中的操作数,所述条件参数为数据处理指令中的操作条件;
语法树获取单元,用于对所述数据处理指令的指令参数和条件参数进行文法分析,获取所述数据处理指令对应的抽象语法树;以及
转换单元,用于根据所述抽象语法树,将所述数据处理指令转换为MongoDB协议类型的数据处理指令。
6.根据权利要求5所述的指令处理装置,其特征在于,所述指令处理装置还包括:
设置指令接收模块,用于接收端口设置指令;以及
端口设置模块,用于根据所述端口设置指令,设置不同协议类型的数据处理指令的指令接收端口。
7.根据权利要求5所述的指令处理装置,其特征在于,
所述参数获取单元用于基于正则表达式词法,对DynamoDB协议的数据处理指令进行词法分析,获取所述数据处理指令的指令参数和条件参数;
所述语法树获取单元用于基于DynamoDB文法以及预读左扫描右规约算法,对所述数据处理指令的指令参数和条件参数进行文法分析,获取所述数据处理指令对应的抽象语法树。
8.根据权利要求5所述的指令处理装置,其特征在于,所述转换单元用于自下而上遍历所述抽象语法树,并根据所述抽象语法树中的节点以及MongoDB文法,生成所述MongoDB协议类型的数据处理指令。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至4任一项所述的指令处理方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710412635.6A CN107229723B (zh) | 2017-06-05 | 2017-06-05 | 指令处理方法及指令处理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710412635.6A CN107229723B (zh) | 2017-06-05 | 2017-06-05 | 指令处理方法及指令处理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107229723A CN107229723A (zh) | 2017-10-03 |
CN107229723B true CN107229723B (zh) | 2022-05-03 |
Family
ID=59934715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710412635.6A Active CN107229723B (zh) | 2017-06-05 | 2017-06-05 | 指令处理方法及指令处理装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107229723B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1842081A (zh) * | 2005-03-30 | 2006-10-04 | 华为技术有限公司 | 扩展巴克斯范式字符串模式匹配和解析的方法及装置 |
CN1859359A (zh) * | 2005-07-12 | 2006-11-08 | 上海华为技术有限公司 | 用抽象语法规则描述的通信协议的实现方法及其装置 |
CN102298518A (zh) * | 2010-05-26 | 2011-12-28 | 微软公司 | 从技术未知的管理命令到多个管理协议的转换 |
CN103902651A (zh) * | 2014-02-19 | 2014-07-02 | 南京大学 | 一种基于MongoDB的云端代码查询方法与装置 |
CN104135476A (zh) * | 2014-07-18 | 2014-11-05 | 清华大学 | 一种通信协议转换方法、装置及系统 |
CN104951275A (zh) * | 2015-06-18 | 2015-09-30 | 湖北盛天网络技术股份有限公司 | 计算机指令数据的处理方法和系统 |
CN105095268A (zh) * | 2014-05-12 | 2015-11-25 | 深圳市同洲电子股份有限公司 | 结构化数据的存取方法以及装置 |
CN106067080A (zh) * | 2012-02-14 | 2016-11-02 | 亚马逊技术有限公司 | 提供可配置工作流能力 |
CN106649342A (zh) * | 2015-10-30 | 2017-05-10 | 北京国双科技有限公司 | 数据采集平台中数据处理的方法及装置 |
CN106790109A (zh) * | 2016-12-26 | 2017-05-31 | 东软集团股份有限公司 | 数据匹配方法和装置、协议数据分析方法、装置和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7194733B2 (en) * | 2003-06-11 | 2007-03-20 | Microsoft Corporation | Transformation of an asynchronous transactional messaging language into a web services compatible language |
-
2017
- 2017-06-05 CN CN201710412635.6A patent/CN107229723B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1842081A (zh) * | 2005-03-30 | 2006-10-04 | 华为技术有限公司 | 扩展巴克斯范式字符串模式匹配和解析的方法及装置 |
CN1859359A (zh) * | 2005-07-12 | 2006-11-08 | 上海华为技术有限公司 | 用抽象语法规则描述的通信协议的实现方法及其装置 |
CN102298518A (zh) * | 2010-05-26 | 2011-12-28 | 微软公司 | 从技术未知的管理命令到多个管理协议的转换 |
CN106067080A (zh) * | 2012-02-14 | 2016-11-02 | 亚马逊技术有限公司 | 提供可配置工作流能力 |
CN103902651A (zh) * | 2014-02-19 | 2014-07-02 | 南京大学 | 一种基于MongoDB的云端代码查询方法与装置 |
CN105095268A (zh) * | 2014-05-12 | 2015-11-25 | 深圳市同洲电子股份有限公司 | 结构化数据的存取方法以及装置 |
CN104135476A (zh) * | 2014-07-18 | 2014-11-05 | 清华大学 | 一种通信协议转换方法、装置及系统 |
CN104951275A (zh) * | 2015-06-18 | 2015-09-30 | 湖北盛天网络技术股份有限公司 | 计算机指令数据的处理方法和系统 |
CN106649342A (zh) * | 2015-10-30 | 2017-05-10 | 北京国双科技有限公司 | 数据采集平台中数据处理的方法及装置 |
CN106790109A (zh) * | 2016-12-26 | 2017-05-31 | 东软集团股份有限公司 | 数据匹配方法和装置、协议数据分析方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107229723A (zh) | 2017-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11138971B2 (en) | Using context to interpret natural language speech recognition commands | |
CN107112015B (zh) | 发现第三方启用语音的资源的能力 | |
US11086873B2 (en) | Query-time analytics on graph queries spanning subgraphs | |
US10074365B2 (en) | Voice control method, mobile terminal device, and voice control system | |
US9880820B2 (en) | Programming language with extensions using dynamic keywords | |
CN104008064A (zh) | 用于多级存储器压缩的方法和系统 | |
CN107861981B (zh) | 一种数据处理方法及装置 | |
WO2024036662A1 (zh) | 一种基于数据采样的并行图规则挖掘方法及装置 | |
CN111694866A (zh) | 数据搜索及存储方法、数据搜索系统、装置、设备及介质 | |
CN113190773A (zh) | 显示数据的渲染方法、电子设备、移动终端及存储介质 | |
CN110888672B (zh) | 一种基于元数据架构的表达式引擎实现方法及系统 | |
KR102421397B1 (ko) | 프로그래밍 코드 자동생성을 통한 백엔드 구축 방법 | |
US10656926B2 (en) | Compact type layouts | |
CN108255434B (zh) | 标签管理方法、管理装置及计算机可读存储介质 | |
US20140351232A1 (en) | Accessing enterprise data using a natural language-based search | |
US20120310879A1 (en) | Method and system for data synchronization including file system abstraction | |
CN102004633B (zh) | 一种处理控件属性的方法及装置 | |
US7818337B2 (en) | System and method for dynamically exposing SQL statements as web protocols | |
CN112883088B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN112667223A (zh) | 组件配置表的生成方法、装置、电子设备及存储介质 | |
CN110222046B (zh) | 列表数据的处理方法、装置、服务器和存储介质 | |
CN107229723B (zh) | 指令处理方法及指令处理装置 | |
CN112506503A (zh) | 一种编程方法、装置、终端设备及存储介质 | |
WO2023103918A1 (zh) | 语音控制方法、装置、电子设备及存储介质 | |
CN107357853B (zh) | 一种redis控制台的操作方法、装置及计算机系统 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231009 Address after: 518057 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 floors Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd. Address before: 518000 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 Floors Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. |
|
TR01 | Transfer of patent right |