掌桥专利:专业的专利平台
掌桥专利
首页

一种数据展示方法、装置、设备及介质

文献发布时间:2024-04-18 20:02:40


一种数据展示方法、装置、设备及介质

技术领域

本说明书涉及计算机技术领域,尤其涉及一种数据展示方法、装置、设备及介质。

背景技术

目前在企业信息化时代,会在产生大量重要的数据。由于数据库中的数据体量大、种类多,商务智能领域高性能的数据展示变成的重点和难点。若要展示大量数据之间的分类汇总关系,传统的数据展示方式是将数据一次性从数据库中取出,然后进行分类和汇总操作。然而,这种方式在面对大量数据时存在一些问题。

首先,大量数据的提取和加载会导致系统的内存溢出。当需要展示的数据量巨大时,一次性将所有数据加载到内存中会占用大量的内存空间,可能导致系统无法处理如此大量的数据而出现内存溢出的情况。

其次,大量数据的加载会导致系统响应缓慢和页面卡顿。当数据量庞大时,将全部数据加载到内存中需要一定的时间,因此在展示数据之前,用户可能需要等待较长的时间。而在页面加载数据时,如果数据量过大,可能导致页面出现卡顿的现象,影响用户的使用体验。

此外,将大量数据返回给浏览器也可能导致浏览器崩溃。浏览器在处理大量数据时,需要消耗大量的资源,包括内存和计算能力。如果数据量过大,超过了浏览器的处理能力,就有可能导致浏览器崩溃或无响应的情况。

因此,为了解决以上问题,需要一种高性能的数据展示方式,能够在面对大量数据时能够提供快速、流畅的展示效果,同时避免内存溢出、页面缓慢加载和浏览器崩溃等问题。

发明内容

本说明书一个或多个实施例提供了一种数据展示方法、装置、设备及介质,用于解决背景技术提出的技术问题。

本说明书一个或多个实施例采用下述技术方案:

本说明书一个或多个实施例提供的一种数据展示方法,包括:

连接指定数据源,以获取指定数据集;

确定所述指定数据集的数据库类型,并根据所述数据库类型,确定分页指令;

根据所述分页指令,在所述指定数据集中确定当前页数据,并对所述当前页数据进行展示,所述当前页数据为当前页中待展示的数据。

本说明书一个或多个实施例提供的一种数据展示装置,所述装置包括:

数据集获取单元,连接指定数据源,以获取指定数据集;

分页指令确定单元,确定所述指定数据集的数据库类型,并根据所述数据库类型,确定分页指令;

数据展示单元,根据所述分页指令,在所述指定数据集中确定当前页数据,并对所述当前页数据进行展示,所述当前页数据为当前页中待展示的数据。

本说明书一个或多个实施例提供的一种数据展示设备,包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:

连接指定数据源,以获取指定数据集;

确定所述指定数据集的数据库类型,并根据所述数据库类型,确定分页指令;

根据所述分页指令,在所述指定数据集中确定当前页数据,并对所述当前页数据进行展示,所述当前页数据为当前页中待展示的数据。

本说明书一个或多个实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令被计算机执行时能够实现:

连接指定数据源,以获取指定数据集;

确定所述指定数据集的数据库类型,并根据所述数据库类型,确定分页指令;

根据所述分页指令,在所述指定数据集中确定当前页数据,并对所述当前页数据进行展示,所述当前页数据为当前页中待展示的数据。

本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:

本说明书实施例通过分页指令,可以一次只获取一部分数据,减少内存占用,提高数据处理效率。同时,现有技术大多将大量数据一次性取出并加载到内存中,可能会导致服务器负担过重,影响性能,而本说明书实施例通过分页方式,可以将数据逐步加载到内存中,减轻服务器负担。此外,本说明书实施例通过分页方式,可以让用户在不刷新页面的情况下查看多个页面的数据,提升用户体验。

附图说明

为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本说明书一个或多个实施例提供的一种数据展示方法的流程示意图;

图2为本说明书一个或多个实施例提供的数据展示系统的结构示意图;

图3为本说明书一个或多个实施例提供的数据分页展示方法的流程示意图;

图4为本说明书一个或多个实施例提供的取明细数据的流程示意图;

图5为本说明书一个或多个实施例提供的取聚合数据的流程示意图;

图6为本说明书一个或多个实施例提供的导出数据到Excel的流程示意图;

图7为本说明书一个或多个实施例提供的一种数据展示装置的结构示意图;

图8为本说明书一个或多个实施例提供的一种数据展示设备的结构示意图。

具体实施方式

