交叉透视表生成方法、装置、电子设备和可读存储介质与流程

文档序号:29402192发布日期:2022-03-26 03:31阅读:103来源:国知局
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.将推荐的各个字段展示在页面的推荐区域;26.响应用户对推荐的字段的拖曳操作,基于所述拖曳操作将对应的字段拖曳至页面的目标区域以得到目标字段;27.其中,所述目标区域包括行字段区域、列字段区域和指标字段区域,所述目标字段包括位于所述行字段区域的目标行字段、位于所述列字段区域的目标列字段和位于所述指标字段区域的目标指标字段。28.在可选的实施方式中,所述目标字段包括目标行字段、目标列字段和目标指标字段;29.所述根据所述目标字段和用户基于推荐的数据模型确定的目标数据模型,对所述初始数据进行查询获得表数据的步骤,包括:30.根据用户基于推荐的数据模型确定的目标数据模型,确定数据源库表,并获取数据源库表的库表名称;31.设置所述目标指标字段的聚合方式;32.按所述聚合方式,并根据所述目标行字段、目标列字段、目标指标字段和库表名称对所述初始数据进行查询获得表数据。33.在可选的实施方式中,所述根据所述表数据生成交叉透视表的步骤,包括:34.分别按行维度和列维度对所述表数据进行提取;35.针对各所述行维度,获得所述行维度与各所述列维度结合时对应的表数据,生成主体数据;36.基于所述主体数据按设置规则进行合计处理,得到合计数据;37.根据所述合计数据、主体数据,生成交叉透视表。38.第二方面,本技术提供一种交叉透视表生成装置,所述装置包括:39.第一响应模块,用于响应当前接入操作,从内置的多个查询引擎中确定出相对于所述当前接入操作最优的目标查询引擎;40.获取模块,用于基于所述目标查询引擎获取初始数据;41.推荐模块,用于基于所述初始数据进行数据模型和字段的推荐;42.第二响应模块,用于响应用户基于推荐的字段进行的拖曳操作,获得所述拖曳操作对应的目标字段;43.生成模块,用于根据所述目标字段和用户基于推荐的数据模型确定的目标数据模型,对所述初始数据进行查询获得表数据,并根据所述表数据生成交叉透视表。44.第三方面,本技术提供一种电子设备,包括一个或多个存储介质和一个或多个与存储介质通信的处理器,一个或多个存储介质存储有处理器可执行的机器可执行指令,当电子设备运行时,处理器执行所述机器可执行指令,以执行前述实施方式中任意一项所述的方法步骤。45.第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质存储有机器可执行指令,所述机器可执行指令被执行时实现前述实施方式中任意一项所述的方法步骤。46.本技术实施例的有益效果包括,例如:47.本技术提供一种交叉透视表生成方法、装置、电子设备和可读存储介质,通过响应当前接入操作,从内置的多个查询引擎中确定出相对于当前接入操作最优的目标查询引擎,基于目标查询引擎获取初始数据。并基于初始数据进行数据模型和字段的推荐,响应用户基于推荐的字段进行的拖曳操作,获得拖曳操作对应的目标字段,根据目标字段和用户基于推荐的数据模型确定的目标数据模型,对初始数据进行查询获得表数据,根据表数据生成交叉透视表。本方案中,基于最优的目标查询引擎进行查询,可提高查询速度,且可实现智能推荐、智能生成交叉透视表,并且,拖曳操作的方式可提高操作的便捷性,可达到提高查询速度、数据分析效率,且提升用户体验的效果。附图说明48.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。49.图1为本技术实施例提供的交叉透视表生成方法的流程图;50.图2为图1中步骤s110包含的子步骤的流程图;51.图3为图1中步骤s120包含的子步骤的流程图;52.图4为图1中步骤s130包含的子步骤的流程图;53.图5为图1中步骤s140包含的子步骤的流程图;54.图6为本技术实施例提供的字段配置界面的示意图;55.图7为本技术实施例提供的合计配置界面的示意图;56.图8为图1中步骤s150包含的子步骤的流程图;57.图9为图1中步骤s150包含的子步骤的另一流程图;58.图10为本技术实施例提供的交叉透视表的显示效果示意图;59.图11为本技术实施例提供的电子设备的结构框图;60.图12为本技术实施例提供的交叉透视表生成装置的功能模块框图。61.图标:110-存储器;120-处理器;130-电源组件;140-通信组件;150-输入/输出接口;160-交叉透视表生成装置;161-第一响应模块;162-获取模块;163-推荐模块;164-第二响应模块;165-生成模块。具体实施方式62.现有技术中,在数据处理生成交叉透视表时主要具有两种方式,第一种方式是通过将关系型数据库的二维表格数据转换为交叉报表数据,主要为数据转换的算法,且针对于关系型数据库数据。这种方式中主要利用对数据转换的算法,使用场景局限于关系型数据库的数据,使用上较为复杂,需要再次进行开发。并且,不具备对接多种数据源以及数据查询的能力,不便于使用。63.第二种方式是采用类似配置式生成交叉透视表,利用准备好的数据通过配置生成交叉透视表。这种方式中,主要基于已经准备好的数据,并不能支持大数据量下的快速查询,不具备智能查询加速能力。并且,用户使用复杂,不具备智能推荐、智能生成交叉透视表的功能。64.基于上述研究发现,本技术提供一种交叉透视表生成方法,基于匹配的最优的目标查询引擎进行查询,可提高查询速度,且可实现智能推荐、智能生成交叉透视表,并且,拖曳操作的方式可提高操作的便捷性,可达到提高查询速度、数据分析效率,且提升用户体验的效果。65.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。66.因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。67.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。68.在本技术的描述中,需要说明的是,在不冲突的情况下,本技术的实施例中的特征可以相互结合。69.请参阅图1,为本技术实施例提供的交叉透视表生成方法的流程图,该交叉透视表生成方法有关的流程所定义的方法步骤可以由数据处理相关的电子设备实现。下面将对图1所示的具体流程进行详细阐述。70.步骤s110,响应当前接入操作,从内置的多个查询引擎中确定出相对于所述当前接入操作最优的目标查询引擎。71.步骤s120,基于所述目标查询引擎获取初始数据。72.步骤s130,基于所述初始数据进行数据模型和字段的推荐。73.步骤s140,响应用户基于推荐的字段进行的拖曳操作,获得所述拖曳操作对应的目标字段。74.步骤s150,根据所述目标字段和用户基于推荐的数据模型确定的目标数据模型,对所述初始数据进行查询获得表数据,并根据所述表数据生成交叉透视表。75.本实施例中,所述的当前接入操作可以是用户发起的用于获取以供生成交叉透视表的数据的接入操作,也即,通过该接入操作接入相应的数据源,从而从数据源获取用于生成交叉透视表的数据。76.在本实施例中,可以支持从多种数据源获取数据,例如从数据库进行数据获取,可包括mysql、impala、hive等数据库。也可以通过从本地文件进行数据获取,例如,从本地的excel\csv格式文件进行数据获取。77.在进行数据获取时,需要基于查询引擎进行数据查询。本实施例中,电子设备内置有多个查询引擎,例如,包括clickhouse、doris等。并且,还可以对内置的查询引擎进行扩充。对于不同数据源可能具有不同的适用的查询引擎,或者是处于不同运行状态下,可能最佳的查询引擎并不相同。因此,为了提高数据查询速度,在本实施例中,可以从多个查询引擎中确定出相对于当前接入操作最优的目标查询引擎。78.基于目标查询引擎获取初始数据,该初始数据则可以是从上述的不同的数据库获取的,也可以通过查询本地文本所获取的。79.由于不同的用户之间可能具有相似的需求,或者是同一用户的不同查询过程中也具有相似的需求,因此,可以采用向用户进行数据模型和字段的推荐的方式,从而可以便于用户基于推荐的数据模型和字段进行选择确认,可以大大提高用户在操作时的便捷性,并且由于所推荐的字段和数据模型是基于智能推荐方法所得到,可以实际贴合用户的需求。80.此外,在本实施例中,用户可以在页面上基于推荐的字段进行拖曳操作,从而从中确定出目标字段。支持直接拖曳操作的方式确认目标字段,可以进一步简化用户操作。81.在上述基础上,用户可以基于推荐的数据模型确定出目标数据模型,而根据最终的目标字段、目标数据模型,对上述获取的初始数据进行查询获得表数据,并根据表数据生成交叉透视表。82.本实施例所提供的交叉透视表生成方法,基于匹配的最优的目标查询引擎进行查询,可提高查询速度,且可实现智能推荐、智能生成交叉透视表,并且,拖曳操作的方式可提高操作的便捷性,可达到提高查询速度、数据分析效率,且提升用户体验的效果。83.本实施例中,在需要从数据库进行数据获取时,在内置的多个查询引擎中确定最优的目标查询引擎可以通过以下方式实现,请结合参阅图2:84.步骤s111,确定所述当前接入操作指向的待连接数据源。85.步骤s112,判断所述当前接入操作是否为针对所述待连接数据源的首次接入操作,若是,则执行以下步骤s113,若否,则执行以下步骤s114。86.步骤s113,比对内置的多个查询引擎的负载量,将负载量最小的查询引擎作为所述当前接入操作最优的目标查询引擎。87.步骤s114,获取所述待连接数据源的历史查询记录,在内置的各个查询引擎上执行与所述历史查询记录相同的查询操作并获得各个查询引擎在完成查询操作时的查询耗时,将查询耗时最短的查询引擎作为所述当前接入操作最优的目标查询引擎。88.本实施例中,当前接入操作所指向的待连接数据源可以是用户指定的,也即,可以基于用户输入的信息确定待连接数据源。如果当前接入操作是针对待连接数据源的首次接入操作时,也即待连接数据源没有历史接入信息,则可以从多个查询引擎中确定出负载量最小的查询引擎,以优先推荐负载量最小的查询引擎进行接入查询。其中,负载量是指查询引擎正在执行的查询总数。89.当然,在当前接入操作中也可包含用户指定的查询引擎的信息,在这种情形下,则可将用户指定的查询引擎作为目标查询引擎。90.而若当前接入操作并非待连接数据源的首次接入操作,也就是说,待连接数据源具有历史查询记录,在这种情形下,则可以通过在各个查询引擎中执行与待连接数据源的历史查询记录相同的查询操作,例如可以是待连接数据源的部分历史查询记录,如历史一段时间内的历史查询记录。并且,记录各个查询引擎执行完成该历史查询记录的查询耗时,若查询耗时越短,表明该查询引擎可能是越适宜进行该类型的数据源查询的查询引擎。因此,可以将查询耗时最短的查询引擎作为当前接入操作最优的目标查询引擎。91.在该步骤中,考虑到若查询引擎本身当前的查询负载量较大,这类查询引擎当前并不适于继续执行查询操作,因此,可以先获取当前各个查询引擎的查询负载量,将查询负载量超过系统设置的阈值的查询引擎先排除,基于排除后的查询引擎执行上述的历史查询记录的查询操作。从而可以避免查询负载量较大的查询引擎需要执行历史查询记录相同的查询操作,造成的查询负担且不必要的查询测试。92.此外,在本实施例中,还可以结合需要从待连接数据源接入的数据的大小、查询次数以及查询类型等多方面,综合确定出目标查询引擎,具体地本实施例不作限制。93.在确定目标查询引擎后,可以基于目标查询引擎获取初始数据。请参阅图3,在该步骤中,可以通过以下方式实现:94.步骤s121,确定所述当前接入操作指向的待连接数据源。95.步骤s122,根据所述待连接数据源的连接参数接入所述待连接数据源。96.步骤s123,基于所述目标查询引擎从所述待连接数据源获取初始数据。97.本实施例中,在确定当前接入操作指向的待连接数据源后,需要接入该待连接数据源,以便从该待连接数据源进行数据获取。可以基于待连接数据源的连接参数进行接入,其中,连接参数包括如数据源连接地址、接入端口、访问用户名、密码等。98.在接入待连接数据源并获取初始数据后,可以基于初始数据进行数据模型和字段的推荐。请参阅图4,在该步骤中,可以通过以下方式实现:99.步骤s131,对所述初始数据按不同的模式进行预处理,得到多个不同的数据模型。100.步骤s132,根据用户的个人信息、用户对已推荐的数据模型的历史使用信息、各所述数据模型的热度值中的至少一项进行数据模型的推荐。101.步骤s133,根据用户的个人信息、用户对已推荐的字段的历史使用信息、各所述字段的热度值中的至少一项进行字段的推荐。102.本实施例中,在接入初始数据后,可以首先对接入的初始数据进行预处理,可以通过配置化进行处理,包括如选择用到的库表、关联字段、关联方式、过滤条件等。此外,也可以通过sql方式进行编辑处理。基于选择信息的不同,可以理解为按不同的模式进行预处理,从而可以得到对应的不同的数据模型。其中,不同的数据模型则可以体现不同选择下的库表、关联字段、关联方式等。103.本实施例中,考虑到很多用户在行为特征、数据分析内容等方面具有一定的相似性,因此,通过智能推荐数据、智能生成交叉透视表可以大大提高效率,可以引导用户进行数据分析配置交叉透视表。例如,来自公司同一部门的用户,需要分析的数据内容具有高度的相似性,经常分析的维度、指标也具有相似性。因此,可以先向用户进行数据模型和字段的智能推荐,用户可在推荐的基础上,根据个性化需求进行选择和调整。104.在本实施例中,用户可以进行个人信息的输入,个人信息包括如年龄、性别、部门、数据分析方向等。推荐的模式可以包括常规模式和快速模式,其中,常规模式下可以首先推荐数据模型,可以以列表的形式进行数据模型的推荐。在用户选择目标数据模型后,可以根据用户选择的数据模型进行字段(包括字段组)的推荐,进而用于生成交叉透视表。在快速模式下,可以自动从推荐的数据模型列表中选择最佳的数据模型进行推荐,并在该最佳的数据模型的基础上,进行字段的推荐,进而用于生成交叉透视表。105.在本实施例中,进行数据模型的推荐时,可以基于用户的个人信息、用户对已推荐的数据模型的历史使用信息以及数据模型的热度值中的至少一项进行数据模型的推荐。106.例如,若为针对用户的首次推荐,则该用户不具有对应的历史推荐信息。如果该用户填写了个人信息,则可以基于填写的个人信息进行数据模型的推荐。若该用户未填写个人信息,则可以按照当前各个数据模型的热度值进行推荐,热度值可以利用各个数据模型被推荐、被使用的情况进行体现。被推荐次数越多、使用越频繁,则热度值越高。107.此外,若不为针对用户的首次推荐,则表明该用户具有对应的历史推荐信息,可以通过记录的用户对历史上已推荐的数据模型的历史使用信息(如最终是否使用、使用频次等)来进行数据模型的推荐。108.当然,在具有用户的个人信息、各个数据模型的热度值、用户对已推荐的数据模型的历史使用信息的情况下,可以结合三者进行综合推荐。例如,可以为三者分别设置不同的权值,将三者的信息进行数值化处理,结合所赋权值进行累加,得到的最终分值作为推荐值。可以按推荐值从高到低的顺序进行推荐,以供用户进行选择。109.本实施例中,进行字段推荐方式与数据模型推荐方式相同,同样地可以根据用户的个人信息、用户对已推荐的字段的历史使用信息、各字段的热度值中的至少一项进行字段的推荐。详细地,可以参见上述对于数据模型推荐的阐述。110.本实施例中,用户可以在智能推荐的字段和数据模型的基础上,结合自身实际需求从中进行选择。此外,也可以在推荐的字段的基础上,进行其他字段的添加等。111.本实施例中,用户可以采用直接对页面上的信息进行拖曳操作的方式进行字段的确认。请参阅图5,在上述步骤s140中,可以通过以下方式实现目标字段的获取:112.步骤s141,将推荐的各个字段展示在页面的推荐区域。113.步骤s142,响应用户对推荐的字段的拖曳操作,基于所述拖曳操作将对应的字段拖曳至页面的目标区域以得到目标字段。114.最终生成的交叉透视表可以划分为行维度、列维度和指标。维度可以体现事物现场的某种特征,例如性别、地区、时间等,而指标是衡量事物发展程度的单位和方法,通常需要经过加权、平均等聚合统计,例如人口数、用户数、利润率、留存率、覆盖率等。115.本实施例中,结合参阅图6,可以将推荐的各个字段展示在页面的右侧区域。各个字段可以以图框形式进行呈现,在鼠标点击和拖动下,可以实现复制并移动。116.在用户的拖曳操作下,可以将右侧的推荐区域的字段拖曳至目标区域,以表征选择该字段作为目标字段。其中,所述目标区域包括行字段区域、列字段区域和指标字段区域,所述目标字段包括位于所述行字段区域的目标行字段、位于所述列字段区域的目标列字段和位于所述指标字段区域的目标指标字段。117.如图6中所示,其中,销售类型、结算类型、渠道标识、指标名称为选择确定的目标行字段,商家名称、门店名称为选择确定的目标列字段,商品销售金额、销售数量为选择确定的目标指标字段。118.详细地,在行字段设置中,可以将字段拖曳至行字段区域,对应字段的数据将展示在行表头位置。同理,拖曳到列字段区域的字段,对应字段的数据将展示在列表头位置。通过页面拖曳最终生成的配置信息样例如下:119.120.[0121][0122]此外,指标字段的设置中,将需要展示为指标的字段拖曳至指标字段区域,此处同样可以设置展示名称、释义等信息,通过页面拖曳最终生成的配置信息样例如下:[0123][0124][0125]此外,在本实施例中,还可以进行合计、小计等的设置,合计和小计可以分别在列上与行上进行设置,对应的可以计算列上的合计、小计,以及行上的合计、小计。同样地,可以设置需要合计、小计的指标字段与聚合方式。通过页面配置最终生成的配置信息样例如下:[0126][0127]在进行合计、小计的相关设置时,可以在页面上显示如图7中所示的设置界面,在该设置界面上,可以根据需求进行设置,例如在需要显示列小计、显示列合计时,则可以勾选相应的选项前的勾选框,以进行相应设置。又如,若针对商品销售金额和销售数量是分别求和的方式进行合计和小计时,则可以选择合计方式为求和予以设置。[0128]本实施例中,采用直接在页面上进行拖曳操作的方式来实现目标字段的选择确认,可以简化用户的操作,提高操作的便捷性。[0129]用户在智能推荐的字段的基础上,可以基于自身需求从中进行选择和调整,从而可以快速实现贴合自身需求的字段的设置。[0130]例如,某零售公司s区域财务部门的分析员需要分析销售数据,生成交叉透视表进行动态分析。在常规模式下,根据该分析员的公司区域、部门等信息,以及历史使用情况,将为分析员推荐s区门店每日销售汇总数据、s区门店商品每日销售明细数据等模型。[0131]该分析员可从推荐的模型中选择s区门店每日销售汇总数据作为目标模型。然后可根据该分析员的公司区域、部门等信息,以及该分析员历史的数据使用情况进行字段选择生成交叉透视表。如推荐的字段包含维度(行维度和列维度)和指标,其中,推荐选择维度包括业务类型、门店、一级部门、二级部门、税率、经营方式,推荐选择指标包括含税销售额、未税销售额、含税毛利、未税毛利、销售数量。[0132]该分析员根据自身需求,在推荐的字段基础上,添加销售类型维度,去掉经营方式维度,添加优惠金额指标,即得到所需的目标字段。此外,可记录该分析员的选择情况,进行整理归类,提高后续推荐准确性。推荐的结果数据,也将参与该分析员所在区域及部门等,具有相似特征用户的推荐计算。[0133]在上述确定目标字段和目标数据模型的基础上,可以从上述接入的初始数据进行所需的表数据的查询。请参阅图8,在本实施例中,上述步骤s150中进行标数据的查询时,可以通过以下方式实现:[0134]步骤s151,根据用户基于推荐的数据模型确定的目标数据模型,确定数据源库表,并获取数据源库表的库表名称。[0135]步骤s152,设置所述目标指标字段的聚合方式。[0136]步骤s153,按所述聚合方式,并根据所述目标行字段、目标列字段、目标指标字段和库表名称对所述初始数据进行查询获得表数据。[0137]本实施例中,可以根据交叉透视表的维度、指标设置,动态生成数据查询语句,进行数据查询。查询语句样式可如下所示:[0138]select[0139]行维度字段1,行维度字段2……[0140]列维度字段1,列维度字段2……[0141]聚合方式(指标字段1),聚合方式(指标字段2)……[0142]from数据源库表[0143]groupby[0144]行维度字段1,行维度字段2……[0145]列维度字段1,列维度字段2……[0146]其中,交叉透视表中行维度、列维度字段可作为查询语句中select和groupby中的字段,行维度在前、列维度在后,按照设置顺序排列。[0147]可设置目标指标字段的聚合方式,格式化为:聚合方式(指标字段)。按照设置顺序加入到select中列维度字段后。[0148]根据接入的数据源获取到的初始数据在查询引擎中的库表名称,用于查询语句中库表的拼接。如此,可以结合上述信息,按聚合方式,并根据目标行字段、目标列字段、目标指标字段和库表名称对初始数据进行查询获得表数据。查询语句样例可如下所示:[0149]select[0150]销售类型,结算类型,渠道标识,商家名称,门店名称,[0151]sum(商品销售金额),sum(销售数量)[0152]from[0153]dmall_database.table_20210624175724[0154]groupby[0155]销售类型,结算类型,渠道标识,商家名称,门店名称[0156]最终得到的表数据的可以呈现为如下的表格式:[0157]表1[0158][0159]本实施例中,在上述获得表数据的基础上,可通过对表数据进行一系列的处理,从而最终生成所需格式的交叉透视表。详细地,请参阅图9,上述步骤s150中根据表数据生成交叉透视表可以通过以下方式实现:[0160]步骤s154,分别按行维度和列维度对所述表数据进行提取。[0161]步骤s155,针对各所述行维度,获得所述行维度与各所述列维度结合时对应的表数据,生成主体数据。[0162]步骤s156,基于所述主体数据按设置规则进行合计处理,得到合计数据。[0163]步骤s157,根据所述合计数据、主体数据,生成交叉透视表。[0164]本实施例中,首先可以根据维度、指标设置信息对表数据按照指标进行拆分处理,保留维度数据,将单个指标各自拆分为一条数据。例如,针对如下表2中的表数据,在拆分之后可以得到如表3所示的形式:[0165]表2[0166]普通订单o2o订单手机普通自由购商家as005店800.10381智能购智能购自助收银机商家as007店2,247.411,372[0167]表3[0168]普通订单o2o订单手机普通自由购商品销售金额商家as005店800.10普通订单o2o订单手机普通自由购销售数量商家as005店381智能购智能购自助收银机商品销售金额商家as007店2,247.41智能购智能购自助收银机销售数量商家as007店1,372[0169]然后,分别按行维度和列维度进行表数据的提取,提取数据中行、列所有维度数据值,去重生成行维度数据list、列维度数据list。[0170]例如,得到的行维度list为:[[普通订单,o2o订单,手机普通自由购,商品销售金额],[普通订单,o2o订单,手机普通自由购,销售数量],[智能购,智能购,自助收银机,商品销售金额],[智能购,智能购,自助收银机,销售数量]]。[0171]得到的列维度list为:[[商家a,s005店],[商家a,s007店]]。[0172]在提取维度对应的数据值的同时,可结合各行维度与各列维度,与对应的表数据之间具有映射关系,而该映射关系下的表数据可以作为主体数据。[0173]例如,行维度、列维度和表数据之间的映射关系可表征如下:[0174]{[普通订单,o2o订单,手机普通自由购,商品销售金额,商家a,s005店]—》800.10,[0175][普通订单,o2o订单,手机普通自由购,销售数量,商家a,s005店]—》381,[0176][智能购,智能购,自助收银机,商品销售金额,商家a,s007店]—》2,247.41,[0177][智能购,智能购,自助收银机,销售数量,商家a,s007店]—》1,372}[0178]在上述获得行维度list和列维度list的基础上,可以对行、列维度list进行排序,例如,按照门店名称降序排列,可得到如下所示形式:[0179]列维度list:[[商家a,s007店],[商家a,s005店]][0180]可遍历排序后的行、列维度list,根据行、列维度数据组合的值,从维度指标映射关系中获取指标结果,可得到用于生成交叉透视表的主体数据。以上述为例,得到的主体数据的形式可如下表4所示:[0181]在上述得到的主体数据的基础上,本实施例还支持行或列维度的合计、小计设置。其中,所述的合计处理则可以包括不同字段结合的合计。所述的设置规则可包含上述所设置的合计的方式,合计字段等。[0182]表4[0183]ꢀꢀꢀꢀ商家a商家a商家b商家bꢀꢀꢀꢀs005店s007店s001店s003店普通订单o2o订单手机普通自由购商品销售金额800.1018.18175.60480.44普通订单o2o订单手机普通自由购销售数量381968205智能购智能购自助收银机商品销售金额806.852,247.415,239.9316,737.69智能购智能购自助收银机销售数量6071,3722,4507,672智能购智能购手机普通自由购商品销售金额4,097.55339.871,019.062,306.68智能购智能购手机普通自由购销售数量2,1241704091,050[0184]详细地,可根据上述排序后的行、列维度list生成交叉透视表合并信息,合并信息用于合并计算与页面渲染计算合并单元格使用。[0185]例如,以表4中为例,其中,左侧的合并信息样例可如下:[0186][[{"number":2,"value":"普通订单"},{"number":4,"value":"智能购"}],[0187][{"number":2,"value":"o2o订单"},{"number":4,"value":"智能购"}],[0188][{"number":2,"value":"手机普通自由购"},{"number":2,"value":"自助收银机"},{"number":2,"value":"手机普通自由购"}]][0189]上述数组中的第一个值标识左侧第一列合并信息,第二个值标识左侧第二列合并信息,以此类推。[0190]通过合计处理得到的合计数据,结合得到的主体数据可生成最终所需格式的交叉透视表。[0191]例如,在开启列小计、指标计算方式为求和的情况下,将根据合并信息、分组求和计算对应的小计合计,小计合计的结果样例如下:[0192][{"data":[["合计",null,null,"商品销售金额",5704.498,2605.460,6434.588,19524.81],["合计",null,null,"销售数量",3112,1551,2927,8927]],"index":0,"value":[]},[0193]{"data":[[null,"小计",null,"商品销售金额",800.1000,18.18,175.6,480.43994],[null,"小计",null,"销售数量",381,9,68,205]],"index":1,"value":["普通订单"]},{"data":[[null,"小计",null,"商品销售金额",4904.399,2587.280,6258.988,19044.37],[null,"小计",null,"销售数量",2731,1542,2859,8722]],"index":1,"value":["智能购"]},[0194]{"data":[[null,null,"小计","商品销售金额",800.1000,18.18,175.6,480.43994],[null,null,"小计","销售数量",381,9,68,205]],"index":2,"value":["普通订单","o2o订单"]},[0195]{"data":[[null,null,"小计","商品销售金额",4904.399,2587.280,6258.988,19044.37],[null,null,"小计","销售数量",2731,1542,2859,8722]],"index":2,"value":["智能购","智能购"]}][0196]其中,data标识小计合计结果数据,index标识小计合计的层级,value定位小计合计位置。页面渲染时,根据以上信息,将小计合计插入指定位置用于展示。小计合计与交叉透视表主体数据分开,用户在进行排序等操作时,不需重新查询数据,页面进行排序重新插入小计合计结果即可,效率高,节省资源。[0197]在最终页面渲染显示时,可根据行表头及合并信息,列表头及合并信息,表格主体数据、合计数据等,进行页面渲染。最终在页面上的渲染显示效果可如图10中所示。[0198]本实施例所提供的交叉透视表生成方法,可支持多种查询引擎,可基于匹配的最优查询引擎进行查询处理,使得查询速度不断优化提高,支持大数据量下的快速查询。此外,可以为用户智能推荐数据,智能生成交叉透视表,通过整理归类,不断提高生成效率。并且,本实施例中,操作使用主要基于拖曳操作方式实现,使得数据分析简单便捷,不需要进行复杂开发,使用成本低。并且,生成的交叉透视表,可支持合计、小计、排序等场景的数据查询,使得数据分析方法更加丰富灵活。[0199]请参阅图11,本技术实施例还提供一种电子设备。图11是根据一示例性实施例示出的一种电子设备的框图。例如,电子设备可以被提供为服务器或终端设备,可支持数据分析、处理等功能。参照图11,电子设备包括处理器120,其数量可以为一个或多个,以及存储器110,用于存储可由处理器120执行的计算机程序。存储器110中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器120可以被配置为执行该计算机程序,以执行上述的交叉透视表生成方法。[0200]另外,电子设备还可以包括电源组件130和通信组件140,该电源组件130可以被配置为执行电子设备的电源管理,该通信组件140可以被配置为实现电子设备的通信,例如,有线或无线通信。此外,该电子设备还可以包括输入/输出接口150。电子设备可以操作基于存储在存储器110的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm等等。[0201]请参阅图12,本技术实施例还提供一种交叉透视表生成装置160,该交叉透视表生成装置160可以理解为上述电子设备,或电子设备的处理器120,也可以理解为独立于上述电子设备或处理器120之外的在电子设备控制下实现上述交叉透视表生成方法的软件功能模块。[0202]如图12所示,上述交叉透视表生成装置160可以包括第一响应模块161、获取模块162、推荐模块163、第二响应模块164和生成模块165。下面分别对该交叉透视表生成装置160的各个功能模块的功能进行详细阐述。[0203]第一响应模块161,用于响应当前接入操作,从内置的多个查询引擎中确定出相对于所述当前接入操作最优的目标查询引擎;[0204]可以理解,该第一响应模块161可以用于执行上述步骤s110,关于该第一响应模块161的详细实现方式可以参照上述对步骤s110有关的内容。[0205]获取模块162,用于基于所述目标查询引擎获取初始数据;[0206]可以理解,该获取模块162可以用于执行上述步骤s120,关于该获取模块162的详细实现方式可以参照上述对步骤s120有关的内容。[0207]推荐模块163,用于基于所述初始数据进行数据模型和字段的推荐;[0208]可以理解,该推荐模块163可以用于执行上述步骤s130,关于该推荐模块163的详细实现方式可以参照上述对步骤s130有关的内容。[0209]第二响应模块164,用于响应用户基于推荐的字段进行的拖曳操作,获得所述拖曳操作对应的目标字段;[0210]可以理解,该第二响应模块164可以用于执行上述步骤s140,关于该第二响应模块164的详细实现方式可以参照上述对步骤s140有关的内容。[0211]生成模块165,用于根据所述目标字段和用户基于推荐的数据模型确定的目标数据模型,对所述初始数据进行查询获得表数据,并根据所述表数据生成交叉透视表。[0212]可以理解,该生成模块165可以用于执行上述步骤s150,关于该生成模块165的详细实现方式可以参照上述对步骤s150有关的内容。[0213]在一种可能的实现方式中,上述获取模块162具体可以用于:[0214]确定所述当前接入操作指向的待连接数据源;[0215]根据所述待连接数据源的连接参数接入所述待连接数据源;[0216]基于所述目标查询引擎从所述待连接数据源获取初始数据。[0217]在一种可能的实现方式中,上述第一响应模块161具体可以用于:[0218]确定所述当前接入操作指向的待连接数据源;[0219]在所述当前接入操作为针对所述待连接数据源的首次接入操作时,比对内置的多个查询引擎的负载量,将负载量最小的查询引擎作为所述当前接入操作最优的目标查询引擎;[0220]在所述当前接入操作不为针对所述待连接数据源的首次接入操作时,获取所述待连接数据源的历史查询记录,在内置的各个查询引擎上执行与所述历史查询记录相同的查询操作并获得各个查询引擎在完成查询操作时的查询耗时,将查询耗时最短的查询引擎作为所述当前接入操作最优的目标查询引擎。[0221]在一种可能的实现方式中,上述推荐模块163具体可以用于:[0222]对所述初始数据按不同的模式进行预处理,得到多个不同的数据模型;[0223]根据用户的个人信息、用户对已推荐的数据模型的历史使用信息、各所述数据模型的热度值中的至少一项进行数据模型的推荐;[0224]根据用户的个人信息、用户对已推荐的字段的历史使用信息、各所述字段的热度值中的至少一项进行字段的推荐。[0225]在一种可能的实现方式中,上述第二响应模块164具体可以用于:[0226]将推荐的各个字段展示在页面的推荐区域;[0227]响应用户对推荐的字段的拖曳操作,基于所述拖曳操作将对应的字段拖曳至页面的目标区域以得到目标字段;[0228]其中,所述目标区域包括行字段区域、列字段区域和指标字段区域,所述目标字段包括位于所述行字段区域的目标行字段、位于所述列字段区域的目标列字段和位于所述指标字段区域的目标指标字段。[0229]在一种可能的实现方式中,所述目标字段包括目标行字段、目标列字段和目标指标字段;[0230]在一种可能的实现方式中,上述生成模块165具体可以用于:[0231]根据用户基于推荐的数据模型确定的目标数据模型,确定数据源库表,并获取数据源库表的库表名称;[0232]设置所述目标指标字段的聚合方式;[0233]按所述聚合方式,并根据所述目标行字段、目标列字段、目标指标字段和库表名称对所述初始数据进行查询获得表数据。[0234]在一种可能的实现方式中,上述生成模块165具体还可以用于:[0235]分别按行维度和列维度对所述表数据进行提取;[0236]针对各所述行维度,获得所述行维度与各所述列维度结合时对应的表数据,生成主体数据;[0237]基于所述主体数据按设置规则进行合计处理,得到合计数据;[0238]根据所述合计数据、主体数据,生成交叉透视表。[0239]关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。[0240]在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,例如包括程序指令的存储器110,上述程序指令可由电子设备的处理器120执行以完成上述的交叉透视表生成方法。[0241]具体地,该计算机可读存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该计算机可读存储介质上的计算机程序被运行时,能够执行上述交叉透视表生成方法。关于计算机可读存储介质中的及其可执行指令被运行时,所涉及的过程,可以参照上述方法实施例中的相关说明,这里不再详述。[0242]综上所述,本技术提供一种交叉透视表生成方法、装置、电子设备和可读存储介质,通过响应当前接入操作,从内置的多个查询引擎中确定出相对于当前接入操作最优的目标查询引擎,基于目标查询引擎获取初始数据,基于初始数据进行数据模型和字段的推荐,并响应用户基于推荐的字段进行的拖曳操作,获得拖曳操作对应的目标字段,根据目标字段和用户基于推荐的数据模型确定的目标数据模型,对初始数据进行查询获得表数据,根据表数据生成交叉透视表。本方案中,基于最优的目标查询引擎进行查询,可提高查询速度,且可实现智能推荐、智能生成交叉透视表,并且,拖曳操作的方式可提高操作的便捷性,可达到提高查询速度、数据分析效率,且提升用户体验的效果。[0243]以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1