CN115525629A - 数据处理方法、装置、存储介质及电子设备 - Google Patents

数据处理方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN115525629A
CN115525629A CN202211242661.6A CN202211242661A CN115525629A CN 115525629 A CN115525629 A CN 115525629A CN 202211242661 A CN202211242661 A CN 202211242661A CN 115525629 A CN115525629 A CN 115525629A
Authority
CN
China
Prior art keywords
expression
processed
calculation
process information
data processing
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.)
Pending
Application number
CN202211242661.6A
Other languages
English (en)
Inventor
汪源
胡凡
汪谦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Netease Shuzhifan Technology Co ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202211242661.6A priority Critical patent/CN115525629A/zh
Publication of CN115525629A publication Critical patent/CN115525629A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/253Grammatical analysis; Style critique

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开实施方式涉及一种数据处理方法、装置、存储介质与电子设备,涉及数据处理技术领域。所述数据处理方法包括:获取对待处理表达式进行计算的最终计算结果和计算过程信息;所述待处理表达式是对一个或多个基础字段进行计算的表达式;在调试界面中显示所述待处理表达式和所述最终计算结果;响应于对所述调试界面中展开控件的触发操作,按照所述待处理表达式的计算顺序显示所述计算过程信息;所述最终计算结果和所述计算过程信息用于对所述待处理表达式进行调试。本公开能够降低待处理表达式的计算成本,提高待处理表达式的调试效率。

Description