本说明书实施例提供一种数据展示方法、装置、设备及介质。

目前在企业信息化时代,会在产生大量重要的数据。由于数据库中的数据体量大、种类多,商务智能领域高性能的数据展示变成的重点和难点。BI工具作为一种可视化产品,用户最终看到的是可视化看板、数据的展示。若要展示大量数据之间的分类汇总关系,传统方式是将数据一次性取出,再进行分类汇总。但大量的数据提取加载到内存,会导致系统的内存溢出、加载缓慢、页面卡顿等问题。大量的数据返回给浏览器,也会导致浏览器崩溃。

加载数据的数据库查询是网页响应时间的一个重要因素,优化数据库查询可以减少查询时间,提高网页性能。数据展示的高效、快速、流畅可以极大增强用户的体验感和满意度。针对海量数据取数效率慢及展示体验差的现状,需要一种高性能的BI工具系统,来提高企业海量数据的展示效率。

为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。

图1为本说明书一个或多个实施例提供的一种数据展示方法的流程示意图,该流程可以由数据展示系统执行。流程中的某些输入参数或者中间结果允许人工干预调节,以帮助提高准确性。

本说明书实施例的方法流程步骤如下:

S102,连接指定数据源,以获取指定数据集。

在本说明书实施例中,可以根据任务要求,并使用适当的数据连接工具或编程语言来连接数据源。

S104,确定所述指定数据集的数据库类型,并根据所述数据库类型,确定分页指令。

在本说明书实施例中,关于分页指令,首先,分页指令可以提高查询性能并减少内存压力。当数据量很大时,一次性将全部内容都查询出来会占用大量内存,可能导致内存溢出。而使用分页查询,每次只返回一部分结果,可以显著减低宽带使用和提高访问速度。其次,根据用户需求提供适当的数据也是分页指令的一大优势。用户可以根据自己的需要查看特定页面的数据,而不是加载整个数据集。此外,分页方式适合大数据量的数据进行分页。因为这种方式每次返回的数据量较少,仅返回当前页所需的数据内容。

在数据库处理层面,使用分页指令可以减少数据库的处理时间,提高效率。尤其在处理大数据量的查询操作时,利用分页查询可以使得一页内展示的数据更加清晰易读。

根据所述指定数据集的数据库类型,确定该数据库支持的分页指令。常见的数据库类型有MySQL、Oracle、SQL Server等,在确定数据库类型后,可以查阅相关文档或参考数据库操作手册,获取所支持的分页指令。数据库类型为MySQL时,分页指令可以为SQL分页指令。

确定分页指令:根据数据库类型确定合适的分页指令。例如,在MySQL中可以使用LIMIT语句来实现分页,而在Oracle中可以使用ROWNUM或ROW_NUMBER()OVER()函数来实现分页。

S106,根据所述分页指令,在所述指定数据集中确定当前页数据,并对所述当前页数据进行展示,所述当前页数据为当前页中待展示的数据。

在本说明书实施例中,可以根据所确定的分页指令,在指定数据集中确定当前页数据。可以使用数据库查询语句结合分页指令来获取当前页的数据。对确定的当前页数据进行展示。可以将数据展示在前端页面上,或者输出到文档、报表等形式。

此外,如果需要展示多个页面的数据,可以根据需要重复执行上述步骤,直到所有页面的数据都被展示完毕。

需要说明的是,本说明书实施例通过分页指令,可以一次只获取一部分数据,减少内存占用,提高数据处理效率。同时,现有技术大多将大量数据一次性取出并加载到内存中,可能会导致服务器负担过重,影响性能,而本说明书实施例通过分页方式,可以将数据逐步加载到内存中,减轻服务器负担。此外,本说明书实施例通过分页方式,可以让用户在不刷新页面的情况下查看多个页面的数据,提升用户体验。

需要说明的是,本说明书实施例通过对数据的分类汇总关系进行展示,可以更好地理解和分析数据,优化数据展示效果。本说明书实施例通过分页方式,可以避免一次性加载大量数据导致的系统崩溃、页面卡顿等问题,降低系统风险。

进一步的,本说明书实施例根据所述分页指令,在所述指定数据集中确定当前页数据的过程中,可以根据数据游标对所述指定数据集的数据行进行循环取数,得到当前页中多行待展示数据,并将所述待展示数据加载到内存,以确定所述当前页数据。

需要说明的是,对于上述确定当前页数据的相关内容,本说明书实施例可以通过下述具体步骤:

首先,根据分页指令确定当前页的起始位置和结束位置。

然后,使用数据游标对指定数据集的数据行进行循环取数。数据游标是一个指向数据集的指针,可以用于遍历数据集的每一行数据。

