用于提供与数据分析环境一起使用的查询执行调试器的系统和方法与流程

未命名 07-23 阅读:114 评论:0

用于提供与数据分析环境一起使用的查询执行调试器的系统和方法
1.版权声明
2.本专利文档的公开内容的一部分包含受版权保护的素材。版权拥有者不反对任何人对专利文档或专利公开内容按照在专利商标局的专利文件或记录中出现的那样进行传真复制,但是除此之外在任何情况下都保留所有版权。
3.优先权要求
4.本技术要求于2020年10月30日提交的标题为“query execution debugger for use with business intelligence and data analytics environments”的编号为63/108,152的美国临时专利申请;以及于2021年8月6日提交的标题为“query execution debugger for use with business intelligence and data analytics environments”的编号为17/395,816的美国专利申请的优先权权益;上述申请中的每一个及其内容都通过引用并入本文。
技术领域
5.本文描述的实施例一般而言涉及计算机数据分析,并且具体地涉及用于提供与此类环境一起使用的查询执行调试器(debugger)的系统和方法。


背景技术:

6.一般而言,在组织内,数据分析使得能够对大量数据进行基于计算机的检查或分析,以便从该数据中得出结论或其它信息;而商业智能工具则为组织的商业用户提供描述其企业数据的信息,该信息的格式使得这些商业用户能够做出战略性商业决策。
7.开发在以下的情境(context)内利用数据分析的使用的软件应用受到越来越多的关注:组织的企业软件应用或数据环境(诸如,例如oracle融合应用(oracle fusion applications)环境或其它类型企业软件应用或数据环境)的情境内;或者在软件即服务(saas)或云环境(诸如,例如oracle分析云(oracle analytics cloud)或oracle云基础设施(oracle cloud infrastructure)环境或其它类型的云环境)的情境内。
8.对于此类环境,有时可能有兴趣审查各种查询(例如,可以从数据分析客户端接收到的查询)被处理或以其它方式从数据库或数据仓库接收数据的性能。但是,可能无法提供对数据库或数据的直接访问,例如,如果数据库位于客户的站点,或者如果对数据库的访问受到其它限制的话。


技术实现要素:

