数据查询方法、装置、设备及存储介质与流程
未命名
08-25
阅读:133
评论:0
1.本发明涉及数据处理技术领域:
:,尤其涉及一种数据查询方法、装置、设备及存储介质。
背景技术:
::2.在现有技术中,通常需要利用操作日志排查网站内容是否被篡改,查看成员的操作详情等,现有技术中查看用户的操作详情时,通常需要先打印用户对应的操作日志信息,进而根据操作日志判断用户的操作行为。但是一般的操作日志信息较为冗余,含有大量的其他代码运行信息以及与用户操作行为无关的信息,若想准确的获得用户的操作行为或操作事件信息,还需要逐一的从大量的操作日志信息中进行查找,严重影响了开发人员的效率。3.上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。技术实现要素:4.本发明的主要目的在于提供了一种数据查询方法、装置、设备及存储介质,旨在解决现有技术数据查询时直接返回操作日志导致的无法及时获取有效信息,用户体验不高的技术问题。5.为实现上述目的,本发明提供了一种数据查询方法,所述方法包括以下步骤:6.在接收到查询指令时,根据所述查询指令对应的用户操作日志判断用户触发的操作事件是否属于预设事件;7.在用户触发的操作事件属于所述预设事件时,判断所述操作事件是否满足预设事件触发规则;8.在所述操作事件满足所述预设事件触发规则时,根据所述用户操作日志,按照所述事件触发规则和所述预设事件对应的事件标识生成数据查询结果。9.可选地,所述在接收到查询指令时,根据所述查询指令对应的用户操作日志判断用户触发的操作事件是否属于预设事件的步骤之前,还包括:10.获取预先定义的事件名称、事件信息;11.根据所述事件名称、所述事件信息定义预设事件,并为所述预设事件配置对应的预设事件触发规则。12.可选地,所述在接收到查询指令时,根据所述查询指令对应的用户操作日志判断用户触发的操作事件是否属于预设事件的步骤之前,还包括:13.在接收到操作指令时,判断上一操作指令的输出是否可作为所述操作指令的输入;14.若所述上一操作指令的输出不可作为所述操作指令的输入,则将所述上一操作指令的输出保存至目标数据表,并将待引入数据作为所述操作指令的输入,所述待引入数据根据所述操作指令确定。15.可选地,所述若所述上一操作指令的输出不可作为所述操作指令的输入,则将所述上一操作指令的输出保存至目标数据表,并将待引入数据作为所述操作指令的输入,所述待引入数据根据所述操作指令确定的步骤,还包括:16.若所述上一操作指令的输出不可作为所述操作指令的输入,则获取所述上一操作指令的输出对应的目标数据表;17.将所述上一操作指令的输出保存至所述目标数据表,并将待引入数据作为所述操作指令的输入,所述待引入数据根据所述操作指令确定。18.可选地,所述在接收到操作指令时,判断上一操作指令的输出是否可作为所述操作指令的输入的步骤之后,还包括:19.若所述上一操作指令的输出可作为所述操作指令的输入,则根据所述上一操作指令的输出执行所述操作指令。20.可选地,所述在接收到查询指令时,根据所述查询指令对应的用户操作日志判断用户触发的操作事件是否属于预设事件的步骤之后,还包括:21.对所述查询指令进行语法解析,获得解析结果;22.根据所述解析结果确定所述查询指令对应的任务类型;23.根据所述任务类型将所述查询指令下发至对应的执行引擎,以使所述执行引擎执行所述查询指令。24.可选地,所述根据所述任务类型将所述查询指令下发至对应的执行引擎,以使所述执行引擎执行所述查询指令的步骤,包括:25.在所述任务类型为sql类任务时,获取支持sql语言执行的目标引擎;26.将所述查询指令转换为sql语句;27.将所述sql语句下发至所述目标引擎进行执行。28.可选地,所述根据所述任务类型将所述查询指令下发至对应的执行引擎,以使所述执行引擎执行所述查询指令的步骤,包括:29.在所述任务类型为面向对象类任务时,获取支持面向对象类语言执行的目标引擎;30.将所述查询指令下发至所述目标引擎,以使所述目标引擎执行所述查询指令。31.可选地,所述在接收到查询指令时,根据所述查询指令对应的用户操作日志判断用户触发的操作事件是否属于预设事件的步骤之前,还包括:32.在接收到多表关联指令时,根据所述多表关联指令确定待关联数据表以及所述待关联数据表对应的关联关系;33.根据所述关联关系调用预设关联命令对所述待关联数据表进行关联。34.可选地,所述根据所述关联关系调用预设关联命令对所述待关联数据表进行关联的步骤,包括:35.在所述关联关系为横向连接关系时,根据所述关联关系确定目标字段;36.根据预设关联命令确定所述目标字段在所述待关联数据表中对应的关联数据;37.根据所述关联数据和所述目标字段对所述待关联数据表进行关联。38.可选地,所述在所述操作事件满足所述预设事件触发规则时,根据所述用户操作日志,按照所述事件触发规则和所述预设事件对应的事件标识生成数据查询结果的步骤,包括:39.在所述操作事件满足所述预设事件触发规则时,根据所述用户操作日志确定所述操作事件对应的触发次数;40.确定所述预设事件对应的操作数据表;41.根据所述操作数据表、所述触发次数、所述事件触发规则和所述预设事件对应的事件标识生成数据查询结果。42.此外,为实现上述目的,本发明还提供一种数据查询装置,所述装置包括:43.接收模块,用于在接收到查询指令时,根据所述查询指令对应的用户操作日志判断用户触发的操作事件是否属于预设事件;44.判断模块,用于在用户触发的操作事件属于所述预设事件时,判断所述操作事件是否满足预设事件触发规则;45.数据查询结果生成模块,用于在所述操作事件满足所述预设事件触发规则时,根据所述用户操作日志,按照所述事件触发规则和所述预设事件对应的事件标识生成数据查询结果。46.可选地,所述接收模块,还用于获取预先定义的事件名称、事件信息;根据所述事件名称、所述事件信息定义预设事件,并为所述预设事件配置对应的预设事件触发规则。47.可选地,所述接收模块,还用于在接收到操作指令时,判断上一操作指令的输出是否可作为所述操作指令的输入;若所述上一操作指令的输出不可作为所述操作指令的输入,则将所述上一操作指令的输出保存至目标数据表,并将待引入数据作为所述操作指令的输入,所述待引入数据根据所述操作指令确定。48.可选地,所述接收模块,还用于若所述上一操作指令的输出不可作为所述操作指令的输入,则获取所述上一操作指令的输出对应的目标数据表;将所述上一操作指令的输出保存至所述目标数据表,并将待引入数据作为所述操作指令的输入,所述待引入数据根据所述操作指令确定。49.可选地,所述接收模块,还用于若所述上一操作指令的输出可作为所述操作指令的输入,则根据所述上一操作指令的输出执行所述操作指令。50.可选地,所述接收模块,还用于对所述查询指令进行语法解析,获得解析结果;根据所述解析结果确定所述查询指令对应的任务类型;根据所述任务类型将所述查询指令下发至对应的执行引擎,以使所述执行引擎执行所述查询指令。51.可选地,所述接收模块,还用于在所述任务类型为sql类任务时,获取支持sql语言执行的目标引擎;将所述查询指令转换为sql语句;将所述sql语句下发至所述目标引擎进行执行。52.可选地,所述接收模块,还用于在所述任务类型为面向对象类任务时,获取支持面向对象类语言执行的目标引擎;将所述查询指令下发至所述目标引擎,以使所述目标引擎执行所述查询指令。53.可选地,所述接收模块,还用于在接收到多表关联指令时,根据所述多表关联指令确定待关联数据表以及所述待关联数据表对应的关联关系;根据所述关联关系调用预设关联命令对所述待关联数据表进行关联。accessmemory,ram),也可以是稳定的非易失性存储器(non-volatilememory,nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。68.本领域技术人员可以理解,图1中示出的结构并不构成对数据查询设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。69.如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据查询程序。70.在图1所示的数据查询设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明数据查询设备中的处理器1001、存储器1005可以设置在数据查询设备中,所述数据查询设备通过处理器1001调用存储器1005中存储的数据查询程序,并执行本发明实施例提供的数据查询方法。71.基于上述数据查询设备,本发明实施例提供了一种数据查询方法,参照图2,图2为本发明数据查询方法第一实施例的流程示意图。72.本实施例中,所述数据查询方法包括以下步骤:73.步骤s10:在接收到查询指令时,根据所述查询指令对应的用户操作日志判断用户触发的操作事件是否属于预设事件。74.需要说明的是,本实施例的执行主体可以是一种具有数据处理、网络通信以及程序运行功能的计算服务设备,例如手机、平板电脑、个人电脑等,或者是一种能够实现上述功能的电子设备或数据查询设备。以下以所述数据查询设备为例,对本实施例及下述各实施例进行说明。75.需要说明的是,所述查询指令可以是开发人员输入的查询用户的操作信息的命令或查询其他数据的命令。所述查询指令可以是包括查询的起止时间,用户的标识、查询的数据表、以及数据过滤信息中的一种或多种。所述用户操作日志可以是当所述查询指令为查询用户的操作信息指令时,根据所述查询指令中的查询起止时间和目标用户查询到的相关信息。所述预设事件可以是预先定义的事件。所述用户触发的操作事件可以是根据所述用户操作日志确定的用户触发的事件,例如,用户登录系统的事件,用户查询个人信息的事件等。76.进一步的,为了准确的捕捉到用户触发的有效操作事件,所述步骤s10之前,还包括:获取预先定义的事件名称、事件信息;根据所述事件名称、所述事件信息定义预设事件,并为所述预设事件配置对应的预设事件触发规则。77.需要说明的是,所述事件名称可以是预先定义的事件的名称,所述事件信息可以是预先定义的事件相关信息,例如,预先定义的登录设备的事件或查询个人账户信息的事件。所述事件名称与所述事件信息一一对应,例如,用户登录设备的事件对应的事件名称可以是登录。用户查询个人基本信息的事件对应的事件名称可以是查询个人信息。所述预设事件可以是将所述事件信息和事件名称进行绑定后的事件。所述预设事件触发规则可以是所述事件之间的相关关系,例如,预设事件的先后关系,预设事件中两个事件之间的间隔事件或者某个事件的连续发生次数。开发人员可将需要监控的用户的操作事件定义为所述预设事件,若两个事件先后发生时可能涉及安全问题时,根据这两个事件之间的触发关系定义预设事件触发规则。例如,开发人员需要查询用户是否触发了a事件,则将a事件定义为预设事件,若用户连续触发了a事件大于5次,则可能存在安全问题,则开发人员可将a事件连续触发5次定义为预设事件触发规则。78.步骤s20:在用户触发的操作事件属于所述预设事件时,判断所述操作事件是否满足预设事件触发规则。79.需要说明的是,所述用户触发的操作事件可能为一个或多个,且触发的次数也可能为一次或多次。在用户触发的操作事件不属于所述预设事件时,可判定用户触发的事件为基本事件,不属于所述预设事件中的需要查询的事件,在用户触发的多个操作事件中有一个属于所述预设事件,即判断所述用户触发的操作事件属于所述预设事件,所述判断所述操作事件是否满足预设事件触发规则可以是获取用户触发的操作事件对应的预设事件触发规则,判断用户触发的操作事件是否满足所述预设事件触发规则。例如,用户登录了系统,该事件对应的预设事件触发规则有:连续5次登录失败、用户在非工作时间非工作地点登录系统。在用户触发的操作事件中有登录事件,且连续5次登录失败,则判定用户触发的操作事件满足所述预设事件触发规则。若用户触发的操作事件为在非工作时间非工作地点登录系统,则同样判定用户触发的操作事件满足所述预设事件触发规则。80.步骤s30:在所述操作事件满足所述预设事件触发规则时,根据所述用户操作日志,按照所述事件触发规则和所述预设事件对应的事件标识生成数据查询结果。81.需要说明的是,所述根据所述用户操作日志,按照所述事件触发规则和所述预设事件对应的事件标识生成数据查询结果。可以是根据所述用户操作日志确定用户触发的预设事件的次数,并结合所述事件触发规则和所述预设事件对应的事件标识按照预设的生成规则生成数据查询结果。82.进一步的,为了使开发人员可以更加直观的查看数据查询结果,所述步骤s30,可包括:在所述操作事件满足所述预设事件触发规则时,根据所述用户操作日志确定所述操作事件对应的触发次数;确定所述预设事件对应的操作数据表;根据所述操作数据表、所述触发次数、所述事件触发规则和所述预设事件对应的事件标识生成数据查询结果。83.需要说明的是,所述触发次数可以是在用户触发的操作事件为预设事件时,触发所述操作事件的次数。所述操作数据表可以是所述操作事件对应的表。例如,用户在触发登录事件时,其操作数据表可以是用户的账号密码信息表。用户触发查询事件时,其对应的操作数据表可以是查询事件对应的存储表。所述根据所述操作数据表、所述触发次数、所述事件触发规则和所述预设事件对应的事件标识生成数据查询结果可以是采用预设的命令展示所述操作数据表以及对应的用户操作信息,例如,预设事件a:张三在非工作时间登录系统,预设事件b:张三连续尝试5次错误的登录密码,如果事件a发生后紧接着发生了事件b,那这个行为将非常可疑,则将事件a发生后紧接着发生了事件b定义为预设事件触发规则,若用户的操作信息触发了上述预设事件,并满足上述预设事件触发规则,则根据所述操作数据表、所述触发次数、所述事件触发规则和所述预设事件对应的事件标识生成数据查询结果可以是:uselogin.logs|cep.eventfieldsuser.namewherehour》18asaicep.eventfieldsuser_namewhereresult='fail"asbicepbyusernameon(ab{5))。其中,use为预设的引入表数据的命令,在此处可用于表征用户触发的事件对应的数据表为login.logs。|可以是管道符号,用于串联多个算子的操作,此处用于连接数据查询结果。cep.event可以是用于定义事件的命令,wherehour》18用于表征用户张三为下午六点钟之后,即下班事件登录的系统,whereresult='fail"用于表征用户的登录结果为登录失败。(ab{5))用于表征在用户触发了a事件后,用户又连接触发了5次b事件。84.本实施例在接收到查询指令时,根据所述查询指令对应的用户操作日志判断用户触发的操作事件是否属于预设事件;在用户触发的操作事件属于所述预设事件时,判断所述操作事件是否满足预设事件触发规则;在所述操作事件满足所述预设事件触发规则时,根据所述用户操作日志,按照所述事件触发规则和所述预设事件对应的事件标识生成数据查询结果。由于本实施例是根据用户操作日志,按照事件触发规则和预设事件对应的事件标识生成数据查询结果。相对于现有的直接将查询到的操作日志信息进行输出的方式,本实施例上述方式按照事件触发规则和预设事件对应的事件标识生成数据查询结果,能够提升用户体验感。85.参考图3,图3为本发明数据查询方法第二实施例的流程示意图。86.基于上述第一实施例,在本实施例中,所述步骤s10之前,还包括:87.步骤s001:在接收到操作指令时,判断上一操作指令的输出是否可作为所述操作指令的输入。88.需要说明的是,所述操作指令可以是用户在命令输入界面输入的命令。所述上一操作指令的输出可以是命令输入界面当前展示的上一个操作指令的执行结果。在linux系统,命令的执行为串连设计,即当前操作指令对应的输入默认是上一个操作指令的输入。用户若想在不终止当前的执行过程的情况下执行与上一操作指令无关的其他指令,可选方案只有重新打开一个命令行操作界面。若在当前命令操作界面操作与上一个操作命令无关的命令,则需要在当前的命令操作界面中回到根节点。导致用户体验不佳。所述判断上一操作指令的输出是否可作为所述操作指令的输入可以是判断所述操作指令的输入是否是依据上一操作指令的输出。若不是,则上一操作指令的输出不可作为所述操作指令的输入。若所述上一操作指令的输出可作为所述操作指令的输入,则根据所述上一操作指令的输出执行所述操作指令。89.步骤s002:若所述上一操作指令的输出不可作为所述操作指令的输入,则将所述上一操作指令的输出保存至目标数据表,并将待引入数据作为所述操作指令的输入,所述待引入数据根据所述操作指令确定。90.需要说明的是,所述目标数据表可以是用于保存上一操作指令的输出的数据表,也可以是用户输入的保存上一操作指令的输出的数据表。所述待引入数据可以是所述操作指令执行时需要依据的数据,也可以是历史保存的操作指令的输出数据。91.进一步的,为了将linux系统的操作由串联式操作更改为可并行式操作,提升用户体验感和用户工作效率,所述步骤s002,可包括:若所述上一操作指令的输出不可作为所述操作指令的输入,则获取所述上一操作指令的输出对应的目标数据表;将所述上一操作指令的输出保存至所述目标数据表,并将待引入数据作为所述操作指令的输入,所述待引入数据根据所述操作指令确定。92.需要说明的是,所述上一操作指令的输出对应的目标数据表可以是所述输出对应的原始保存的数据表,或者是用户指定的用于保存操作指令的输出的数据表。或者是接收用户的输出保存指令,所述输出保存指令可以是save《表名称》,在接收到上述输出保存指令时,即将上一操作指令的输出保存至用户的输出保存指令对应的数据表中。93.在具体实施中,用户在通过命令行界面操作linux操作系统时,在当前的操作指令对应的输入不是上一操作指令对应的输出时,可以根据预设命令,即save《数据表名称》临时保存表数据的指令将上一操作指令的输出保存至数据表中,并使用预设的引入表数据的指令:use《数据表名称》引入所述操作指令对应的输入数据,使得用户可以在命令行操作界面将原本串联时的操作流程调整为并行性的操作,提高工作效率和用户体验感。94.本实施例在接收到操作指令时,判断上一操作指令的输出是否可作为所述操作指令的输入;若所述上一操作指令的输出不可作为所述操作指令的输入,则将所述上一操作指令的输出保存至目标数据表,并将待引入数据作为所述操作指令的输入,所述待引入数据根据所述操作指令确定。本实施例中通过判断上一操作指令的输出是否可作为所述操作指令的输入;若所述上一操作指令的输出不可作为所述操作指令的输入,则将所述上一操作指令的输出保存至目标数据表,并将待引入数据作为所述操作指令的输入。解决了现有技术中在根据算子进行操作时,只能依据上一个算子的输出作为当前算子的输入,或在linux系统中,当前命令只能依据上一个命令的执行结果进行执行,导致的操作流程繁琐,无法并行操作多个流程,严重影响工作效率的问题。95.参考图4,图4为本发明数据查询方法第三实施例的流程示意图。96.基于上述各实施例,在本实施例中,所述步骤s10之后,所述方法还包括:97.步骤s101:对所述查询指令进行语法解析,获得解析结果。98.需要说明的是,所述对所述查询指令进行语法解析可以是通过语法生成器工具(antlr4)进行语法解析,其中,antlr4是一款强大的语法生成器工具,可用于读取、处理、执行和翻译结构化的文本或二进制文件。基本上是当前java语言中使用最为广泛的语法生成器工具。99.在具体实施中,数据查询设备通过语法生成器工具(antlr4)对所述查询指令进行语法解析,获得解析结果。100.步骤s102:根据所述解析结果确定所述查询指令对应的任务类型。101.需要说明的是,所述任务类型可以是所述执行所述查询指令时对应的执行引擎的类型。通过将查询指令划分为不同的任务类型进而分配至不同的执行引擎进行执行。所述任务类型可包括java/scala类任务、python任务以及sql类任务。102.步骤s103:根据所述任务类型将所述查询指令下发至对应的执行引擎,以使所述执行引擎执行所述查询指令。103.需要说明的是,所述执行引擎可以大致分为java/scala类任务对应的执行引擎、python任务对应的执行引擎,或者是将sql类任务直接解释成sql并下发到任意支持sql的执行引擎来运行。104.进一步的,为了提高指令的执行效率,所述步骤s103,可包括:在所述任务类型为sql类任务时,获取支持sql语言执行的目标引擎;将所述查询指令转换为sql语句;将所述sql语句下发至所述目标引擎进行执行。105.需要说明的是,所述sql类任务可以是执行数据库的有关操作等类型的任务,例如,数据的查询,数据的保存,数据表的关联等任务。所述目标引擎可以是任何能够执行所述sql类任务的执行引擎。106.进一步的,为了提高指令的执行效率,所述步骤s103,可包括:在所述任务类型为面向对象类任务时,获取支持面向对象类语言执行的目标引擎;将所述查询指令下发至所述目标引擎,以使所述目标引擎执行所述查询指令。107.需要说明的是,所述面向对象类任务可以是java类任务。所述目标引擎可以是能够执行java语言的执行引擎。108.进一步的,为了节省开发人员的效率,提高开发效率,所述步骤s10之前,还包括:在接收到多表关联指令时,根据所述多表关联指令确定待关联数据表以及所述待关联数据表对应的关联关系;根据所述关联关系调用预设关联命令对所述待关联数据表进行关联。109.需要说明的是,所述多表关联指令可以是用于基于预先设置的或封装好的方法输入的将多个表进行关联的命令,例如:append()可以是开发人员预先将多表横向连接的方法进行封装后提供给用户用于连接多表的方法。还有appendcols()多张表纵向连接,join()_两张表关联,其中,关联又分为内连接、左连接和右连接。所述待关联数据表可以是需要进行关联的多张表,所述关联关系可以是横向连接、纵向连接、左连接、右连接或内连接等两张表之间的连接关系。所述预设关联命令可以是上述举例中的用于连接多张表的预先封装好的可调用的方法。110.进一步的,为了提高多表关联的效率,所述根据所述关联关系调用预设关联命令对所述待关联数据表进行关联的步骤,包括:在所述关联关系为横向连接关系时,根据所述关联关系确定目标字段;根据预设关联命令确定所述目标字段在所述待关联数据表中对应的关联数据;根据所述关联数据和所述目标字段对所述待关联数据表进行关联。111.需要说明的是,所述横向连接关系可以是根据两张表中同时存在的一个字段,将两张表中其他不存在交集关系的字段对应的数据进行合并。例如,表1中有id字段和姓名字段,表2中有id字段和班级字段,则根据所述表1和表2中共有的id字段将表1和表2进行合并,得到的表3为同时拥有id、姓名和班级字段的表。即可从表3中同时获取目标id对应学生的姓名和班级。所述目标字段可以是用户在进行多表关联时指定的待关联数据表中同时拥有的字段,用于依据目标字段将多张表进行关联。所述关联数据可以是根据所述目标字段在待关联数据表中获取的其他字段的数据。112.在具体实施中,本实施例为了提高开发的效率,在语言设计的层面,可利用查询语言(hibernatequerylanguage,hql)针对不同的场景将查询命令分类为9大类,每一类下都有若干命令可供使用,且也可以根据开发的需求继续开发其他的命令并对其进行分类。本实施中目前提供的命令可大致分为9类,前5类为普通的数据分析语言,第6类是cep等数据安全分析常用的负责事件处理语言,第7-8类为机器学习相关的命令,第9类为常用的安全事件检测规则,例如,第1类为管理数据类,可包括:use《table》引入表数据的命令和save《table》临时保存表数据的命令。第2类为关联数据类,可包括:append()多张表横向连接命令;appendcols()多张表纵向连接命令以及join()两张表关联命令。第3类为提取字段类,可包括:eval:计算表达式的结果,并将结果放入新的字段以做搜索;rangemap:为数值列打标签,结果写入新字段;iplocation:根据ip添加国家,省份和城市信息;accum:计算runningtotal,结果写入新字段fields:提取指定字段;function:针对不同类型字段的丰富计算函数,例如:current命令获取当前时间,length命令获取字符串字段长度等,此类命令主要是针对数据源的已有字段做计算,另外特别指出的是function算子是一系列计算函数的集合,其中有内置函数,也可用户自定义;第4类为过滤类,可包括:filter:过滤条件,只筛选符合要求的数据grep:过滤条件,传入正则表达式window.tumble:翻转时间窗口window.sliding:滑动时间窗口;第5类为聚集类,可包括:sum:求和聚合命令;max:求最大值聚合命令;min:求最小值聚合命令;count;求计数聚合命令;avg:求平均值聚合命令;distinct_count:hyperloglog近似聚合计算;第6类为cep类,可用于安全事件检测,包括cep.event:定义一个复杂事件;cep:定义多个复杂事件的触发规则,例如事件的先后关系,前后两个事件的间隔时间,或者某个事件的连续发生次数,例如事件a:张三在非工作时间登录系统,事件b:张三连续尝试5次错误的登录密码,如果事件a发生后紧接着发生了事件b,那这个行为将非常可疑,此例子可写成:uselogin_logs|cep.eventfieldsuser_namewherehour》18asa|cep.eventfieldsuser_namewhereresult=‘fail’asb|cepbyuser_nameon(ab{5});第7类为机器学习类,可包括:hql也可内置机器学习算法,可直接输入命令调用即可:arima:时间序列异常事件检测算法;periodic_behavior:周期行为检测算法;isolation_forest:随机森林算法;dbscan:dbscan算法;xgboost:xgboost算法;kmeans:kmeans算法;collaborative_filtering:协同过滤算法;第8类为机器学习类,可包括:机器学习和特征工程需要紧密结合,hql也内置了特征的计算和存储;combine_feature:从外部数据库中读出特征并拼接至原表;sink_feature:将计算好的特征写入外部特征数据库;save_model:保存模型;apply_model:加载模型;score_model:为模型打分;第9类为检测规则类,可包括:hql内置了一些常见的规则检测命令:new_relationship:新关联关系检测规则;baseline_ad:个人基线检测规则;peer_ad:关联关系偏离部基线检测;movement_ad:短时异地访问异常检测。113.本实施例对所述查询指令进行语法解析,获得解析结果;根据所述解析结果确定所述查询指令对应的任务类型;根据所述任务类型将所述查询指令下发至对应的执行引擎,以使所述执行引擎执行所述查询指令。本实施例对查询指令进行语法解析,获得解析结果;根据解析结果确定查询指令对应的任务类型;根据任务类型将查询指令下发至对应的执行引擎,以使执行引擎执行查询指令,可以将开发过程中常用的方法或函数进行封装,对外提供调用的方法或接口,提升了开发效率。114.参照图5,图5为本发明数据查询装置第一实施例的结构框图。115.如图5所示,本发明实施例提出的数据查询装置包括:116.接收模块10,用于在接收到查询指令时,根据所述查询指令对应的用户操作日志判断用户触发的操作事件是否属于预设事件;117.判断模块20,用于在用户触发的操作事件属于所述预设事件时,判断所述操作事件是否满足预设事件触发规则;118.数据查询结果生成模块30,用于在所述操作事件满足所述预设事件触发规则时,根据所述用户操作日志,按照所述事件触发规则和所述预设事件对应的事件标识生成数据查询结果。119.本实施例在接收到查询指令时,根据所述查询指令对应的用户操作日志判断用户触发的操作事件是否属于预设事件;在用户触发的操作事件属于所述预设事件时,判断所述操作事件是否满足预设事件触发规则;在所述操作事件满足所述预设事件触发规则时,根据所述用户操作日志,按照所述事件触发规则和所述预设事件对应的事件标识生成数据查询结果。由于本实施例是根据用户操作日志,按照事件触发规则和预设事件对应的事件标识生成数据查询结果。相对于现有的直接将查询到的操作日志信息进行输出的方式,本实施例上述方式按照事件触发规则和预设事件对应的事件标识生成数据查询结果,能够提升用户体验感。120.需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。121.另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的数据查询方法,此处不再赘述。122.基于本发明上述数据查询装置第一实施例,提出本发明数据查询装置的第二实施例。123.在本实施例中,所述接收模块10,还用于获取预先定义的事件名称、事件信息;根据所述事件名称、所述事件信息定义预设事件,并为所述预设事件配置对应的预设事件触发规则。124.进一步的,所述接收模块10,还用于在接收到操作指令时,判断上一操作指令的输出是否可作为所述操作指令的输入;若所述上一操作指令的输出不可作为所述操作指令的输入,则将所述上一操作指令的输出保存至目标数据表,并将待引入数据作为所述操作指令的输入,所述待引入数据根据所述操作指令确定。125.进一步的,所述接收模块10,还用于若所述上一操作指令的输出不可作为所述操作指令的输入,则获取所述上一操作指令的输出对应的目标数据表;将所述上一操作指令的输出保存至所述目标数据表,并将待引入数据作为所述操作指令的输入,所述待引入数据根据所述操作指令确定。126.进一步的,所述接收模块10,还用于若所述上一操作指令的输出可作为所述操作指令的输入,则根据所述上一操作指令的输出执行所述操作指令。127.进一步的,所述接收模块10,还用于对所述查询指令进行语法解析,获得解析结果;根据所述解析结果确定所述查询指令对应的任务类型;根据所述任务类型将所述查询指令下发至对应的执行引擎,以使所述执行引擎执行所述查询指令。128.进一步的,所述接收模块10,还用于在所述任务类型为sql类任务时,获取支持sql语言执行的目标引擎;将所述查询指令转换为sql语句;将所述sql语句下发至所述目标引擎进行执行。129.进一步的,所述接收模块10,还用于在所述任务类型为面向对象类任务时,获取支持面向对象类语言执行的目标引擎;将所述查询指令下发至所述目标引擎,以使所述目标引擎执行所述查询指令。130.进一步的,所述接收模块10,还用于在接收到多表关联指令时,根据所述多表关联指令确定待关联数据表以及所述待关联数据表对应的关联关系;根据所述关联关系调用预设关联命令对所述待关联数据表进行关联。131.进一步的,所述接收模块10,还用于在所述关联关系为横向连接关系时,根据所述关联关系确定目标字段;根据预设关联命令确定所述目标字段在所述待关联数据表中对应的关联数据;根据所述关联数据和所述目标字段对所述待关联数据表进行关联。132.进一步的,所述数据查询结果生成模块30,还用于在所述操作事件满足所述预设事件触发规则时,根据所述用户操作日志确定所述操作事件对应的触发次数;确定所述预设事件对应的操作数据表;根据所述操作数据表、所述触发次数、所述事件触发规则和所述预设事件对应的事件标识生成数据查询结果。133.本发明数据查询装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。134.此外,本发明实施例还提出一种存储介质,所述存储介质上存储有数据查询程序,所述数据查询程序被处理器执行时实现如上文所述的数据查询方法的步骤。135.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。136.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。137.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。138.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域:
:,均同理包括在本发明的专利保护范围内。139.本发明公开了a1、一种数据查询方法,所述数据查询方法包括以下步骤:140.在接收到查询指令时,根据所述查询指令对应的用户操作日志判断用户触发的操作事件是否属于预设事件;141.在用户触发的操作事件属于所述预设事件时,判断所述操作事件是否满足预设事件触发规则;142.在所述操作事件满足所述预设事件触发规则时,根据所述用户操作日志,按照所述事件触发规则和所述预设事件对应的事件标识生成数据查询结果。143.a2、如a1所述的数据查询方法,所述在接收到查询指令时,根据所述查询指令对应的用户操作日志判断用户触发的操作事件是否属于预设事件的步骤之前,还包括:144.获取预先定义的事件名称、事件信息;145.根据所述事件名称、所述事件信息定义预设事件,并为所述预设事件配置对应的预设事件触发规则。146.a3、如a1所述的数据查询方法,所述在接收到查询指令时,根据所述查询指令对应的用户操作日志判断用户触发的操作事件是否属于预设事件的步骤之前,还包括:147.在接收到操作指令时,判断上一操作指令的输出是否可作为所述操作指令的输入;148.若所述上一操作指令的输出不可作为所述操作指令的输入,则将所述上一操作指令的输出保存至目标数据表,并将待引入数据作为所述操作指令的输入,所述待引入数据根据所述操作指令确定。149.a4、如a3所述的数据查询方法,所述若所述上一操作指令的输出不可作为所述操作指令的输入,则将所述上一操作指令的输出保存至目标数据表,并将待引入数据作为所述操作指令的输入,所述待引入数据根据所述操作指令确定的步骤,还包括:150.若所述上一操作指令的输出不可作为所述操作指令的输入,则获取所述上一操作指令的输出对应的目标数据表;151.将所述上一操作指令的输出保存至所述目标数据表,并将待引入数据作为所述操作指令的输入,所述待引入数据根据所述操作指令确定。152.a5、如a3所述的数据查询方法,所述在接收到操作指令时,判断上一操作指令的输出是否可作为所述操作指令的输入的步骤之后,还包括:153.若所述上一操作指令的输出可作为所述操作指令的输入,则根据所述上一操作指令的输出执行所述操作指令。154.a6、如a1-a5任一项所述的数据查询方法,所述在接收到查询指令时,根据所述查询指令对应的用户操作日志判断用户触发的操作事件是否属于预设事件的步骤之后,还包括:155.对所述查询指令进行语法解析,获得解析结果;156.根据所述解析结果确定所述查询指令对应的任务类型;157.根据所述任务类型将所述查询指令下发至对应的执行引擎,以使所述执行引擎执行所述查询指令。158.a7、如a6所述的数据查询方法,所述根据所述任务类型将所述查询指令下发至对应的执行引擎,以使所述执行引擎执行所述查询指令的步骤,包括:159.在所述任务类型为sql类任务时,获取支持sql语言执行的目标引擎;160.将所述查询指令转换为sql语句;161.将所述sql语句下发至所述目标引擎进行执行。162.a8、如a6所述的数据查询方法,所述根据所述任务类型将所述查询指令下发至对应的执行引擎,以使所述执行引擎执行所述查询指令的步骤,包括:163.在所述任务类型为面向对象类任务时,获取支持面向对象类语言执行的目标引擎;164.将所述查询指令下发至所述目标引擎,以使所述目标引擎执行所述查询指令。165.a9、如a1-a5任一项所述的数据查询方法,所述在接收到查询指令时,根据所述查询指令对应的用户操作日志判断用户触发的操作事件是否属于预设事件的步骤之前,还包括:166.在接收到多表关联指令时,根据所述多表关联指令确定待关联数据表以及所述待关联数据表对应的关联关系;167.根据所述关联关系调用预设关联命令对所述待关联数据表进行关联。168.a10、如a9所述的数据查询方法,所述根据所述关联关系调用预设关联命令对所述待关联数据表进行关联的步骤,包括:169.在所述关联关系为横向连接关系时,根据所述关联关系确定目标字段;170.根据预设关联命令确定所述目标字段在所述待关联数据表中对应的关联数据;171.根据所述关联数据和所述目标字段对所述待关联数据表进行关联。172.a11、如a1-a5任一项所述的数据查询方法,所述在所述操作事件满足所述预设事件触发规则时,根据所述用户操作日志,按照所述事件触发规则和所述预设事件对应的事件标识生成数据查询结果的步骤,包括:173.在所述操作事件满足所述预设事件触发规则时,根据所述用户操作日志确定所述操作事件对应的触发次数;174.确定所述预设事件对应的操作数据表;175.根据所述操作数据表、所述触发次数、所述事件触发规则和所述预设事件对应的事件标识生成数据查询结果。176.本发明还公开了b12、一种数据查询装置,所述数据查询装置包括:177.接收模块,用于在接收到查询指令时,根据所述查询指令对应的用户操作日志判断用户触发的操作事件是否属于预设事件;178.判断模块,用于在用户触发的操作事件属于所述预设事件时,判断所述操作事件是否满足预设事件触发规则;179.数据查询结果生成模块,用于在所述操作事件满足所述预设事件触发规则时,根据所述用户操作日志,按照所述事件触发规则和所述预设事件对应的事件标识生成数据查询结果。180.b13、如b12所述的数据查询装置,所述接收模块,还用于获取预先定义的事件名称、事件信息;根据所述事件名称、所述事件信息定义预设事件,并为所述预设事件配置对应的预设事件触发规则。181.b14、如b12所述的数据查询装置,所述接收模块,还用于在接收到操作指令时,判断上一操作指令的输出是否可作为所述操作指令的输入;若所述上一操作指令的输出不可作为所述操作指令的输入,则将所述上一操作指令的输出保存至目标数据表,并将待引入数据作为所述操作指令的输入,所述待引入数据根据所述操作指令确定。182.b15、如b12所述的数据查询装置,所述接收模块,还用于若所述上一操作指令的输出不可作为所述操作指令的输入,则获取所述上一操作指令的输出对应的目标数据表;将所述上一操作指令的输出保存至所述目标数据表,并将待引入数据作为所述操作指令的输入,所述待引入数据根据所述操作指令确定。183.b16、如b12所述的数据查询装置,所述接收模块,还用于若所述上一操作指令的输出可作为所述操作指令的输入,则根据所述上一操作指令的输出执行所述操作指令。184.b17、如b12所述的数据查询装置,所述接收模块,还用于对所述查询指令进行语法解析,获得解析结果;根据所述解析结果确定所述查询指令对应的任务类型;根据所述任务类型将所述查询指令下发至对应的执行引擎,以使所述执行引擎执行所述查询指令。185.b18、如b12所述的数据查询装置,所述接收模块,还用于在所述任务类型为sql类任务时,获取支持sql语言执行的目标引擎;将所述查询指令转换为sql语句;将所述sql语句下发至所述目标引擎进行执行。186.本发明还公开了c19、一种数据查询设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据查询程序,所述数据查询程序配置为实现如a1至a11中任一项所述的数据查询方法的步骤。187.本发明还公开了d20、一种存储介质,所述存储介质上存储有数据查询程序,所述数据查询程序被处理器执行时实现如a1至a11任一项所述的数据查询方法的步骤。当前第1页12当前第1页12
技术特征:
1.一种数据查询方法,其特征在于,所述数据查询方法包括以下步骤:在接收到查询指令时,根据所述查询指令对应的用户操作日志判断用户触发的操作事件是否属于预设事件;在用户触发的操作事件属于所述预设事件时,判断所述操作事件是否满足预设事件触发规则;在所述操作事件满足所述预设事件触发规则时,根据所述用户操作日志,按照所述事件触发规则和所述预设事件对应的事件标识生成数据查询结果。2.如权利要求1所述的数据查询方法,其特征在于,所述在接收到查询指令时,根据所述查询指令对应的用户操作日志判断用户触发的操作事件是否属于预设事件的步骤之前,还包括:获取预先定义的事件名称、事件信息;根据所述事件名称、所述事件信息定义预设事件,并为所述预设事件配置对应的预设事件触发规则。3.如权利要求1所述的数据查询方法,其特征在于,所述在接收到查询指令时,根据所述查询指令对应的用户操作日志判断用户触发的操作事件是否属于预设事件的步骤之前,还包括:在接收到操作指令时,判断上一操作指令的输出是否可作为所述操作指令的输入;若所述上一操作指令的输出不可作为所述操作指令的输入,则将所述上一操作指令的输出保存至目标数据表,并将待引入数据作为所述操作指令的输入,所述待引入数据根据所述操作指令确定。4.如权利要求3所述的数据查询方法,其特征在于,所述若所述上一操作指令的输出不可作为所述操作指令的输入,则将所述上一操作指令的输出保存至目标数据表,并将待引入数据作为所述操作指令的输入,所述待引入数据根据所述操作指令确定的步骤,还包括:若所述上一操作指令的输出不可作为所述操作指令的输入,则获取所述上一操作指令的输出对应的目标数据表;将所述上一操作指令的输出保存至所述目标数据表,并将待引入数据作为所述操作指令的输入,所述待引入数据根据所述操作指令确定。5.如权利要求3所述的数据查询方法,其特征在于,所述在接收到操作指令时,判断上一操作指令的输出是否可作为所述操作指令的输入的步骤之后,还包括:若所述上一操作指令的输出可作为所述操作指令的输入,则根据所述上一操作指令的输出执行所述操作指令。6.如权利要求1-5任一项所述的数据查询方法,其特征在于,所述在接收到查询指令时,根据所述查询指令对应的用户操作日志判断用户触发的操作事件是否属于预设事件的步骤之后,还包括:对所述查询指令进行语法解析,获得解析结果;根据所述解析结果确定所述查询指令对应的任务类型;根据所述任务类型将所述查询指令下发至对应的执行引擎,以使所述执行引擎执行所述查询指令。7.如权利要求6所述的数据查询方法,其特征在于,所述根据所述任务类型将所述查询
指令下发至对应的执行引擎,以使所述执行引擎执行所述查询指令的步骤,包括:在所述任务类型为sql类任务时,获取支持sql语言执行的目标引擎;将所述查询指令转换为sql语句;将所述sql语句下发至所述目标引擎进行执行。8.一种数据查询装置,其特征在于,所述数据查询装置包括:接收模块,用于在接收到查询指令时,根据所述查询指令对应的用户操作日志判断用户触发的操作事件是否属于预设事件;判断模块,用于在用户触发的操作事件属于所述预设事件时,判断所述操作事件是否满足预设事件触发规则;数据查询结果生成模块,用于在所述操作事件满足所述预设事件触发规则时,根据所述用户操作日志,按照所述事件触发规则和所述预设事件对应的事件标识生成数据查询结果。9.一种数据查询设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据查询程序,所述数据查询程序配置为实现如权利要求1至7中任一项所述的数据查询方法的步骤。10.一种存储介质,其特征在于,所述存储介质上存储有数据查询程序,所述数据查询程序被处理器执行时实现如权利要求1至7任一项所述的数据查询方法的步骤。
技术总结
本发明属于数据处理领域,公开了一种数据查询方法、装置、设备及存储介质。该方法包括:在接收到查询指令时,根据查询指令对应的用户操作日志判断用户触发的操作事件是否属于预设事件;在用户触发的操作事件属于预设事件时,判断操作事件是否满足预设事件触发规则;在操作事件满足预设事件触发规则时,根据用户操作日志,按照事件触发规则和预设事件对应的事件标识生成数据查询结果。由于本发明是根据用户操作日志,按照事件触发规则和预设事件对应的事件标识生成数据查询结果。相对于现有的直接将查询到的操作日志信息进行输出的方式,本发明上述方式按照事件触发规则和预设事件对应的事件标识生成数据查询结果,能够提升用户体验感。户体验感。户体验感。
技术研发人员:苏军
受保护的技术使用者:三六零数字安全科技集团有限公司
技术研发日:2022.02.11
技术公布日:2023/8/24
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