在循环过程中,判断当前行是否属于当前页的范围。如果是,判断当前行是否为当前页需要展示的数据,如果是,则将该行数据加载到内存中作为待展示数据。

继续循环,直到遍历完当前页的所有数据行。

最后,将内存中的待展示数据确定为当前页数据。

需要说明的是,本说明书实施例通过使用数据游标对指定数据集的数据行进行循环取数,可以实现高效的数据分页查询。相比于一次性将所有数据加载到内存中,本说明书实施例可以根据需要逐步加载当前页的数据,减少了内存的使用量,提高了系统的性能和响应速度。同时,由于只加载当前页所需的数据,也减少了数据传输的开销,提高了系统的吞吐量。

进一步的,本说明书实施例根据数据游标对所述指定数据集的数据行进行循环取数,得到当前页中多行待展示数据,并将所述待展示数据加载到内存,以确定所述当前页数据的过程中,可以通过数据游标对所述指定数据集的数据行进行第一次循环取数,得到当前页中多行待展示数据,并将所述待展示数据加载到内存;通过数据游标对所述指定数据集的数据行进行第二次循环取数,以对当前页中待展示的数据进行聚合,以确定所述当前页数据。

需要说明的是,对于上述确定当前页数据更具体的内容,本说明书实施例可以通过下述具体步骤:

首先,需要创建一个数据游标,用于遍历指定的数据集。

然后,我们可以通过数据游标对数据集进行循环取数,得到当前页中多行待展示数据。

接下来,需要将这些待展示数据加载到内存中。

最后,可以通过数据游标对数据集进行第二次循环取数,以对当前页中待展示的数据进行聚合,以确定所述当前页数据。

需要说明的是,通过数据游标对指定数据集的数据行进行第一次循环取数,可以有效地处理大量的数据,而不需要一次性将所有数据加载到内存中。这样可以减少内存的使用,提高数据处理的效率。同时,通过数据游标的使用,可以在需要的时候获取到数据,而不是一次性获取所有数据,这样可以节省网络带宽和计算资源。通过数据游标对指定数据集的数据行进行第二次循环取数,以聚合当前页中待展示的数据并确定当前页数据。

需要说明的是,数据游标允许逐行读取记录,而不是一次性获取所有数据。因此,在处理大量数据时,使用数据游标可以显著提高数据处理的效率。数据游标可以是系统为用户开设的一个数据缓冲区,存放分页指令的执行结果。这意味着无需一次性将所有数据加载到内存中,而只在需要时才获取对应的数据行,这大大减少了内存的使用。

同时,通过数据游标,可以在遍历数据集的过程中,根据需要动态调整处理逻辑,例如对某些数据行进行特殊处理。使用数据游标可以将复杂的查询分解为一系列简单的步骤,使代码更易理解和维护。

总的来说,利用数据游标来对数据进行循环取数和聚合,可以在处理大规模数据集时提供更高的效率和更好的灵活性。

进一步的,本说明书实施例通过数据游标对所述指定数据集的数据行进行第一次循环取数,得到当前页中多行待展示数据,并将所述待展示数据加载到内存的过程中,可以确定所述指定数据集中各行数据的分组键值;若当前行数据的分组键值为所述当前页中待展示的数据,且内存中未包含所述当前行数据的分组键值,将所述当前行数据的分组键值加载到内存;若所述当前行数据不为所述当前页的最后一行数据,对所述当前行数据后续的行数据依次判断对应的分组键值是否为所述当前页中待展示的数据,且内存中是否包含所述当前行数据后续的行数据对应的分组键值;若所述当前行数据后续的行数据的分组键值为所述当前页中待展示的数据,且内存中未包含所述当前行数据后续的行数据的分组键值,将所述当前行数据后续的行数据的分组键值加载到内存。

需要说明的是,对于上述第一次循环取数的相关内容,本说明书实施例可以通过下述具体步骤:

创建一个数据游标,用于遍历指定的数据集。通过数据游标对数据集进行第一次循环取数,得到当前页中多行待展示数据。在将待展示数据加载到内存的过程中,确定指定数据集中各行数据的分组键值。判断当前行数据的分组键值是否为当前页中待展示的数据,且内存中是否包含该分组键值。如果满足条件,则将该分组键值加载到内存。判断当前行数据是否为当前页的最后一行数据。如果不是最后一行数据,则对后续的行数据依次进行判断和处理。

对于当前行的后续行数据,判断后续行数据的分组键值是否为当前页中待展示的数据,且内存中是否包含该分组键值。如果满足条件,则将该分组键值加载到内存。