9.根据实施例,本文描述的是查询执行调试器,与计算环境(诸如例如商业智能环境、数据库、数据仓库或支持数据分析的其它类型的环境)一起使用。查询引擎(例如商业智能服务器实例)根据查询执行计划为来自客户端的分析查询或请求提供服务,这些查询或请求针对存储在数据库处的数据,其中逻辑查询可以包括从客户端接收的查询语言语句;
而物理查询包括查询引擎发送到数据库以在处理逻辑查询时检索数据的特定于数据库的语句。系统可以创建查询执行调试器文件,该文件包括记录元数据部分或区段,以及数据部分或区段,并且可以被用于审查、模拟或调试针对数据库的查询的处理。
附图说明
10.图1图示了根据实施例的示例分析环境。
11.图2图示了根据实施例的与数据分析或商业智能环境一起使用的查询执行调试器。
12.图3进一步图示了根据实施例的用于与数据分析或商业智能环境一起使用的查询执行调试器。
13.图4进一步图示了根据实施例的用于与数据分析或商业智能环境一起使用的查询执行调试器。
14.图5进一步图示了根据实施例的用于与数据分析或商业智能环境一起使用的查询执行调试器。
15.图6图示了根据实施例的查询执行调试器的示例使用。
16.图7a图示了根据实施例的查询执行调试器的示例使用。
17.图7b进一步图示了根据实施例的查询执行调试器的示例使用。
18.图8图示了根据实施例的查询执行调试器的示例使用。
19.图9图示了根据实施例的查询执行调试器的示例使用。
20.图10图示了根据实施例的查询执行调试器的示例使用。
21.图11a图示了根据实施例的查询执行调试器的示例使用。
22.图11b进一步图示了根据实施例的查询执行调试器的示例使用。
23.图12图示了根据实施例的查询执行调试器的示例使用。
24.图13图示了根据实施例的将查询执行调试器与商业智能和数据分析环境一起使用的处理。
具体实施方式
25.一般而言,在组织内,数据分析使得能够对大量数据进行基于计算机的检查或分析,以便从该数据中得出结论或其它信息;而商业智能工具(bi)则为组织的商业用户提供描述其企业数据的信息,这些信息的格式可以使得这些商业用户能够做出战略性商业决策。此类商业智能工具/服务器的示例包括oracle商业智能服务器(obis),它提供可以与数据库一起操作的查询、报告和分析服务器,以支持诸如数据挖掘或分析以及分析应用之类的特征。
26.开发在以下的情境内利用数据分析的使用的软件应用受到越来越多的关注:组织的企业软件应用或数据环境(诸如,例如oracle融合应用环境或其它类型企业软件应用或数据环境)的情境内;或者在软件即服务(saas)或云环境(诸如,例如oracle分析云或oracle云基础设施环境或其它类型的云环境)的情境内。
27.根据实施例,本文描述的是查询执行调试器,用于与计算环境(诸如例如商业智能环境、数据库、数据仓库或支持数据分析的其它类型的环境)一起使用。
28.根据实施例,查询引擎(例如,obis实例)根据查询执行计划为来自客户端的分析查询或请求提供服务,这些查询或请求针对存储在数据库中的数据,其中逻辑查询可以包括从客户端接收的结构化查询语言(sql)语句;而物理查询包括查询引擎发送到数据库以在处理逻辑查询时检索数据的特定于数据库的语句。系统可以创建查询执行调试器(qed)文件,该文件包括记录元数据部分或区段,以及数据部分或区段,并且可以被用于审查、模拟或调试针对数据库的查询的处理。
29.企业数据分析
30.根据实施例,分析环境使得能够在组织的企业软件应用或数据环境,或软件即服务或其它类型的云环境的情境内进行数据分析;并且支持开发计算机可执行的软件分析应用。
31.例如,根据实施例,数据仓库环境或组件(诸如oracle自主数据仓库(adw)、oracle自主数据仓库云(adwc)或适合存储大量数据的其它类型的数据库或数据仓库环境或组件)可以提供中央储存库用于存储由一个或多个商业应用收集的数据。
32.根据实施例,数据仓库环境或组件可以作为多维数据库提供,该数据库采用在线分析处理(olap)或其它技术从多个不同的数据源生成业务相关数据。
33.根据实施例,分析应用环境允许客户(租户)开发用于与bi组件(诸如,例如oracle商业智能应用(obia)环境或适于检查源自客户(租户)本身或源自多个第三方实体的大量数据的其它类型的bi组件)一起使用的计算机可执行软件分析应用。作为另一个示例,分析环境可以被用于在各种业务生产力软件应用的情境中用描述与业务相关的数据对象的相关元数据来预填充数据仓库实例的报告接口,用以例如包括预定义的仪表盘(dashboard)、关键绩效指标(kpi)或其它类型的报告。
34.图1图示了根据实施例的示例分析环境。
35.提供图1中所示和描述的示例是为了说明可以利用如本文所述的查询执行调试器的一种类型的数据分析环境的示例。根据其它实施例和示例,本文描述的查询执行调试器方法可以与其它类型的数据分析、数据库或数据仓库环境一起使用。
36.如图1中所示,根据实施例,分析环境100可以由计算机系统提供,或以其它方式在计算机系统处操作,该计算机系统具有计算机硬件(例如,处理器、存储器)101,并且包括作为控制平面102和数据平面104操作的一个或多个软件组件,并且提供对数据仓库、数据仓库实例160(数据库161)的访问。
37.根据实施例,图1中所示的以及如本文关于各种其它实施例进一步描述的组件和处理可以被提供为可由计算机系统或其它类型的处理设备执行的软件或程序代码。例如,根据实施例,本文描述的组件和处理可以由云计算系统或其它适当编程的计算机系统来提供。
38.根据实施例,控制平面进行操作以提供对在saas或云环境(诸如,例如,oracle分析云或oracle云基础设施环境或其它类型的云环境)的情境内供应的云或其它软件产品的控制。例如,根据实施例,控制平面可以包括控制台界面110,该控制台界面110使得具有设备硬件12、应用14和用户界面16的客户端计算机设备10能够在客户(租户)和/或具有供应组件111的云环境的控制下进行访问
39.根据实施例,控制台界面可以使得操作图形用户界面(gui)和/或命令行界面
(cli)或其它界面的客户(租户)能够进行访问;和/或可以包括供saas或云环境的提供者及其客户(租户)使用的界面。例如,根据实施例,控制台界面可以提供允许客户供应用于在其saas环境内使用的服务以及配置已供应的这些服务的界面。
40.根据实施例,客户(租户)可以请求在数据仓库内供应客户模式164。客户还可以经由控制台界面供应与数据仓库实例相关联的多个属性,包括所需属性(例如,登录凭据)和可选属性(例如,大小或速度)。然后,供应组件可以供应所请求的数据仓库实例,包括数据仓库的客户模式;并使用由客户供应的适当信息来填充数据仓库实例。
41.根据实施例,供应组件还可以用于例如通过改变或更新针对特定客户(租户)的etl处理运行的请求频率来更新或编辑数据仓库实例和/或在数据平面处操作的etl处理。
42.根据实施例,数据平面api可以与数据平面通信。例如,根据实施例,针对由数据平面提供的服务的供应和配置改变可以经由数据平面api传送到数据平面。
43.根据实施例,数据平面可以包括数据管线或处理层120和数据变换层134,它们一起处理来自组织的企业软件应用或数据环境的操作或事务数据,诸如例如在客户(租户)的saas环境中供应的业务生产力软件应用。数据管线或处理可以包括各种功能性,这些功能性从saas环境中供应的业务应用和数据库中提取事务数据,然后将变换后的数据加载到数据仓库中。
44.根据实施例,数据变换层可以包括数据模型,诸如例如知识模型(km)或其它类型的数据模型,系统使用这些数据模型将从saas环境中供应的业务应用和对应的事务数据库接收的事务数据变换成分析应用环境理解的模型格式。可以以适于存储在数据仓库中的任何数据格式提供模型格式。根据实施例,数据平面还可以包括数据和配置用户界面130,以及映射和配置数据库132。
45.根据实施例,数据仓库可以包括默认分析应用模式(根据一些实施例在本文中称为分析仓库模式)162,并且对于系统的每个客户(租户),客户模式如上所述。
46.根据实施例,数据平面负责执行提取、变换和加载(etl)操作,包括从组织的企业软件应用或数据环境(诸如例如saas环境中提供的业务生产力软件应用和对应的事务数据库)中提取事务数据,将提取的数据转换成模型格式,并将变换后的数据加载到数据仓库的客户模式中。
47.例如,根据实施例,环境的每个客户(租户)可以与数据仓库内他们自己的客户租赁相关联,即,与他们自己的客户模式相关联;并且可以附加地提供对分析应用模式的只读访问,该模式可以由数据管线或处理(例如,etl处理)周期性地或以其它方式更新。
48.根据实施例,数据管线或处理可以被调度为每隔一段时间(例如,每小时/每天/每周)执行,以从企业软件应用或数据环境(诸如例如在saas环境中供应的业务生产力软件应用和对应的事务数据库106)中提取事务数据。
49.根据实施例,提取处理108可以提取事务数据,于是提取数据管线或处理可以将提取出的数据插入数据暂存(staging)区域,该数据暂存区域可以充当提取出的数据的临时暂存区域。数据质量组件和数据保护组件可以被用于确保提取出的数据的完整性。例如,根据实施例,数据质量组件可以在数据临时保存在数据暂存区域中时对提取出的数据执行验证。
50.根据实施例,当提取处理完成其提取时,数据变换层可以被用于开始变换处理,以
将提取出的数据变换成模型格式以加载到数据仓库的客户模式中。
51.如上所述,根据实施例,数据管线或处理可以与数据变换层结合操作以将数据变换成模型格式。映射和配置数据库可以存储定义由数据变换使用的数据模型的元数据和数据映射。数据和配置用户界面(ui)可以促进对映射和配置数据库的访问和改变。
52.根据实施例,数据变换层可以将提取出的数据变换成适合加载到数据仓库的客户模式中的格式,例如根据如上所述的数据模型。在变换期间,数据变换可以在适当的时候执行维度生成、事实生成和聚合生成。维度生成可以包括生成用于加载到数据仓库实例中的维度或字段。
53.根据实施例,在对提取出的数据进行变换之后,数据管线或处理可以执行仓库加载过程150,以将变换后的数据加载到数据仓库实例的客户模式中。在将变换后的数据加载到客户模式中之后,可以分析变换后的数据并将其用于各种其它商业智能处理。
54.为了提供数据分析或商业智能数据,或开发软件分析应用,数据分析环境的不同客户可以对如何对他们的数据进行分类、聚合或变换有不同的要求。根据实施例,为了支持此类不同要求,语义层180可以包括定义客户的数据的语义模型的数据;这有助于使用通常理解的业务术语帮助用户理解和访问该数据;并向表示层190提供自定义内容。
55.根据实施例,表示层可以使用例如软件分析应用、用户界面、仪表板、关键绩效指标(kpi);或者可以通过诸如例如oracle分析云或oracle应用分析之类的产品提供的其它类型的报告或界面来启用对数据内容的访问。
56.商业智能服务器
57.如上所述,数据分析使得能够对大量数据进行基于计算机的检查或分析,以便从该数据中导出结论或其它信息;而商业智能工具(bi)为组织的业务用户提供描述其企业数据的信息,其格式使这些业务用户能够做出战略性业务决策。此类商业智能工具/服务器的示例包括oracle商业智能服务器(obis),它提供可以与数据库一起操作的查询、报告和分析服务器,以支持诸如数据挖掘或分析以及分析应用之类的特征。
58.根据实施例,诸如obis之类的bi服务器一般操作以处理针对数据库模型的入站(例如,sql)请求,构建并执行一个或多个物理数据库查询,适当地处理数据,然后响应于请求而返回数据。
59.为了实现这一点,根据实施例,bi服务器可以包括各种组件或特征,诸如描述可用作查询的主题区域的数据的逻辑或业务模型或元数据;请求生成器,它接收传入的查询并将它们转换成物理查询以与用于与连接的数据源一起使用;以及导航器,它接受传入的查询、导航逻辑模型并生成最佳地返回特定查询所需数据的那些物理查询。
60.例如,根据实施例,bi服务器可以采用映射到数据仓库中的数据的逻辑模型,通过在各种数据源上创建简化的星型模式业务模型,以便用户可以像查询源自于单一源的数据一样查询数据。然后,根据业务模型层映射规则,信息可以作为主题区域返回到表示层。
61.根据实施例,在操作期间,bi服务器可以创建查询执行计划,然后还可以进一步优化该计划,例如执行响应请求所需的数据的聚合。数据可以组合在一起并应用进一步的计算,然后例如经由odbc接口将结果返回到调用应用。
62.根据实施例,要求多个数据源的复杂、多遍请求可以要求bi服务器分解查询,确定可以使用哪些源、多遍计算和聚合,并生成跨多个数据库和物理sql语句的逻辑查询执行计
划,然后可以将结果传回,并由bi服务器进一步联接(join)或聚合。
63.查询执行调试器
64.有时可能有兴趣审查各种查询(例如,可以从数据分析客户端接收到的查询)被处理或以其它方式从数据库或数据仓库接收数据的性能。但是,可能无法提供对数据库或数据的直接访问,例如,如果数据库位于客户的站点,或者如果对数据库的访问受到其它限制的话。
65.根据实施例,本文描述的是查询执行调试器,用于与计算环境(诸如例如商业智能环境、数据库、数据仓库或支持数据分析的其它类型的环境)一起使用。
66.根据实施例,查询引擎(例如oracle商业智能服务器(obis)实例)根据查询执行计划为来自客户端的针对存储在数据库中的数据的分析查询或请求提供服务,其中逻辑查询可以包括从客户端接收的结构化查询语言(sql)语句;而物理查询包括查询引擎发送到数据库以在处理逻辑查询时检索数据的特定于数据库的语句。系统可以创建查询执行调试器(qed)文件,该文件包括记录元数据部分或区段,以及数据部分或区段,并且可以被用于审查、模拟或调试针对数据库的查询的处理。
67.图2-图5图示了根据实施例的用于与数据分析或商业智能环境一起使用的查询执行调试器。
68.如图2-图5中所示,根据实施例,查询引擎18(例如,obis)以联合查询引擎的方式进行操作,以经由sql为例如oracle分析云环境内的分析查询提供服务,将操作下推到支持的数据库,并将业务用户查询变换成适当的特定于数据库的查询语言(例如,oracle sql、sql server sql、db2 sql或essbase mdx)。查询引擎(例如,obis)还支持内部执行无法下推到数据库的sql运算符。
69.根据实施例,用户/开发人员可以与客户端计算机设备10交互,客户端计算机设备10包括计算机硬件11(例如,处理器、存储装置、存储器)、用户界面12和使得能够执行查询执行调试器接口或命令22的查询执行调试器系统或组件20。
70.根据实施例,查询引擎(例如,obis)根据查询执行计划或数据仓库为来自客户端的针对存储在数据库中的数据分析查询或请求提供服务。逻辑查询包括从客户端接收到的结构查询语言(sql)语句;而物理查询包括查询引擎发送到数据库以在处理逻辑查询时检索数据的特定于数据库的sql语句。
71.根据实施例,逻辑查询30是查询引擎(例如,obis)从客户端接收的sql。
72.根据实施例,物理查询40是查询引擎(例如,obis)发送到数据库的特定于数据库的sql,以在处理逻辑查询时检索数据。
73.根据实施例,可以创建查询执行调试器(qed)文件24,该文件包括记录元数据部分或区段52以及数据部分或区段54,并且其可以与查询执行调试器结合使用,用以审查、模拟或以其它方式调试针对数据库的查询处理。
74.根据实施例,查询引擎(例如,obis)一般根据查询执行计划56处理针对数据库的查询,该查询执行计划可以包括各种子(叶)节点,在各种实施例中一般被称为rqlist,并产生一个或多个诊断日志条目。
75.根据实施例,在查询执行计划内,每个执行计划组件(rqlist)表示查询执行计划中的查询块,并且一般转化为select语句。rqlist可以有嵌套的子rqlist,类似于select语
句如何从嵌套的select语句中进行选择。
76.根据实施例,当查询执行调试器被用于针对数据库调试查询执行计划时,每个qed文件(包括它的记录元数据部分或区段以及它的数据部分或区段)表示在执行其计划组件(rqlist)时与查询执行计划相关联的中间结果。
77.例如,在执行施加(exertion)计划的特定点,qed文件可以包括记录元数据或数据类型的描述、可空性、行描述或其它信息;而数据部分或区段包括相关联的数据(的样本),例如数据的行。
78.根据实施例,可以为由查询执行计划定义的每个rqlist生成单独的qed文件。例如,如图2-5中所示,具有多个rqlist的特定查询执行计划58可以与多个qed文件(24b、24c、24d)相关联,每个qed文件具有记录元数据部分或区段以及数据部分或区段,如上所述,并且每个表示与它执行其rqlist时的查询执行计划相关联的中间结果。
79.根据实施例,所描述的方法可以被用于例如支持以下特征:
80.(1)使开发人员(例如,obis开发人员)能够在查询执行树的特定部分可视化全部或部分中间结果。例如,为了调试联接执行问题,开发人员可能希望检查来自联接的两侧的即时输入数据。查询执行调试器还为不熟悉obis内部结构的新开发人员提供了教育工具。
81.(2)使开发人员能够在查询执行树的特定部分修改中间结果。例如,为了在调试时快速测试假设,开发人员可能希望替换中间结果中的某些值,重新运行查询,并在假设使用更新后的中间结果的情况下查看最终查询结果是否令人满意。
82.(3)使开发人员能够容易地插入输入测试数据代替任何数据源。例如,开发人员可以能够访问客户物理查询的结果,但不能访问客户的数据库。虽然缺少工作数据库连接,物理查询的结果也可以被用于模拟工作查询,这允许人们在调查生产问题时取得进展。
83.根据各种实施例,下文更详细地描述各种实施例的附加特征和优点。
84.1.在查询执行计划组件处对记录元数据和数据的日志记录(logging)
85.如上所述,根据实施例,可以创建查询执行调试器文件,其包括记录元数据部分或区段以及数据部分或区段,并且可以与查询执行调试器结合使用以审查、模拟或以其它方式调试针对数据库的查询的处理。
86.记录元数据:根据实施例,qed文件的记录元数据部分或区段是记录元数据对象的人类可读、编组形式。记录元数据描述在执行树中的特定点处解释的所有记录的结构,例如,列数、列的数据类型、长度、可空性。每个qed文件一般只包含一个记录元数据。在执行树中的特定点处,存储器中的记录是固定长度格式或者是可变长度格式,但不能同时是这两种格式。系统可以在qed文件中日志记录一次记录格式。当需要将日志记录的数据解组(unmarshal)回存储器时,这将是有用的。
87.数据:根据实施例,系统支持响应于以逗号分隔值(csv)格式的查询而从数据库接收的记录数据,以用作qed文件的数据部分或区段。在这种csv格式中,空值和空字符串必须是可区分的。可变长度列,诸如varchar、longvarchar、varbinary、longvarbinary,可以选择将它们的长度值(列有效载荷的前4个字节)记录为它们的值的前缀。qed文件中的每一行表示一个记录。无论存储器中的记录格式如何,数据都必须以相同的csv格式记录。
88.根据其它实施例,系统可以支持以原始二进制或其它格式记录数据。使用原始二进制格式将反映记录的确切存储器格式,并且对于模拟在字节级发生的错误可以是有用
的。
89.2.在每个查询执行计划组件处日志记录多个文件
90.根据实施例,每个rqlist可以包括多个子操作的执行。因此,可能需要在每个rqlist处日志记录多个文件。
91.图6(也被提供为下面的示例1)图示了根据实施例的示例查询执行计划。
92.例如,在所示的查询执行计划中,第一个rqlist《《1501》》记录一个文件,该文件表示从源检索到的数据;而另一个rqlist《《1511》》记录三个文件:其中一个文件表示聚合前记录,一个文件表示排序-聚合记录,还有一个文件表示聚合后记录。
[0093][0094][0095]
示例1
[0096]
3.特定查询执行计划组件的日志记录
[0097]
根据实施例,在复杂的逻辑查询中有许多rqlists节点。按rqlist节点过滤的能力使系统能够减少写入qed文件的数据量。
[0098]
根据实施例,可以随机地生成rqlist列表标识符(id)(在上面的示例中,生成的rqlist是1511和1501)。
[0099]
可替代地,根据实施例,可以使用单独的确定性id,如图7a/7b中所示并被提供为下面的示例2中的方括号中的内容(例如[1]、[2]、[3]、[4]、[6]、[7]),使得每次用户运行调试器时,rqlist在多次运行中都是相同的。提供确定性id的一种方法是使用预序遍历排序索引作为id。这个id可以默认被日志记录在“查询执行计划:”查询日志条目中。
[0100]
例如,根据实施例,在每个rqlist或类似rqlist的节点(例如,innerjoin、leftouterjoin)处,id(此处在方括号中示出)可以被用于捕获从1到20的确定性id。这个id可以被用于指定稍后描述的调试配置。
[0101]
4.用于查询执行计划组件的特定列数据的日志记录
[0102]
根据实施例,中间rqlist可以选择许多列,并且记录所有列可能使用户/开发人员难以分析数据文件(因为列可能非常宽)。在rqlist内按列过滤的能力使系统能够减少日志记录的数据量(并帮助用户可视化列)。根据实施例,下文进一步说明示例查询执行计划。
[0103]
例如,在所示的查询执行计划的摘录/部分(为了便于阅读,此处已对其进行格式化),开发人员可能只想看rqlist《《10225》》处第三列(d901.c6作为c4)和第四列(d901.c7作为c5)中的数据。为此,开发人员可以在其调试配置中指定rqlistid6和列号3、4。列号从1开始,并且指示rqlist下的列的排序。当指定列级过滤器时,可以继续完整地日志记录上述记录元数据,即,应当日志记录所有列的元数据。qed文件可以使用上一段中描述的列号来清楚地指示正在日志记录哪个特定列的数据。
[0104]
[0105]
[0106][0107]
示例2
[0108]
5.用于查询执行计划组件的经过滤的行的日志记录
[0109]
根据实施例,开发人员可能对分析从rqlist产生的某些行感兴趣。过滤rqlist行的能力使系统能够减少写入qed文件的数据量。过滤器规范可以支持简单的比较运算符,即,==、!=、《、《=、》、》=、in(list)。在应用过滤器之前,过滤器规范中的字符串值可以理想地转换成对应的列数据类型。可以支持空值的相等比较。过滤器规范可以支持多个过滤条件,并且这些条件将进行and运算。过滤是在日志记录期间应用的并且不应当影响查询的输出。
[0110]
6.用于查询执行计划组件的信息丰富的文件名
[0111]
根据实施例,每个rqlist的文件名可以自描述日志记录的数据。这有助于以逻辑方式对收集的文件进行分类和排序,尤其是当服务器中并发地运行多个查询时。例如,提出的命名方案可以是:
[0112]
qed_《logical_request_hash》_《deterministic_rqlist_id》_《non_deterministic_rqlist_id》_《optional_sub_operation_name》.txt
[0113]
例如,qed_4f291791_0003_9465_preaggr.txt。确定性rqlist id可以用0至最多4位数字填充,以帮助文件名排序。在上面的示例中,确定性rqlist id是3,因此它被转换成0003。
[0114]
7.在查询执行计划组件处解组日志记录的元数据和数据
[0115]
根据实施例,日志记录规范可以支持使用qed文件作为特定rqlist的数据的源,作
为覆盖(override)。这将替换这个rqlist上游的原始数据-产生执行路径。这里的“上游”是指日志记录在obis查询日志中的查询执行计划中这个rqlist下面的查询执行计划。当用这个日志记录规范来运行逻辑查询时:
[0116]
(a)日志记录在查询日志中的查询执行计划保持不变。这使系统能够通过确保查询树结构与以前相同来保持确定性rqlistid的稳定。
[0117]
(b)在执行阶段期间,rqlist的相关执行运算符应当通过从指定文件中解组日志记录的元数据和数据来产生数据,而不是从其子列表流或其远程数据源读取。一种方法是使用实现列表流接口的qed执行运算符。由运算符生成的记录格式(固定长度vs.可变长度)取决于qed文件中日志记录的元数据。
[0118]
(c)从被覆盖的rqlist开始的上游执行应当被禁用。如果上游执行要求连接到远程数据源,那么覆盖不再需要它。
[0119]
根据实施例,总是完全执行覆盖,即,不支持仅覆盖rqlist中的特定列。这意味着指定的qed文件必须包含记录元数据中描述的所有列的数据。
[0120]
8.用于逻辑查询的调试配置
[0121]
根据实施例,json有效载荷可以被用于捕获调试配置。然后可以将这个json有效负载作为请求变量供应,以启用对特定逻辑查询的调试;例如:
[0122]
setvariableobis_qed_config='《json》':select.....;
[0123]
图8(也被提供为下面的示例3)图示了根据实施例的示例json有效载荷(为了便于阅读,此处已对其进行格式化)。
[0124]
[0125][0126]
示例3
[0127]
9.windows和linux支持
[0128]
根据实施例,查询执行调试器可以适用于在例如windows和linux平台上工作,并且qed文件可以在两个平台之间移植,假设数据是csv格式。例如,在linux上生成的qed文件可以用作windows上的覆盖,反之亦然。
[0129]
10.查询执行调试的编译时启用
[0130]
根据实施例,可以借助于条件编译提供查询执行调试器;可替代地,启用qed的库可以被用于替换原始库,而无需重新编译和替换所有库。
[0131]
示例逻辑查询
[0132]
图9(也被提供为下面的示例4)图示了根据实施例的示例逻辑查询。
[0133][0134]
示例4
[0135]
示例物理查询
[0136]
图10(也被提供为下面的示例5)图示了根据实施例的上述逻辑查询的示例物理查询。
[0137]
[0138][0139]
示例5
[0140]
根据实施例,从两个物理查询返回的数据被联接(例如,在obis中)以产生用于逻辑查询的结果。
[0141]
图11a/图11b(也被提供为下面的示例6)图示了根据实施例的用于上面示出和描述的逻辑查询的示例查询执行计划(为了便于阅读,这里已经对其进行了格式化)。
[0142]
[0143]
[0144]
[0145][0146]
示例6
[0147]
图12(也被提供为下面的示例7)图示了根据实施例的用于上述查询执行计划的示例qed文件。
[0148]
[0149][0150]
示例7
[0151]
查询执行调试示例
[0152]
根据实施例,以下示例提供了查询执行调试器与一个或多个qed文件相结合的说明性示例使用,用以审查、模拟或以其它方式调试针对数据库的查询的处理。
[0153]
(1)在这个示例中,上面的逻辑查询返回了两行数据:
[0154]
beverages(饮料)286,526.95257,874.27
dairy products(乳制品)251,330.50226,197.45
[0155]
但是,根据客户的说法,它应当返回一个附加的行:
[0156]
condiments(调味料)113,694.7592,111.30
[0157]
(2)在客户的环境中部署查询执行调试器后,通过运行这个逻辑查询来收集qed文件:
[0158][0159]
例如,名为qed_dbgateway.txt并且与rqlist《《38646》》相关联的qed文件可以被表示为:
[0160]
[0161]
[0162][0163]
(3)在这个示例中,在与rqlist《《38646》》相关联的qed_dbgateway.txt中观察到“condiments”行具有以下值:
[0164]
condiments,2.0,102325.28
[0165]
因此,用户/开发人员可以形成假设:从obis数据库网关返回的值102325.28可能是不正确的。
[0166]
(4)为了测试假设,将qed_dbgateway.txt的内容复制到名为override.txt的新文件中。在override.txt中,值102325.28被替换为92111.30。在内部调试环境中,启用查询执行调试器后,用指定的覆盖来重新运行该逻辑查询:
[0167][0168][0169]
(5)逻辑查询现在返回三行,如客户预期的那样:
[0170]
beverages286,526.95257,874.27dairy products251,330.50226,197.45
condiments113,694.7592,111.30
[0171]
以上结果表明,在这个示例中原始假设是正确的(即,obis数据库网关返回的值102325.28是不正确的)。进一步的调试现在可以集中在obis数据库网关上。查询执行调试器的使用成功地缩小了软件的问题区域。
[0172]
查询执行调试处理
[0173]
图13图示了根据实施例的将查询执行调试器与商业智能和数据分析环境一起使用的处理。
[0174]
如图13中所示,根据实施例,在步骤202处,具有计算机硬件(例如,处理器、存储器)并提供对数据库或数据仓库的访问的计算机系统包括适于响应于查询或请求而提供数据分析的分析环境。
[0175]
在步骤204处,提供与分析环境相关联的查询引擎,例如作为商业智能服务器实例,其根据查询执行计划为来自客户端的针对存储在数据库处的数据的分析查询或请求提供服务。
[0176]
在步骤206处,系统可以接收针对调试的一个或多个查询或请求,其中逻辑查询可以包括从客户端接收的查询语言语句;而物理查询包括查询引擎发送到数据库以在处理逻辑查询时检索数据的特定于数据库的语句。
[0177]
在步骤208处,系统创建查询执行调试器文件,该查询执行调试器文件包括记录元数据部分或区段以及数据部分或区段,并且其可以被用于审查、模拟或调试针对数据库的查询的处理。
[0178]
根据各种实施例,可以使用一个或多个常规的通用或专用计算机、计算设备、机器或微处理器(包括一个或多个处理器、存储器和/或根据本公开的教导编程的计算机可读存储介质)方便地实现本文的教导。如对软件领域的技术人员将显而易见的,熟练的程序员可以基于本公开的教导容易地准备适当的软件编码。
[0179]
在一些实施例中,本文的教导可以包括计算机程序产品,该计算机程序产品是其上/其中存储有指令的(一个或多个)非暂态计算机可读存储介质,该指令可以用于对计算机进行编程以执行本教导的任何处理。这种存储介质的示例可以包括但不限于硬盘驱动器、硬盘、硬驱动器、固定盘或其它机电数据存储设备、软盘、光碟、dvd、cd-rom、微驱动器和磁光盘、rom、ram、eprom、eeprom、dram、vram、闪存设备、磁卡或光卡、纳米系统或其它类型的存储介质或适用于指令和/或数据的非临时存储的设备。
[0180]
出于说明和描述的目的已经提供了前述描述。并不旨在穷举或将保护范围限制为所公开的精确形式。许多修改和变化对于本领域技术人员将是显而易见的。
[0181]
例如,虽然本文提供的若干示例说明了具有企业软件应用或数据环境(诸如,例如,oracle融合应用环境);或者在软件即服务(saas)或云环境(诸如,例如,oracle分析云或oracle云基础设施环境)的情境内的数据分析环境的操作,但是根据各种实施例,本文描述的系统和方法可以与其它类型的企业软件应用或数据环境、云环境、云服务、云计算或其它计算环境一起使用。
[0182]
选择和描述实施例是为了最佳地解释本教导的原理及其实际应用,从而使本领域的其它技术人员能够理解各种实施例以及具有适合于预期的特定用途的各种修改。预期范围由所附权利要求及其等同形式限定。