数据处理方法、装置、存储介质及电子设备
技术领域
本公开的实施方式涉及数据处理技术领域,更具体地,本公开的实施方式涉及一种数据处理方法、装置、存储介质及电子设备。
背景技术
相关技术中,数据处理方法的应用产品(比如:商业智能(BusinessIntelligence,BI))具有编辑计算字段的功能,用户可以通过计算字段对数据库中已有的字段进行计算,来生成新的字段;比如:数据库中存在两列字段:[销售额]、[成本],但是不知道商品的利润,就可以书写计算字段表达式[销售额]-[成本],将表达式[销售额]-[成本]拖到数据处理方法的应用产品(比如:BI产品)的界面上之后,系统会自动生成相应的结构化查询语言(Structured Query Language,SQL)去数据库查询出结果。
在一些情况中,业务往往非常复杂,需要书写的计算字段表达式也会非常复杂,可能会用到多个函数的组合,用户可能无法一次就把计算字段表达式写对,进而,就会得到错误的查询结果。为了得到正确的结果,用户需要根据数据库返回的查询结果对表达式进行修改,直到数据库返回正确的查询结果,以达到调试表达式的目的;或者,将表达式的各个部分复制出来,建立新的计算字段,分别观察从数据库中查询出来的结果的是否正确,来确认表达式的每个部分是否正确,以此来逐步修正错误的计算字段表达式,直到数据库返回正确的查询结果。
发明内容
然而,相关技术中,在使用BI产品时,由于用户需要不断修改计算字段表达式,并等待数据库的查询结果来调试计算字段表达式,因此,调试过程所带来的计算成本非常高,调试效率也比较低,且调试策略也非常依赖经验。
为此,非常需要一种改进的数据处理方法,可以改善调试过程中计算成本高导致调试效率低、非常依赖经验的问题。
在本上下文中,本公开的实施方式期望提供一种数据处理方法、数据处理装置、计算机可读存储介质及电子设备。
根据本公开的第一方面,提供一种数据处理方法,包括:获取对待处理表达式进行计算的最终计算结果和计算过程信息;所述待处理表达式是对一个或多个基础字段进行计算的表达式;在调试界面中显示所述待处理表达式和所述最终计算结果;响应于对所述调试界面中展开控件的触发操作,按照所述待处理表达式的计算顺序显示所述计算过程信息;所述最终计算结果和所述计算过程信息用于对所述待处理表达式进行调试。
在一种实施方式中,所述待处理表达式包括一个或多个函数,所述计算过程信息包括所述函数对应的中间计算结果;所述响应于对所述调试界面中展开控件的触发操作,按照所述待处理表达式的计算顺序显示所述计算过程信息,包括:响应于对所述调试界面中展开控件的触发操作,按照所述待处理表达式的计算顺序显示所述函数以及所述函数对应的中间计算结果。
在一种实施方式中,所述待处理表达式的函数之间具有层级关系,所述层级关系是根据所述计算顺序确定的;所述展开控件包括与当前已显示的函数关联的子展开控件;所述响应于对所述调试界面中展开控件的触发操作,按照所述待处理表达式的计算顺序显示所述函数以及所述函数对应的中间计算结果,包括:响应于对所述子展开控件的触发操作,根据所述层级关系显示所述当前已显示的函数的下一级函数以及所述下一级函数对应的中间计算结果。
在一种实施方式中,所述获取对待处理表达式进行计算的最终计算结果和计算过程信息,包括:获取所述待处理表达式,并获取所述待处理表达式中的基础字段的样例数据;采用所述样例数据对所述待处理表达式进行计算,得到所述最终计算结果和所述计算过程信息。
在一种实施方式中,所述获取所述待处理表达式,包括:响应于对用户界面的的输入操作,获取完整表达式;响应于从所述完整表达式中选取子表达式的操作,将所述子表达式作为所述待处理表达式;所述用户界面与所述调试界面能进行切换。
在一种实施方式中,在所述获取所述待处理表达式之后,所述方法还包括:将所述待处理表达式对应的完整表达式转换为第一语法树,并根据所述第一语法树确定所述待处理表达式对应的最短合法子表达式;根据所述最短合法子表达式确定所述待处理表达式的合法性;在所述待处理表达式不合法的情况下,采用所述最短合法子表达式合法化所述待处理表达式。
在一种实施方式中,所述根据所述最短合法子表达式确定所述待处理表达式的合法性,包括:将所述待处理表达式与所述最短合法子表达式进行比对;若所述待处理表达式与所述最短合法子表达式一致,则所述待处理表达式合法;若所述待处理表达式与所述最短合法子表达式不一致,则确定所述待处理表达式不合法。
在一种实施方式中,所述根据所述第一语法树确定所述待处理表达式对应的最短合法子表达式,包括:将所述待处理表达式与所述第一语法树中节点对应的原始表达式进行匹配;所述原始表达式为所述节点在完整表达式中的表达式;将包括所述待处理表达式的最短原始表达式确定为所述最短合法子表达式。
在一种实施方式中,所述获取所述待处理表达式中的基础字段的样例数据,包括:从所述调试界面中的参数取值区域获取输入数据,将所述输入数据作为所述样例数据。
在一种实施方式中,所述方法还包括:响应于在表达式检测区域中修改所述待处理表达式的操作,若检测到所述待处理表达式中的基础字段发生变化,则根据变化后的基础字段更新所述参数取值区域中对应的字段列表,以重新获取所述变化后的基础字段的样例数据。
在一种实施方式中,所述获取所述待处理表达式中的基础字段的样例数据,包括:从本地数据源获取所述样例数据;所述本地数据源包括预设条数的样例数据。
在一种实施方式中,所述方法还包括:响应于对所述参数取值区域关联的数据更换控件的触发操作,从所述本地数据源中重新获取所述样例数据。
在一种实施方式中,采用所述样例数据对所述待处理表达式进行计算,得到所述最终计算结果和所述计算过程信息,包括:按照所述待处理表达式的计算顺序,将所述待处理表达式转换为对应的第二语法树;基于所述第二语法树对样例数据进行计算,得到所述最终计算结果和所述计算过程信息。
在一种实施方式中,按照所述待处理表达式的计算顺序,将所述待处理表达式转换为对应的第二语法树,包括:根据所述待处理表达式中的函数,生成函数节点,并根据所述函数之间的计算顺序,确定所述函数节点之间的层级关系;若所述函数中包括字段和/或常量,则以所述函数对应的函数节点为父节点,生成所述字段对应的字段节点和/或所述常量对应的常量节点;根据所述函数节点、所述字段节点和/或所述常量节点生成所述第二语法树。
在一种实施方式中,所述基于所述第二语法树对样例数据进行计算,得到所述计算过程信息,包括:获取所述第二语法树的节点的属性信息;所述第二语法树的节点包括所述函数节点、所述字段节点、所述常量节点中的至少一种;根据所述第二语法树的节点的属性信息,生成所述计算过程信息;所述计算过程信息的层级关系与所述第二语法树中函数节点父子关系对应。
在一种实施方式中,所述方法还包括:响应于对所述待处理表达式的调试操作,对调试后的待处理表达式重新进行计算。
根据本公开的第二方面,提供一种数据处理装置,包括:
获取模块,被配置为获取对待处理表达式进行计算的最终计算结果和计算过程信息;所述待处理表达式是对一个或多个基础字段进行计算的表达式;
结果显示模块,被配置为在调试界面中显示所述待处理表达式和所述最终计算结果;
过程显示模块,被配置为响应于对所述调试界面中展开控件的触发操作,按照所述待处理表达式的计算顺序显示所述计算过程信息;所述最终计算结果和所述计算过程信息用于对所述待处理表达式进行调试。
在一种实施方式中,所述待处理表达式包括一个或多个函数,所述计算过程信息包括所述函数对应的中间计算结果;所述过程显示模块,被配置为:
响应于对所述调试界面中展开控件的触发操作,按照所述待处理表达式的计算顺序显示所述函数以及所述函数对应的中间计算结果。
在一种实施方式中,所述待处理表达式的函数之间具有层级关系,所述层级关系是根据所述计算顺序确定的;所述展开控件包括与当前已显示的函数关联的子展开控件;所述过程显示模块,被配置为:
响应于对所述子展开控件的触发操作,根据所述层级关系显示所述当前已显示的函数的下一级函数以及所述下一级函数对应的中间计算结果。
在一种实施方式中,所述获取模块,被配置为:
获取所述待处理表达式,并获取所述待处理表达式中的基础字段的样例数据;
采用所述样例数据对所述待处理表达式进行计算,得到所述最终计算结果和所述计算过程信息。
在一种实施方式中,所述获取模块,被配置为:
响应于对用户界面的的输入操作,获取完整表达式;响应于从所述完整表达式中选取子表达式的操作,将所述子表达式作为所述待处理表达式;所述用户界面与所述调试界面能进行切换。
在一种实施方式中,数据处理装置还包括第一调试模块,被配置为:
将所述待处理表达式对应的完整表达式转换为第一语法树,并根据所述第一语法树确定所述待处理表达式对应的最短合法子表达式;根据所述最短合法子表达式确定所述待处理表达式的合法性;在所述待处理表达式不合法的情况下,采用所述最短合法子表达式合法化所述待处理表达式。
在一种实施方式中,所述第一调试模块,被配置为:
将所述待处理表达式与所述最短合法子表达式进行比对;若所述待处理表达式与所述最短合法子表达式一致,则所述待处理表达式合法;若不一致,则不合法。
在一种实施方式中,所述第一调试模块,被配置为:
将所述待处理表达式与所述第一语法树中节点对应的原始表达式进行匹配;所述原始表达式为所述节点在完整表达式中的表达式;将包括所述待处理表达式的最短原始表达式确定为所述最短合法子表达式。
在一种实施方式中,所述获取模块,被配置为:
从所述调试界面中的参数取值区域获取输入数据,将所述输入数据作为所述样例数据。
在一种实施方式中,数据处理装置还包括数据更新模块,被配置为:
响应于在表达式检测区域中修改所述待处理表达式的操作,若检测到所述待处理表达式中的基础字段发生变化,则根据变化后的基础字段更新所述参数取值区域中对应的字段列表,以重新获取所述变化后的基础字段的样例数据。
在一种实施方式中,所述获取模块,被配置为:
从本地数据源获取所述样例数据;所述本地数据源包括预设条数的样例数据。
在一种实施方式中,所述获取模块,被配置为:
响应于对所述参数取值区域关联的数据更换控件的触发操作,从所述本地数据源中重新获取所述样例数据。
在一种实施方式中,所述数据处理装置还包括第二调试模块,被配置为:
按照所述待处理表达式的计算顺序,将所述待处理表达式转换为对应的第二语法树;基于所述第二语法树对样例数据进行计算,得到所述计算结果和所述计算过程信息。
在一种实施方式中,所述第二调试模块,被配置为:
根据所述待处理表达式中的函数,生成函数节点,并根据所述函数之间的计算顺序,确定所述函数节点之间的层级关系;若所述函数中包括字段和/或常量,则以所述函数对应的函数节点为父节点,生成所述字段对应的字段节点和/或所述常量对应的常量节点;根据所述函数节点、所述字段节点和/或所述常量节点生成所述第二语法树。
在一种实施方式中,所述第二调试模块,被配置为:
获取所述第二语法树的节点的属性信息;所述第二语法树的节点包括所述函数节点、所述字段节点、所述常量节点中的至少一种;根据所述第二语法树的节点的属性信息,生成所述计算过程信息;所述计算过程信息的层级关系与所述第二语法树中函数节点父子关系对应。
在一种实施方式中,所述第二调试模块,被配置为:
响应于对所述待处理表达式的调试操作,对调试后的待处理表达式重新进行计算。
根据本公开实施方式的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面的数据处理方法。
根据本公开实施方式的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述第一方面的数据处理方法。
根据本公开实施方式的数据处理方法、数据处理装置、计算机可读存储介质及电子设备,对待处理表达式的最终计算结果进行显示,并通过设置展开控件对计算过程信息进行显示。如此,一方面,用户能够同时根据最终计算结果和计算过程信息对待处理表达式进行整体调试,提高了待处理表达式的调试效率;另一方面,通过对展开控件的触发,能够查看具体某一步的计算过程信息,以在该步计算过程信息与预期计算过程信息不符的情况下,基于该步计算过程信息对待处理表达式进行局部调试,进一步提高了待处理表达式的调试效率。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
图1示出本公开实施方式中一种数据处理方法的流程图;
图2A示出本公开实施方式中一种数据处理方法中的调试界面的示意图;
图2B示出本公开实施方式中一种数据处理方法中计算过程信息的示例图;
图3示出本公开实施方式中一种数据处理方法中计算过程的流程图;
图4A示出本公开实施方式中一种数据处理方法中确定待处理表达式的流程图;
图4B示出本公开实施方式中一种数据处理方法中用户界面的示例图;
图5示出本公开实施方式中一种数据处理方法中合法性校验的流程图;
图6示出本公开实施方式中一种数据处理方法中合法性校验的流程图;
图7示出本公开实施方式中一种数据处理方法中合法性校验的流程图;
图8示出本公开实施方式中一种数据处理方法中计算过程的流程图;
图9示出本公开实施方式中一种数据处理方法中语法树的示例图;
图10示出本公开实施方式中一种数据处理方法中计算过程的流程图;
图11示出本公开实施方式中一种数据处理方法中生成计算过程信息的流程图;
图12示出本公开实施方式中一种数据处理装置的结构示意图;
图13示出本公开实施方式中一种电子设备的结构示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本公开的实施方式,提供一种数据处理方法、装置、存储介质及电子设备。
在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本公开的若干代表性实施方式,详细阐述本公开的原理和精神。
发明概述
相关技术中,数据处理方法的应用产品(比如:BI产品)具有编辑计算字段的功能,用户可以通过计算字段对数据库中已有的字段进行计算,来生成新的字段;比如:数据库中存在两列字段:[销售额]、[成本],但是不知道商品的利润,就可以书写计算字段表达式[销售额]-[成本],将表达式[销售额]-[成本]拖到数据处理方法的应用产品(比如:BI产品)的界面上之后,系统会自动生成相应的结构化查询语言(Structured Query Language,SQL)去数据库查询出结果,但此时计算过程所消耗的计算资源是非常巨大的,因为系统基于结构化查询语句所拖出的数据包含“销售额”字段下的所有数据以及“成本”字段下的所有数据,而[销售额]-[成本]的计算就发生在这两个字段下的所有数据之间。
在一些情况中,业务往往非常复杂,需要书写的计算字段表达式也会非常复杂,可能会用到多个函数的组合,用户可能无法一次就把计算字段表达式写对,进而,就会得到错误的查询结果。为了得到正确的结果,用户需要根据数据库返回的查询结果对表达式进行修改,直到数据库返回正确的查询结果,以达到调试表达式的目的;或者,将表达式的各个部分复制出来,建立新的计算字段,分别观察从数据库中查询出来的结果的是否正确,来确认表达式的每个部分是否正确,以此来逐步修正错误的计算字段表达式,直到数据库返回正确的查询结果。
综上,本发明人发现,相关技术中,在使用BI产品时,存在以下两点问题:(1)用户需要通过不断修改计算字段表达式,然后等待数据库计算出结果的方式来进行调试,这个调试的过程需要消耗大量计算资源,时间成本很高,同时也非常依赖经验;(2)每次调试都需要去用户数据库查询才能得到计算字段的查询结果,调试的过程会给数据库带来不小的压力,用户也没法很快得到结果,调试效率很低。
鉴于上述内容,本公开提供一种数据处理方法、装置、存储介质及电子设备,根据对待处理表达式进行计算的最终计算结果和计算过程信息对待处理表达式进行调试。一方面,不仅为用户显示最终计算结果,还显示计算过程信息,以便于用户根据计算过程信息对待处理表达式进行调试,提高了待处理表达式的调试效率。另一方面,对待处理表达式进行计算是基于样例数据实现的,该样例数据来自用户输入或来自本地数据源,无需遍历数据库数据来得到计算结果,降低了计算成本,提高了计算效率。
在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。
应用场景总览
需要注意的是,下述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
在使用BI产品的过程中,用户在对待处理表达式进行调试时,根据调试界面显示的待处理表达式的最终计算结果和计算过程信息调试待处理表达式,以使待处理表达式格式正确、逻辑正确。
示例性方法
本公开的示例性实施方式首先提供一种数据处理方法,可以包括:
获取对待处理表达式进行计算的最终计算结果和计算过程信息;待处理表达式是对一个或多个基础字段进行计算的表达式;
在调试界面中显示待处理表达式和最终计算结果;
响应于对调试界面中展开控件的触发操作,按照待处理表达式的计算顺序显示计算过程信息;
最终计算结果和计算过程信息用于对待处理表达式进行调试。
图1示出了该数据处理方法的示例性流程,下面分别对图1中的每个步骤进行具体说明。
参考图1,步骤S110中,获取对待处理表达式进行计算的最终计算结果和计算过程信息。
字段是指数据库中的一类信息,可以是数据的属性名。示例性的,在数据库中,表的每一行可以是一个元组,每一列可以是一种属性,则每一列为一个字段。在同一字段下,不同元组可以有不同的值。
基础字段是数据库中已有的字段。例如,数据库中本身包括[销售额]、[成本]两个字段,这两个字段均是基础字段。
待处理表达式是对一个或多个基础字段进行计算的表达式,通过对基础字段进行组合和计算,产生新的字段。所产生的新的字段可以是计算字段。
待处理表达式包括一个或多个函数;在待处理表达式包括一个函数的情况下,待处理表达式包括一个计算逻辑;在待处理表达式包括多个函数的情况下,待处理表达式包括多个计算逻辑,这多个计算逻辑可以包括一种计算逻辑,也可以包括多种计算逻辑;比如:add(A,B,C))、IF[参数]*[计算类型]=“计算平均每单利润”THEN sum([订单金额]-[订单成本])/countd([订单ID])ELSE sum([订单金额]-[订单成本])/countd([商品ID]),此处不做限定。
最终计算结果,即将数据代入待处理表达式进行计算得到的结果,示例性的:如图2所示,待处理表达式为IF[参数]*[计算类型]=“计算平均每单利润”THEN sum([订单金额]-[订单成本])/countd([订单ID])ELSE sum([订单金额]-[订单成本])/countd([商品ID]),订单金额数据是3000,订单成本数据是1000,存在一个订单,且订单ID为101000011,那么,sum([订单金额]-[订单成本])/countd([订单ID])的最终计算结果为3000-1000=2000;在订单ID数据不完整的情况下,可以基于商品ID对sum([订单金额]-[订单成本])/countd([商品ID])进行计算得到最终计算结果3000-1000=2000;其中,待处理表达式IF[参数]*[计算类型]=“计算平均每单利润”THEN sum([订单金额]-[订单成本])/countd([订单ID])ELSE sum([订单金额]-[订单成本])/countd([商品ID])的意思是:如果计算平均每单利润,那么,采用“sum([订单金额]-[订单成本])/countd([订单ID])”进行计算,否则,采用“sum([订单金额]-[订单成本])/countd([商品ID])”;对于一件商品而言,无论是在销售端产生的订单ID,还是在生产端产生的商品ID,都能唯一标识该商品,也即订单ID和商品ID都是该商品不同维度的标识,因此,基于订单ID确定总订单数,或者基于商品ID确定总商品数,则总利润与总订单数的比值,或者总利润与总商品数的比值,均能算出平均每单利润,且两者的计算结果相等。
计算过程信息包括函数对应的中间计算结果,在一种实施方式中,上述步骤S130可以进一步包括以下步骤:
响应于对调试界面中展开控件的触发操作,按照待处理表达式的计算顺序显示函数以及函数对应的中间计算结果。
示例性的,对于待处理表达式ROUND([数量]*([销售额]-[成本]),2),先计算减法,再计算乘法,最后与常量做相应的计算;这里,待处理表达式包括三个函数,即,ROUND([数量]*([销售额]-[成本]),2)、[数量]*([销售额]-[成本])和[销售额]-[成本],对于函数ROUND([数量]*([销售额]-[成本]),2)而言,[数量]*([销售额]-[成本])和[销售额]-[成本]的计算结果是中间计算结果,对于函数[数量]*([销售额]-[成本])而言,[销售额]-[成本]的计算结果是中间计算结果。
展开控件可以采用符号“+”表示,也可以采用“▼”表示,此处不做限定。对于本步骤,对于ROUND([数量]*([销售额]-[成本]),2)而言,先展示ROUND([数量]*([销售额]-[成本]),2)以及对应的计算结果,再展示[数量]*([销售额]-[成本])以及对应的计算结果,最后展示[销售额]-[成本]以及对应的计算结果,进而,计算过程信息如下所示:
▼ROUND([数量]*([销售额]-[成本]),2) 计算结果1
▼[数量]*([销售额]-[成本]) 计算结果2
[销售额]-[成本] 计算结果3
其中,计算结果1为最终计算结果,计算结果2和3为中间计算结果。
继续参考图1,步骤S120中,在调试界面中显示待处理表达式和最终计算结果。
其中,调试界面是提供的对待处理表达式进行调试的界面,在调试界面中显示待处理表达式和最终计算结果,是为了便于用户根据最终计算结果调试待处理表达式。
示例性的,如图2A所示,将上述最终计算结果2000显示在最终计算结果显示区域,将计算过程信息IF[参数]*[计算类型]=“计算平均每单利润”THEN sum([订单金额]-[订单成本])/countd([订单ID])ELSE sum([订单金额]-[订单成本])/countd([商品ID])显示在计算过程信息显示区域;如图2B所示,待处理表达式ROUND([数量]*([销售额]-[成本]),2)的中间计算过程信息为[数量]*([销售额]-[成本])和[销售额]-[成本];对待处理表达式ROUND([数量]*([销售额]-[成本])前的展开控件“▼”进行操作,展开[数量]*([销售额]-[成本]),对[数量]*([销售额]-[成本])前的子展开控件“▼”进行操作,展开[销售额]-[成本]。
继续参考图1,步骤S130中,响应于对调试界面中展开控件的触发操作,按照待处理表达式的计算顺序显示计算过程信息。
其中,最终计算结果和计算过程信息用于对待处理表达式进行调试。
展开控件的功能是按照待处理表达式的计算顺序显示计算过程信息,这里,可以将计算顺序在前的计算过程信息显示在计算顺序在后的计算过程信息的下方,也可以将计算顺序在前的计算过程信息显示在计算顺序在后的计算过程信息的上方,此处不做限定。此外,计算过程信息是指:根据计算过程生成的表征计算过程、计算顺序的信息,比如:上述步骤S110的示例中,平均每单利润3000-1000=2000中,2000是计算结果,表达式“sum([订单金额]-[订单成本])/countd([订单ID])”与表达式“sum([订单金额]-[订单成本])/countd([商品ID])”是计算过程信息。
示例性的,如图2所示,通过鼠标点击IF[参数]*[计算类型]=“计算平均每单利润”前的展开控件“▼”,显示THEN sum([订单金额]-[订单成本])/countd([订单ID])ELSEsum([订单金额]-[订单成本])/countd([商品ID]);其中,THEN sum([订单金额]-[订单成本])/countd([订单ID])ELSE sum([订单金额]-[订单成本])/countd([商品ID])是IF[参数]*[计算类型]=“计算平均每单利润的计算过程信息。其中,对展开控件“▼”的触发操作除了可以通过鼠标的点击操作来实现外,还可以通过触摸或者光标停留等方式来实现。
本实施例的方法,用户可以根据最终计算结果和计算过程信息对待处理表达式进行调试;比如:最终计算结果与理论计算结果(预期计算结果)之间存在偏差,则对待处理表达式进行整体调试;或者,根据计算过程信息,对待处理表达式进行局部调试;比如:根据计算过程信息“[订单金额]-[订单成本]”对待处理表达式中与该部分对应的表达式进行调试。
为了便于用户根据计算过程信息对待处理表达式进行局部调试,计算过程信息可以根据计算顺序层层展开;在一种实施方式中,待处理表达式的函数之间具有层级关系,层级关系是根据计算顺序确定的;展开控件包括与当前已显示的函数关联的子展开控件,上述步骤可以进一步包括以下步骤:
响应于对子展开控件的触发操作,根据层级关系显示当前已显示的函数的下一级函数以及下一级函数对应的中间计算结果。
其中,层级关系可以理解为计算顺序在后的函数是计算顺序在前的函数的上一层级,比如:函数[数量]*([销售额]-[成本])是函数[销售额]-[成本]的上一层级。
待处理表达式的函数之间具有嵌套与被嵌套的关系,被嵌套的函数可以是嵌套函数的下一级函数。如上,待处理表达式“ROUND([数量]*([销售额]-[成本]),2)”包括三个函数:ROUND函数、乘法函数、减法函数。其中,乘法函数“([数量]*([销售额]-[成本]”嵌套于ROUND函数“ROUND([数量]*([销售额]-[成本]),2)”中,是ROUND函数的下一级函数;减法函数“[销售额]-[成本]”嵌套于乘法函数“([数量]*([销售额]-[成本]”中,是乘法函数的下一级函数。
子展开控件是相对当前已显示函数对应的展开控件而言的,即,当前已显示函数对应展开控件,则当前已显示函数的下一层级函数对应子展开控件;子展开控件与展开控件的功能相同,是基于函数的层级关系关联起来的功能相同的控件,比如:如图2B所示,对于上述函数▼ROUND([数量]*([销售额]-[成本]),2)而言,其中的“▼”为展开控件,▼[数量]*([销售额]-[成本])中的“▼”是子展开控件。
展开(显示)是根据计算顺序确定的层级关系层层展开(显示)的,即,对于展开控件的触发操作会展示当前已显示的函数的下一级函数,而不会显示下下一级函数;比如:对▼ROUND([数量]*([销售额]-[成本]),2)中展开控件“▼”的触发操作,会展示▼[数量]*([销售额]-[成本]),而不会展示[销售额]-[成本];对▼[数量]*([销售额]-[成本])中子展开控件“▼”的触发操作,才会展示[销售额]-[成本]。
待处理表达式的调试可以由用户手动调试,也可以由系统/程序自动调试;比如:用户根据最终计算结果的正确与否直接调试待处理表达式,也可以是用户通过对返回的选项进行选择来调试待处理表达式,还可以是系统/程序直接对待处理表达式进行调试。
进一步地,待处理表达式为[销额]-[利润]=[成本],销售额数据为1000,成本数据为300,正确的计算结果是700,而显示的计算结果为300,则用户根据显示的计算结果与正确的计算结果之间的偏差,将待处理表达式调整为[销额]-[成本]=[利润];再比如:用户通过对返回的[销售额]-[成本]、[销售额]-[成本]=[利润]进行选择,对待处理表达式进行调试,将待处理表达式[销额]-[成本]=[利润]调试为[销售额]-[成本]=[利润];再比如:机器直接根据[销售额]-[成本]、[销售额]-[成本]=[利润],将待处理表达式[销额]-[成本]=[利润]调试为[销售额]-[成本]=[利润],显然,通过调试,将待处理表达式中的[销额]调试为[销售额],将缺少的“售”进行了补充,使得调试后的待处理表达式格式正确、逻辑正确。
本实施例的方法,由于计算过程信息可以根据计算顺序层层展开,进而,用户可以准确找到需要调试的局部待处理表达式对应的中间计算过程信息及对应的中间计算结果;如此,能够准确高效的对局部待处理表达式进行调试。
为了提高最终计算结果的计算效率,可以将样例数据代入待处理表达式在本地直接进行计算;在一种实施方式中,参考图3所示,上述步骤S110可以进一步包括以下步骤S310和S320:
步骤S310、获取待处理表达式,并获取待处理表达式中的基础字段的样例数据。
其中,样例数据即能够代入待处理表达式对待处理表达式进行计算的数据,比如:待处理表达式为[销售额]-[成本]=[利润],销售额数据为1000,成本数据为300,1000和300就是样例数据,其中,1000是[销售额]的样例数据,300是[成本]的样例数据。
步骤S320、采用样例数据对待处理表达式进行计算,得到最终计算结果和计算过程信息。
样例数据可以通过用户的输入获得,该种情况下,可以将用户输入的样例数据直接代入到待处理表达式中,通过本地计算即可获得最终计算结果,并得到相应的计算过程信息。在又一实施例中,样例数据也可以是取自相应数据源中的若干条数据,该种情况下,将所选取的样例数据代入到待处理表达式中,由于样例数据所涉及的数据量远远小于数据源中总体的数据量,因而也可以在本地进行计算,从而能够快速获得最终计算结果,并得到对应的计算过程信息。
此外,需要说明的是,相关技术中,不具备样例数据的输入功能,也不是取自数据源中的若干条数据,而是遍历线上数据库中的所有数据得到查询结果,进而根据查询结果调试待处理表达式,因此,不仅无法在本地进行计算,而且计算成本非常高。
为了提高调试效率,待处理表达式可以是完整表达式中的一部分;在一种实施方式中,参考图4A所示,上述步骤S210可以进一步包括以下步骤S410和S420:
步骤S410、响应于对用户界面的的输入操作,获取完整表达式。
其中,用户界面用于用户输入完整表达式;用户界面包括调试按钮,在用户输入完整表达式后,触发调试按钮,即可切换至调试界面,如图4B所示。
完整表达式的获取可以实时获取,也可以在全部完整表达式编辑完成后获取(比如:在用户停止输入操作达到预设时长时获取),此处不做限定。
步骤S420、响应于从所述完整表达式中选取子表达式的操作,将所述子表达式作为所述待处理表达式。
其中,所述用户界面与所述调试界面能进行切换。
其中,用户界面用于用户输入完整表达式,该完整表达式格式正确,即,符合语法规则,但可能逻辑正确,也可能逻辑错误。对应地,从完整表达式中选取的待处理表达式可能格式正确,也可能格式错误,可能逻辑正确,也可能逻辑错误;比如:完整表达式为ROUND([数量]*([成本]-[销售额]),2),从中选取的待处理表达式为[数量]*([成本]-[销售,可见,表达式中的“[销售”是不完整的,缺少“额])”,存在格式错误。
完整表达式是用户通过用户界面输入的;在一种实施方式中,该用户界面提供调试控件,当用户输入完整表达式,选中待处理表达式后,触发调试控件,则跳转至调试界面对待处理表达式进行调试,以使待处理表达式格式正确、逻辑正确;进而实现完整表达式的调试,以使完整表达式逻辑正确,如此,能够基于已有的完整表达式衍生出的新的表达式与新的字段,无需用户从零开始编写待处理表达式,更加方便高效。
待处理表达式的调试可以分为两大部分:格式调试和逻辑调试;其中,格式调试是为了保证待处理表达式符合语法规则(即字段完整);逻辑调试是为了保证待处理表达式计算逻辑正确;在进行逻辑调试之前,先进行格式调试;在一种实施方式中,参考图5所示,在上述步骤S210之后,该方法还可以包括以下步骤:
步骤S510、将待处理表达式对应的完整表达式转换为第一语法树,并根据第一语法树确定待处理表达式对应的最短合法子表达式。
其中,第一语法树,即,完整表达式的语法树,该语法包括三类节点,常量节点、字段节点和函数节点,且每一节点存储的属性信息不同。
合法性可以包括:符合语法规则(格式正确),比如:ROUND([数量]*([销售额]-[成本]),2),字段完整,为符合语法规则的完整的表达式,ROUND([数量]*([售额]-[成]),2),字段“[成]”不完整,为不符合语法规则(格式不正确)的完整表达式。
最短合法子表达式可以是,包括待处理表达式的子表达式中最短且合法的子表达式,比如:待处理表达式为[售额]-[成],包括待处理表达式的子表达式有[销售额]-[成本]、[数量]*([销售额]-[成本]和ROUND([数量]*([销售额]-[成本]),2),那么,子表达式[销售额]-[成本]为待处理表达式的最短合法子表达式。
步骤S520、根据最短合法子表达式确定待处理表达式的合法性。
其中,最短合法子表达式是包括待处理表达式的子表达式中最短且合法的子表达式,因此,采用最短合法子表达式来确定待处理表达式的合法性,更加简洁高效。
在一种实施方式中,可以通过将待处理表达式与对应的最短合法子表达式进行比对来确定待处理表达式的合法性,参考图6所示,上述步骤S520可以包括以下步骤:
步骤S610:将待处理表达式与最短合法子表达式进行比对。
其中,由于可以将最短合法子表达式作为参考,因此,可以通过将待处理表达式与对应的最短合法子表达式进行比对来确定待处理表达式的合法性,,比如:将待处理表达式[售额]-[成]与对应的最短合法子表达式[销售额]-[成本]进行比对。
步骤S620、若待处理表达式与最短合法子表达式一致,则待处理表达式合法;若所述待处理表达式与所述最短合法子表达式不一致,则确定所述待处理表达式不合法。
其中,由于可以将最短合法子表达式作为参考,因此,在比对结果一致的情况下,说明待处理表达式正确,即待处理表达式合法;在比对结果不一致的情况下,说明待处理表达式错误,即待处理表达式不合法;比如:将待处理表达式[售额]-[成]与对应的最短合法子表达式[销售额]-[成本]进行比对,待处理表达式与对应的最短合法子表达式不一致,则待处理表达式不合法。
步骤S630、在待处理表达式不合法的情况下,采用最短合法子表达式合法化待处理表达式。
其中,是否合法可以通过待处理表达式对应的最短合法子表达式来确定,进而,在待处理表达式不合法的情况下,采用最短合法子表达式合法化待处理表达式,以使待处理表达式格式正确,符合语法规则;这里,合法化可以通过最短合法子表达式替换待处理表达式,也可以通过最短合法子表达式修正待处理表达式等实现,此处不做限定。
本实施例的方法,通过引入语法树,以基于语法树确定包括待处理表达式的最短合法子表达式,进而采用该最短合法子表达式合法化待处理表达式,提高了合法化待处理表达式的效率,且达到了待处理表达式格式调试的目的。
上述最短合法子表达式可以通过将待处理表达式与第一语法树进行匹配来确定;在一种实施方式中,参考图7所示,上述步骤S510可以包括以下步骤:
步骤S710、将待处理表达式与第一语法树中节点对应的原始表达式进行匹配。
其中,原始表达式为节点在完整表达式中的表达式;比如:完整表达式为ROUND([数量]*([成本]-[销售额]),2),从中选取的待处理表达式为[数量]*([成本]-[销售,那么,原始表达式为[成本]-[销售额]、[数量]*([成本]-[销售额])和ROUND([数量]*([成本]-[销售额]),2)。
步骤S720、将包括待处理表达式的最短原始表达式确定为最短合法子表达式。
其中,步骤S710将待处理表达式与第一语法树中节点对应的原始表达式进行匹配能够得到的多个包括待处理表达式的原始表达式,本步骤中的最短原始表达式,即上述确定的多个包括待处理表达式的原始表达式中最短的原始表达式;由于包括待处理表达式的原始表达式是一个或多个,因此,将包括待处理表达式的最短原始表达式确定为最短合法子表达式,能够节约调试成本;比如:接步骤S710的例子,将上述原始表达式[成本]-[销售额]、[数量]*([成本]-[销售额])和ROUND([数量]*([成本]-[销售额]),2)中的“[数量]*([成本]-[销售额])”确定为待处理表达式“[数量]*([成本]-[销售”的最短合法子表达式。
本实施例的方法,完整表达式转换成的第一语法树,节点中记载的字段与完整表达式一致,可能格式正确,也可能格式错误;然而,第一语法树中节点中记载的原始表达式是格式正确的,该原始表达式可以通过预先建立的数据库获取,也可以通过其他方式获取;进而,将待处理表达式与第一语法树中节点中记载的原始表达式进行匹配,即可得到包括待处理表达式的原始表达式,进而,从这些原始表达式中确定出包括待处理表达式的最短原始表达式,能够高效的实现对待处理表达式的合法化。
在样例数据是基于用户输入获得的情况下,样例数据可以是用户输入参数取值区域,从参数取值区域获取的;在一种实施方式中,上述步骤S210可以包括以下步骤:
从调试界面中的参数取值区域获取输入数据,将输入数据作为样例数据。
其中,参数取值区域可以设置在调试界面中待处理表达式下方,也可以设置在调试界面中待处理表达式上方等,此处不做限定,能够便于用户根据待处理表达式输入对应的样例数据即可;如此,可以直接采用样例数据对待处理表达式进行计算;如此,可以直接在本地进行计算,节约了计算成本。
参数取值区域包括字段列表和对应的样例数据,其中,样例数据提供编辑功能,可供用户输入数据,如图2所示,订单金额、订单成本和订单ID为字段列表,3000、1000和101000011分别为对应的样例数据,可以是用户输入的数据,也可以是从数据源中获取的。
待处理表达式的逻辑调试可以是用户根据最终计算结果和计算过程信息进行手动调试,因此,用户可以对待处理表达式进行编辑,在一种实施方式中,该方法可以包括以下步骤:
响应于在表达式检测区域中修改待处理表达式的操作,若检测到待处理表达式中的基础字段发生变化,则根据变化后的基础字段更新参数取值区域中对应的字段列表,以重新获取变化后的基础字段的样例数据。
其中,表达式检测区域是指显示待处理表达式的区域,该区域为用户提供编辑功能,用户能够在该区域对待处理表达式进行编辑;当检测到用户待处理表达式发生变化,说明用户对待处理表达式进行了调试;那么,参数取值区域的字段列表也会相应进行更新,此时,采用更新后的字段列表对应的样例数据对更新后的待处理表达式进行计算。
在样例数据是基于数据源获得的情况下,数据源中可以存储一条样例数据,也可以存储预设条数的样例数据,作为备用数据;一般地,一条数据即可满足需求;在一种实施方式中,上述步骤S210可以包括以下步骤:
从本地数据源获取样例数据;本地数据源包括预设条数的样例数据。
其中,除了上述直接从参数取值区域获取样例数据对待处理表达式进行计算,还可以通过本地数据源中预设条数的样例数据对待处理表达式进行计算;如此,通过本地数据源中一条或多条样例数据即可实现对待处理表达式的计算,克服了相关技术中遍历数据库中所有数据对待处理表达式进行计算导致计算成本高、调试效率低的问题。
在上述数据源包括预设条数的样例数据的情况下,为了提高最终计算结果的真实度,可以通过多条样例数据对最终计算结果进行验证,以减少待处理表达式的调试成本;在一种实施方式中,该方法可以包括以下步骤:
响应于对参数取值区域关联的数据更换控件的触发操作,从本地数据源中重新获取样例数据。
其中,调试界面还包括与参数取值区域关联的数据更换控件,如图2所示,“换一行数据”即为数据更换控件,在触发该数据更换控件后,即可从数据源中随机获取一行数据;如此,在采用本地数据源中的样例数据对待处理表达式进行计算的情况下,可以更换样例数据,以根据多条样例数据对待处理表达式进行计算的计算结果和计算过程信息对待处理表达式进行多次验证,以进一步保证调试准确度。
为了提高最终计算结果的计算效率,可以将待处理表达式转换为语法树,将样例数据代入语法树按照语法树的规则和结构进行计算;在一种实施方式中,采用样例数据对待处理表达式进行计算是通过将待处理表达式转换为语法树实现的,如图8所示,上述步骤S110可以包括以下步骤S810和S820:
步骤S810、按照待处理表达式的计算顺序,将待处理表达式转换为对应的第二语法树。
其中,第二语法树与上述第一语法树的转换原理相同,语法树按照计算顺序也可以视为具有层级关系的语法树,比如:对待处理表达式ROUND([数量]*([销售额]-[成本]),2)进行转换,可以转换为图9所示的语法树,此时,计算顺序的层级关系与语法树的层级关系一一对应。
步骤S820、基于第二语法树对样例数据进行计算,得到最终计算结果和计算过程信息。
其中,计算是将样例数据代入第二语法树通过第二语法树进行计算的,如此,能够得到最终计算结果和计算过程信息。
为了使待处理表达式与语法树保持一致,使语法树能够准确表达待处理表达式,语法树可以基于函数之间的计算顺序生成;在一种实施方式中,如图10所示,上述步骤S810可以包括以下步骤S1010至S1030:
步骤S1010、根据待处理表达式中的函数,生成函数节点,并根据函数之间的计算顺序,确定函数节点之间的层级关系。
其中,第二语法树中的层级关系与函数之间的层级关系一致;如此,第二语法树能够准确表达待处理表达式。
函数节点可以理解为进行加减乘除等运算的节点;比如:待处理表达式ROUND([数量]*([成本]-[销售额]),2)中有三个函数节点,即,ROUND节点,-(减法运算)节点和*(乘法运算)节点。
步骤S1020、若函数中包括字段和/或常量,则以函数对应的函数节点为父节点,生成字段对应的字段节点和/或常量对应的常量节点。
其中,以函数节点为父节点,以函数中包括的字段和/或常量为子节点;当然,也存在子节点仍是函数节点的情况,区别在于,子节点的函数节点是父节点的函数节点计算顺序在先的函数;比如:对于函数ROUND([数量]*([销售额]-[成本]),2),函数节点有三个:ROUND、*、-,其中,ROUND函数节点有两个子节点:2和*,即常量节点和函数节点;*函数节点有两个字节点:-和数量,即函数节点和字段节点;-函数节点有两个子节点:销售额和成本;即两个字段节点。
步骤S1030、根据函数节点、字段节点和/或常量节点生成第二语法树。其中,所有的函数节点、字段节点和/或常量节点构成第二语法树;示例性的,如图8所示,[成本]、[销售额]、-、[数量]、*、ROUND、2这些节点构成第二语法树。
由于语法树能够准确表达待处理表达式,且具有特定结构,因此,可以根据语法树的计算规则以及语法树节点中记载的信息,便捷的得到计算过程信息;在一种实施方式中,如图11所示,上述步骤S820可以包括以下步骤S1110和S1120:
步骤S1110、获取第二语法树的节点的属性信息;第二语法树的节点包括函数节点、字段节点、常量节点中的至少一种。
其中,对于函数节点,属性信息包括:函数的名称、函数的每个参数对应的语法树、节点对应的原始表达式内容、节点对应的原始表达式在整个表达式中的起始下标和结束下标。
对于常量节点,属性信息包括:常量本身、节点对应的原始表达式内容、节点对应的原始表达式在整个表达式中的起始下标和结束下标;比如:对于待处理表达式666+888+999,共有11个字符,各字符的下标从左至右为从0到10,而常量888的起始下标是4,结束下标是6。
对于字段节点,属性信息包括:字段对应的值、节点对应的原始表达式内容、节点对应的原始表达式在整个表达式中的起始下标和结束下标。
步骤S1120、根据第二语法树的节点的属性信息,生成计算过程信息。
其中,计算过程信息的层级关系与第二语法树中函数节点父子关系对应。
可以根据函数节点对应的子树生成计算过程信息,比如:对于函数ROUND([数量]*([销售额]-[成本]),2),函数节点有三个:ROUND、*、-,那么,ROUND函数节点对应的子树为ROUND([数量]*([销售额]-[成本]),2),*函数节点对应的子树为[数量]*([销售额]-[成本],-函数节点对应的子树为[销售额]-[成本]。
调试可以是一次也可以是多次,本次调试完成后,若还需要调试,进行下一次调试,在一种实施方式中,该方法还可以包括以下步骤:
响应于对待处理表达式的调试操作,对调试后的待处理表达式重新进行计算。
其中,对调试后的待处理表达式继续进行调试时,将样例数据代入待处理表达式重新进行计算,整个过程可以参考步骤S110至S130,重新计算后得到新的最终计算结果与计算过程信息,进而,可以根据新的最终计算结果与计算过程信息确定待处理表达式是否调试完成,或者做进一步的调试;如此,通过局部调试,以及多次调试,能够完成对待处理表达式的调试,进而,通过对待处理表达式的多次调试,能够得到准确的待处理表达式,使用户获得计算字段,满足用户需求。
示例性装置
在介绍了本公开示例性实施方式的数据处理方法之后,接下来,参考图12对本公开示例性实施方式的数据处理装置进行说明。
参考图12所示,数据处理装置1200可以包括:
获取模块1210,被配置为获取对待处理表达式进行计算的最终计算结果和计算过程信息;待处理表达式是对一个或多个基础字段进行计算的表达式;
结果显示模块1220,被配置为在调试界面中显示待处理表达式和最终计算结果;
过程显示模块1230,被配置为响应于对调试界面中展开控件的触发操作,按照待处理表达式的计算顺序显示计算过程信息;最终计算结果和计算过程信息用于对待处理表达式进行调试。
在一种实施方式中,待处理表达式包括一个或多个函数,计算过程信息包括函数对应的中间计算结果;过程显示模块1230,被配置为:响应于对调试界面中展开控件的触发操作,按照待处理表达式的计算顺序显示函数以及函数对应的中间计算结果。
在一种实施方式中,待处理表达式的函数之间具有层级关系,层级关系是根据计算顺序确定的;展开控件包括与当前已显示的函数关联的子展开控件;过程显示模块1230,被配置为:响应于对子展开控件的触发操作,根据层级关系显示当前已显示的函数的下一级函数以及下一级函数对应的中间计算结果。
在一种实施方式中,获取模块1210,被配置为:获取待处理表达式,并获取待处理表达式中的基础字段的样例数据;采用样例数据对待处理表达式进行计算,得到最终计算结果和计算过程信息。
在一种实施方式中,获取模块1210,被配置为:响应于对用户界面的的输入操作,获取完整表达式;响应于从所述完整表达式中选取子表达式的操作,将所述子表达式作为所述待处理表达式;所述用户界面与所述调试界面能进行切换。
在一种实施方式中,数据处理装置1200还包括第一调试模块1240,被配置为:将待处理表达式对应的完整表达式转换为第一语法树,并根据第一语法树确定待处理表达式对应的最短合法子表达式;根据最短合法子表达式确定待处理表达式的合法性;在待处理表达式不合法的情况下,采用最短合法子表达式合法化待处理表达式。
在一种实施方式中,第一调试模块1240,被配置为:将待处理表达式与最短合法子表达式进行比对;若待处理表达式与最短合法子表达式一致,则待处理表达式合法;若所述待处理表达式与所述最短合法子表达式不一致,则确定所述待处理表达式不合法。
在一种实施方式中,第一调试模块1240,被配置为:将待处理表达式与第一语法树中节点对应的原始表达式进行匹配;原始表达式为节点在完整表达式中的表达式;将包括待处理表达式的最短原始表达式确定为最短合法子表达式。
在一种实施方式中,获取模块1210,被配置为:从调试界面中的参数取值区域获取输入数据,将输入数据作为样例数据。
在一种实施方式中,数据处理装置1200还包括数据更新模块1250,被配置为:响应于在表达式检测区域中修改待处理表达式的操作,若检测到待处理表达式中的基础字段发生变化,则根据变化后的基础字段更新参数取值区域中对应的字段列表,以重新获取变化后的基础字段的样例数据。
在一种实施方式中,获取模块1210,被配置为:从本地数据源获取样例数据;本地数据源包括预设条数的样例数据。
在一种实施方式中,获取模块1210,被配置为:响应于对参数取值区域关联的数据更换控件的触发操作,从本地数据源中重新获取样例数据。
在一种实施方式中,该数据处理装置还包括第二调试模块1260,被配置为:按照待处理表达式的计算顺序,将待处理表达式转换为对应的第二语法树;基于第二语法树对样例数据进行计算,得到最终计算结果和计算过程信息。
在一种实施方式中,第二调试模块1260,被配置为:根据待处理表达式中的函数,生成函数节点,并根据函数之间的计算顺序,确定函数节点之间的层级关系;若函数中包括字段和/或常量,则以函数对应的函数节点为父节点,生成字段对应的字段节点和/或常量对应的常量节点;根据函数节点、字段节点和/或常量节点生成第二语法树。
在一种实施方式中,第二调试模块1260,被配置为:获取第二语法树的节点的属性信息;第二语法树的节点包括函数节点、字段节点、常量节点中的至少一种;根据第二语法树的节点的属性信息,生成计算过程信息;计算过程信息的层级关系与第二语法树中函数节点父子关系对应。
在一种实施方式中,第二调试模块1260,被配置为:响应于对所述待处理表达式的调试操作,对调试后的待处理表达式重新进行计算。
此外,本公开实施方式的其他具体细节在上述方法的发明实施方式中已经详细说明,在此不再赘述。
示例性存储介质
下面对本公开示例性实施方式的存储介质进行说明。
本示例性实施方式中,可以通过程序产品实现上述方法,如可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
该程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RE等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言-诸如Java、C++等,还包括常规的过程式程序设计语言-诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
示例性电子设备
参考图13对本公开示例性实施方式的电子设备进行说明。
图13显示的电子设备1300仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图13所示,电子设备1300以通用计算设备的形式表现。电子设备1300的组件可以包括但不限于:至少一个处理单元1310、至少一个存储单元1320、连接不同系统组件(包括存储单元1320和处理单元1310)的总线1330、显示单元1340。
其中,存储单元存储有程序代码,程序代码可以被处理单元1310执行,使得处理单元1310执行本说明书上述"示例性方法"部分中描述的根据本公开各种示例性实施方式的步骤。例如,处理单元1310可以执行如图1所示的方法步骤等。
存储单元1320可以包括易失性存储单元,例如随机存取存储单元(RAM)1321和/或高速缓存存储单元1322,还可以进一步包括只读存储单元(ROM)1323。
存储单元1320还可以包括具有一组(至少一个)程序模块1325的程序/实用工具1324,这样的程序模块1325包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1330可以包括数据总线、地址总线和控制总线。
电子设备1300也可以与一个或多个外部设备2000(例如键盘、指向设备、蓝牙设备等)通信,这种通信可以通过输入/输出(I/O)接口1350进行。电子设备1300还包括显示单元1340,其连接到输入/输出(I/O)接口1350,用于进行显示。并且,电子设备1300还可以通过网络适配器1360与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1360通过总线1330与电子设备1300的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1300使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了装置的若干模块或子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

Claims (10)

1.一种数据处理方法,其特征在于,包括:
获取对待处理表达式进行计算的最终计算结果和计算过程信息;所述待处理表达式是对一个或多个基础字段进行计算的表达式;
在调试界面中显示所述待处理表达式和所述最终计算结果;
响应于对所述调试界面中展开控件的触发操作,按照所述待处理表达式的计算顺序显示所述计算过程信息;
所述最终计算结果和所述计算过程信息用于对所述待处理表达式进行调试。
2.根据权利要求1所述的数据处理方法,其特征在于,所述待处理表达式包括一个或多个函数,所述计算过程信息包括所述函数对应的中间计算结果;所述响应于对所述调试界面中展开控件的触发操作,按照所述待处理表达式的计算顺序显示所述计算过程信息,包括:
响应于对所述调试界面中展开控件的触发操作,按照所述待处理表达式的计算顺序显示所述函数以及所述函数对应的中间计算结果。
3.根据权利要求2所述的数据处理方法,其特征在于,所述待处理表达式的函数之间具有层级关系,所述层级关系是根据所述计算顺序确定的;所述展开控件包括与当前已显示的函数关联的子展开控件;所述响应于对所述调试界面中展开控件的触发操作,按照所述待处理表达式的计算顺序显示所述函数以及所述函数对应的中间计算结果,包括:
响应于对所述子展开控件的触发操作,根据所述层级关系显示所述当前已显示的函数的下一级函数以及所述下一级函数对应的中间计算结果。
4.根据权利要求1所述的数据处理方法,其特征在于,所述获取对待处理表达式进行计算的最终计算结果和计算过程信息,包括:
获取所述待处理表达式,并获取所述待处理表达式中的基础字段的样例数据;
采用所述样例数据对所述待处理表达式进行计算,得到所述最终计算结果和所述计算过程信息。
5.根据权利要求4所述的数据处理方法,其特征在于,所述获取所述待处理表达式,包括:
响应于对用户界面的的输入操作,获取完整表达式;
响应于从所述完整表达式中选取子表达式的操作,将所述子表达式作为所述待处理表达式;所述用户界面与所述调试界面能进行切换。
6.根据权利要求5所述的数据处理方法,其特征在于,在所述获取所述待处理表达式之后,所述方法还包括:
将所述待处理表达式对应的完整表达式转换为第一语法树,并根据所述第一语法树确定所述待处理表达式对应的最短合法子表达式;
根据所述最短合法子表达式确定所述待处理表达式的合法性;
在所述待处理表达式不合法的情况下,采用所述最短合法子表达式合法化所述待处理表达式。
7.根据权利要求6所述的数据处理方法,其特征在于,所述根据所述最短合法子表达式确定所述待处理表达式的合法性,包括:
将所述待处理表达式与所述最短合法子表达式进行比对;
若所述待处理表达式与所述最短合法子表达式一致,则确定所述待处理表达式合法;若所述待处理表达式与所述最短合法子表达式不一致,则确定所述待处理表达式不合法。
8.一种数据处理装置,其特征在于,包括:
获取模块,被配置为获取对待处理表达式进行计算的最终计算结果和计算过程信息;所述待处理表达式是对一个或多个基础字段进行计算的表达式;
结果显示模块,被配置为在调试界面中显示所述待处理表达式和所述最终计算结果;
过程显示模块,被配置为响应于对所述调试界面中展开控件的触发操作,按照所述待处理表达式的计算顺序显示所述计算过程信息;所述最终计算结果和所述计算过程信息用于对所述待处理表达式进行调试。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至7中任一项所述的方法。
CN202211242661.6A 2022-10-11 2022-10-11 数据处理方法、装置、存储介质及电子设备 Pending CN115525629A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211242661.6A CN115525629A (zh) 2022-10-11 2022-10-11 数据处理方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211242661.6A CN115525629A (zh) 2022-10-11 2022-10-11 数据处理方法、装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN115525629A true CN115525629A (zh) 2022-12-27

Family

ID=84701768

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211242661.6A Pending CN115525629A (zh) 2022-10-11 2022-10-11 数据处理方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN115525629A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117076546A (zh) * 2023-10-16 2023-11-17 深圳市小赢信息技术有限责任公司 数据处理方法、终端设备及计算机可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117076546A (zh) * 2023-10-16 2023-11-17 深圳市小赢信息技术有限责任公司 数据处理方法、终端设备及计算机可读存储介质
CN117076546B (zh) * 2023-10-16 2024-04-26 深圳市小赢信息技术有限责任公司 数据处理方法、终端设备及计算机可读存储介质

Similar Documents

Publication Publication Date Title
JP6916403B2 (ja) データへの論理的妥当性検査規則の指定および適用
US8667456B1 (en) Cloud-based indexing for integrated development environments
US8433687B1 (en) Off-line indexing for client-based software development tools
US10324929B2 (en) Provision of position data for query runtime errors
CN109739855B (zh) 实现数据表拼接及自动训练机器学习模型的方法和系统
CN110502227B (zh) 代码补全的方法及装置、存储介质、电子设备
US20120059858A1 (en) Minimal representation of connecting walks
CN111124379B (zh) 页面生成方法、装置、电子设备及存储介质
CN109376153B (zh) 一种基于NiFi的数据写入图数据库的系统及方法
CN113448562B (zh) 一种逻辑代码自动生成方法、装置和电子设备
CN113419789A (zh) 数据模型脚本的生成方法和装置
CN115525629A (zh) 数据处理方法、装置、存储介质及电子设备
CN115599386A (zh) 代码生成方法、装置、设备及存储介质
CN114356964A (zh) 数据血缘构建方法、装置、存储介质及电子设备
CN108959454B (zh) 一种提示子句指定方法、装置、设备及存储介质
CN110889013A (zh) 一种基于xml的数据关联方法、装置、服务器及存储介质
CN113094776B (zh) 可视化组件模型数据构建的方法、系统及电子设备
US10372760B2 (en) Building queries directed to objects hosted on clouds
US20060200482A1 (en) System, Method and Program Product for Setting and Managing Breakpoints in a Data Schema Mapping Editor
CN115292313A (zh) 一种伪列实现方法、装置、电子设备及存储介质
CN115757525A (zh) 列算子血缘构建方法、服务器、计算机可读存储介质
US11106526B1 (en) Architecture-based root cause analysis
US11074401B2 (en) Merging delta object notation documents
US11023674B2 (en) Generation and application of object notation deltas
CN108008947B (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20231120

Address after: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Hangzhou NetEase Shuzhifan Technology Co.,Ltd.

Address before: 310052 Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province, 4, 7 stories

Applicant before: NETEASE (HANGZHOU) NETWORK Co.,Ltd.