需要说明的是,通过以上实施步骤,可以有效地处理大量数据,并确保内存中只存储当前页中需要展示的数据。这样可以减少内存的使用,提高数据处理的效率。同时,通过使用数据游标,可以在需要的时候获取对应的数据行,而不是一次性获取所有数据,这有助于节省网络带宽和计算资源。此外,这种方法还可以更好地理解数据的结构,提高代码的可读性和可维护性。

进一步的,本说明书实施例通过数据游标对所述指定数据集的数据行进行第二次循环取数,以对当前页中待展示的数据进行聚合,以确定所述当前页数据的过程中,可以确定所述指定数据集中各行数据的分组键值;分别判断各行数据的分组键值是否存储于内存中,得到分组键值存储于内存中的多行数据,并对所述多行数据进行聚合处理,聚合得到当前页中待展示的各行数据,以确定所述当前页数据。

需要说明的是,对于上述第二次循环取数的相关内容,本说明书实施例可以通过下述具体步骤:

创建一个数据游标,用于遍历指定的数据集。通过数据游标对数据集进行第二次循环取数,以对当前页中待展示的数据进行聚合。确定指定数据集中各行数据的分组键值。分别判断各行数据的分组键值是否存储于内存中。如果分组键值存储于内存中,则获取对应的多行数据。对获取到的多行数据进行聚合处理,得到当前页中待展示的各行数据,以确定当前页的数据。

进一步的,若导出全部数据至Excel中,本说明书实施例根据所述分页指令,在所述指定数据集中确定当前页数据的过程中,可以根据数据游标对所述指定数据集的数据行进行循环取数,得到当前页中多行待展示数据;当所述待展示数据的行数大于设定值,将所述待展示数据加载到Excel。

需要说明的是,对于将待展示数据加载到Excel的相关内容,本说明书实施例可以通过下述具体步骤:

创建一个数据游标,用于遍历指定的数据集。根据分页指令,确定当前页的数据范围。通过数据游标对指定数据集进行循环取数,得到当前页中多行待展示数据。判断待展示数据的行数是否大于设定值。如果待展示数据的行数大于设定值,则将待展示数据加载到Excel中,以导出Excel文件。

需要说明的是,通过以上实施步骤,可以实现在确定当前页数据至Excel时,根据数据游标对指定数据集的数据行进行循环取数,得到当前页中多行待展示数据。当待展示数据的行数大于设定值时,将待展示数据加载到Excel中,提高数据处理的效率和准确性。同时,这种方法还可以更好地理解数据的结构,提高代码的可读性和可维护性。

需要说明的是,本说明书实施例基于现有的产品实现,包括数据库连接装置、数据集设计器、数据获取装置、数据展示装置四部分,如图2示出的数据展示系统的结构示意图。数据库连接装置用于数据库的连接,支持多种数据库的连接方式。数据集设计器可对数据库的取数进行设计,支持SQL取数和存储过程取数,SQL取数可自己定义,存储过程取数可连接数据库自己定义的存储过程,可构建灵活多变的数据。数据获取装置是实际取数的过程,数据展现的装置是对数据多种形式的展现,如图3示出的数据分页展示方法的流程示意图。

本说明书实施例针对数据库取数进行优化,对SQL取数自动添加分页,只取当前页数据,对存储过程取数,通过数据游标的形式,仅存取当前页的数据,减少内存占用。针对此种取数方式,本说明书实施例对数据的导出方式也进行了改进,提高了数据的导出性能。

主要的内容有:

1.对SQL取数自动添加分页,只取当前页数据,减少内存占用。

针对SQL取数方式,系统对不同的数据库,对SQL进行加工处理,加工成分页SQL,再执行数据库取数,此种方式只存取当前页数据,减少内存占用,如图3。具体为:

(1)连接数据源,获取数据集

(2)根据(1)中数据集,获取需要执行的SQL

(3)判断数据库类型,根据数据库类型,将数据集的SQL加工成相应数据库类型的分页SQL。

(4)执行加工后的SQL取当前页数据。

2.对存储过程取数,通过数据游标的形式获取数据库数据流,通过数据游标对数据流的数据行进行循环取数,获取数据后进行数据展示,如图3。数据游标取数时仅存取当前行的数据,若当前行数据是页面需要展示的数据,则将此数据行加载到内存里,若否,则将此数据行丢弃,针对存储过程不同的取数方式,具体实现方式做如下说明:

(1)取明细数据(如图4示出的取明细数据的流程示意图)