技术特征:
1.一种用于提供与数据分析环境一起使用的查询执行调试器的系统,包括:查询引擎,为分析查询提供服务;其中,在调试与数据库相关联的查询期间,系统创建查询执行调试器文件,该查询执行调试器文件包括记录元数据部分或区段和数据部分或区段,以用于在调试查询时与查询执行调试器一起使用。2.如权利要求1所述的系统,其中逻辑查询包括从客户端接收的结构查询语言(sql)语句;而物理查询包括被发送到数据库以在处理逻辑查询时检索数据的特定于数据库的sql语句。3.如权利要求1所述的系统,其中查询引擎根据能够包括节点的查询执行计划来处理针对数据库的查询,其中包括其记录元数据和数据的每个查询执行调试器文件表示与查询执行计划相关联的中间结果。4.如权利要求1所述的系统,包括多个查询执行调试器文件,其中能够为由查询执行计划定义的每个节点生成单独的查询执行调试器文件。5.一种用于提供与数据分析环境一起使用的查询执行调试器的方法,包括:提供为分析查询提供服务的查询引擎;在调试与数据库相关联的查询期间,创建查询执行调试器文件,该查询执行调试器文件包括记录元数据部分或区段和数据部分或区段,以用于在调试查询时与查询执行调试器一起使用。6.如权利要求5所述的方法,其中逻辑查询包括从客户端接收的结构查询语言(sql)语句;而物理查询包括被发送到数据库以在处理逻辑查询时检索数据的特定于数据库的sql语句。7.如权利要求5所述的方法,其中查询引擎根据能够包括节点的查询执行计划来处理针对数据库的查询,其中包括其记录元数据和数据的每个查询执行调试器文件表示与查询执行计划相关联的中间结果。8.如权利要求5所述的方法,包括多个查询执行调试器文件,其中能够为由查询执行计划定义的每个节点生成单独的查询执行调试器文件。9.一种其上具有指令的非暂态计算机可读存储介质,所述指令在被包括一个或多个处理器的计算机读取和执行时,使得所述计算机执行包括以下的方法:提供为分析查询提供服务的查询引擎;在调试与数据库相关联的查询期间,创建查询执行调试器文件,该查询执行调试器文件包括记录元数据部分或区段和数据部分或区段,以用于在调试查询时与查询执行调试器一起使用。10.如权利要求9所述的非暂态计算机可读存储介质,其中逻辑查询包括从客户端接收的结构查询语言(sql)语句;而物理查询包括被发送到数据库以在处理逻辑查询时检索数据的特定于数据库的sql语句。11.如权利要求9所述的非暂态计算机可读存储介质,其中查询引擎根据能够包括节点的查询执行计划来处理针对数据库的查询,其中包括其记录元数据和数据的每个查询执行调试器文件表示与查询执行计划相关联的中间结果。12.如权利要求9所述的非暂态计算机可读存储介质,包括多个查询执行调试器文件,
其中能够为由查询执行计划定义的每个节点生成单独的查询执行调试器文件。

技术总结
根据实施例,本文描述了一种查询执行调试器,用于与支持数据分析的计算环境一起使用。查询引擎根据查询执行计划为来自客户端的针对存储在数据库处的数据的分析查询或请求提供服务,其中逻辑查询可以包括从客户端接收的查询语言语句;而物理查询包括查询引擎发送到数据库以在处理逻辑查询时检索数据的特定于数据库的语句。系统可以创建查询执行调试器文件,该查询执行调试器文件包括记录元数据部分或区段以及数据部分或区段,并且可以被用于审查、模拟或调试针对数据库的查询的处理。模拟或调试针对数据库的查询的处理。模拟或调试针对数据库的查询的处理。


技术研发人员:K
受保护的技术使用者:甲骨文国际公司
技术研发日:2021.10.28
技术公布日:2023/7/22
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