1.通过数据游标对数据流的数据行进行循环,仅存取当前页数据。

2.若当前行数据是页面需要展示的数据,则将此数据行加载到内存里。

3.若此数据行是当前页的最后一行数据,则终止数据游标对数据流的循环。

需要说明的是,数据游标是一种用于遍历和处理数据行的数据库对象。它允许在结果集中移动,并对每一行进行操作。使用游标可以按照定义的顺序逐行处理数据,而不是一次性返回所有数据。

当需要进行分页操作时,特别是在处理大量数据时,使用数据游标可以有效地控制内存的使用,只处理当前页的数据,减少了需要存取和处理的数据量,提高了性能和效率。

具体流程可以描述如下:

根据分页的设置,计算出当前页的起始行和结束行。

声明需要使用的变量,包括游标对象和存储数据的变量。

定义游标,并将查询结果集按照需要的排序方式和条件加载到游标中。

打开游标,并使用ResultSet.next()语句逐行获取数据。可以在循环中处理每一行的数据。

在循环结束后,关闭游标并释放相应的资源。

通过这种方式,只处理当前页的数据,按需取数,避免了一次性处理大量数据的性能和内存开销。同时,使用游标可以提供更灵活的数据操作和处理方式,适用于对数据流进行逐行处理的场景。

(2)取聚合数据(如图5示出的取聚合数据的流程示意图)

1.针对取聚合数据的场景,通过数据游标对数据流进行两次取数。

2.第一次数据游标对数据流的数据行进行循环,计算每行数据的分组key值,若当前行数据分组key值是当前页需要展示的数据且内存中不包含此分组key值,则将此分组key值加载到内存中,若此分组key值是当前页的最后一行数据,则终止数据游标对数据流的第一次循环。

3.数据游标对数据流结束第一次循环后,数据游标重新对数据流进行第二次循环,计算每行数据的分组key值,若当前行数据分组key值存于在内存中,则将此行的数据进行聚合处理,否则将这行数据丢弃。通过此种方式,便得到了当前页的聚合数据。

3.本发明的取数方式可改进导出数据到Excel的方式,提高导出性能。(如图6示出的导出数据到Excel的流程示意图)

1.针对大量数据导出成Excel的场景,采用分批分量加载到Excel的方式。

2.通过数据游标对数据流进行循环,当此数据行满足条件时,将此数据行加载到内存。

3.当数据行数达到事先设定的N(比如10万行)时,将此N行数据加载到Excel。

4.清空内存中的N行数据,继续进行过程2、3,直至数据游标循环结束。

5.这里加载的Excel使用节省内存的方式(SXSSFWorkbook),仅将部分数据加载到内存,其余数据加载到硬盘。

图7为本说明书一个或多个实施例提供的一种数据展示装置的结构示意图,所述装置包括:数据集获取单元702、分页指令确定单元704与数据展示单元706。

数据集获取单元702,连接指定数据源,以获取指定数据集;

分页指令确定单元704,确定所述指定数据集的数据库类型,并根据所述数据库类型,确定分页指令;

数据展示单元706,根据所述分页指令,在所述指定数据集中确定当前页数据,并对所述当前页数据进行展示,所述当前页数据为当前页中待展示的数据。

图8为本说明书一个或多个实施例提供的一种数据展示设备的结构示意图,包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:

连接指定数据源,以获取指定数据集;

确定所述指定数据集的数据库类型,并根据所述数据库类型,确定分页指令;

根据所述分页指令,在所述指定数据集中确定当前页数据,并对所述当前页数据进行展示,所述当前页数据为当前页中待展示的数据。

本说明书一个或多个实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令被计算机执行时能够实现:

连接指定数据源,以获取指定数据集;

确定所述指定数据集的数据库类型,并根据所述数据库类型,确定分页指令;

根据所述分页指令,在所述指定数据集中确定当前页数据,并对所述当前页数据进行展示,所述当前页数据为当前页中待展示的数据。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、非易失性计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

以上所述仅为本说明书的一个或多个实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书的一个或多个实施例可以有各种更改和变化。凡在本说明书的一个或多个实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

相关技术
  • 一种消息展示方法、装置、设备及存储介质
  • 一种界面展示方法、装置、终端设备及存储介质
  • 一种超声界面展示方法、装置、设备及存储介质
  • 一种行驶路径展示方法、装置、系统、设备及存储介质
  • 展示数据获取的方法、装置、计算机设备和存储介质
  • 高精地图数据展示方法、展示装置、电子设备及存储介质
  • 一种数据处理、数据展示方法、装置、计算机设备及存储介质
技术分类

06120116586829