CN110851249A - 一种数据导出的方法及设备 - Google Patents

一种数据导出的方法及设备 Download PDF

Info

Publication number
CN110851249A
CN110851249A CN201910973879.0A CN201910973879A CN110851249A CN 110851249 A CN110851249 A CN 110851249A CN 201910973879 A CN201910973879 A CN 201910973879A CN 110851249 A CN110851249 A CN 110851249A
Authority
CN
China
Prior art keywords
data
export
task
thread
tasks
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
CN201910973879.0A
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.)
Ping An Property and Casualty Insurance Company of China Ltd
Original Assignee
Ping An Property and Casualty Insurance Company of China 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 Ping An Property and Casualty Insurance Company of China Ltd filed Critical Ping An Property and Casualty Insurance Company of China Ltd
Priority to CN201910973879.0A priority Critical patent/CN110851249A/zh
Publication of CN110851249A publication Critical patent/CN110851249A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/485Resource constraint

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明适用于数据处理技术领域,提供了一种数据导出的方法及设备,包括:若满足预设的数据导出触发条件,则获取数据导出触发任务关联的所有数据导出任务;统计数据导出任务的任务个数,以及检测本地的线程池内的线程个数;基于任务个数以及线程个数,将线程池内的空闲线程划分为查询线程以及导出线程;调用查询线程从数据库中提取各个数据导出任务关联的目标数据,并通过导出线程将目标数据写入预设的任务数据文档。本发明能够将设备内的硬件资源划分为不同的类型,一部分执行数据查询操作,而另一部分执行数据导出操作,从而避免了所有硬件资源全部用于进行数据写入操作,从而导致CPU占用瞬时升高,提高了设备的稳定性。

Description

一种数据导出的方法及设备
技术领域
本发明属于数据处理技术领域,尤其涉及一种数据导出的方法及设备。
背景技术
随着各种各样文件均实行电子化,数据库中包含的数据量也越来越庞大。用户在日常工作以及生活中,常常需要通过数据库查询以及导出相应的数据,因此如何有效导出所需的数据显得尤为重要。特别地,当所需导出的数据数量较多的时候,由于大部分数据库在响应导出数据任务时,往往需要从数据库中查询所需导出的数据,查询得到所有目标数据后,再执行数据导出操作,从而在数据导出的过程,由于写入数据量巨大,会导致CPU占用升高,占用大量的硬件资源,降低了设备的稳定性,并且在数据查询期间,大量数据写入资源闲置,降低了资源的利用率。
发明内容
有鉴于此,本发明实施例提供了一种数据导出的方法及设备,以解决现有的数据导出的响应技术,当所需导出的数据数量较多的时候,由于写入数据量巨大,会导致CPU占用升高,占用大量的硬件资源,降低了设备的稳定性,并且在数据查询期间,大量数据写入资源闲置,降低了资源的利用率的问题。
本发明实施例的第一方面提供了一种数据导出的方法,包括:
若满足预设的数据导出触发条件,则获取所述数据导出触发任务关联的所有数据导出任务;
统计所述数据导出任务的任务个数,以及检测本地的线程池内的线程个数;
基于所述任务个数以及所述线程个数,将所述线程池内的空闲线程划分为查询线程以及导出线程;
调用所述查询线程从数据库中提取各个所述数据导出任务关联的目标数据,并通过所述导出线程将所述目标数据写入预设的任务数据文档。
本发明实施例的第二方面提供了一种数据导出的设备,包括:
数据导出触发单元,用于若满足预设的数据导出触发条件,则获取所述数据导出触发任务关联的所有数据导出任务;
线程个数统计单元,用于统计所述数据导出任务的任务个数,以及检测本地的线程池内的线程个数;
线程划分单元,用于基于所述任务个数以及所述线程个数,将所述线程池内的空闲线程划分为查询线程以及导出线程;
数据导出执行单元,用于调用所述查询线程从数据库中提取各个所述数据导出任务关联的目标数据,并通过所述导出线程将所述目标数据写入预设的任务数据文档。
本发明实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面的各个步骤。
本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现第一方面的各个步骤。
实施本发明实施例提供的一种数据导出的方法及设备具有以下有益效果:
本发明实施例通过在检测到当前满足数据导出触发条件时,可以获取与数据熬出触发条件关联的所有数据导出任务,并识别上述获取得到的数据导出任务的任务个数,以及满足数据导出触发条件时刻线程池内空闲线程的线程个数,基于任务个数以及线程个数对各个空闲线程进行分类,划分为用于查询数据的查询线程以及用于导出查询得到的目标数据的导出线程,并调用查询线程从数据库提取目标数据,在得到目标数据后并立即交由导出线程进行目标数据导出操作,继而再执行下一个数据导出任务,从而实现同时执行数据查询以及数据导出操作。与现有的数据导出技术相比,并非查询了所有数据导出任务的目标数据后,再统一执行数据导出操作,而是将设备内的硬件资源划分为不同的类型,一部分执行数据查询操作,而另一部分执行数据导出操作,从而避免了所有硬件资源全部用于进行数据写入操作,从而导致CPU占用瞬时升高,提高了设备的稳定性,另一方面,在执行查询操作的过程中也会对已查询完毕的目标数据进行导出操作,从而提高了设备的IO接口的利用率,在应对大数据导出任务时,提升了数据导出速度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一实施例提供的一种数据导出的方法的实现流程图;
图2是本发明第二实施例提供的一种数据导出的方法S104具体实现流程图;
图3是本发明第三实施例提供的一种数据导出的方法S1044具体实现流程图;
图4是本发明第四实施例提供的一种数据导出的方法S1042具体实现流程图;
图5是本发明第五实施例提供的一种数据导出的方法具体实现流程图;
图6是本发明一实施例提供的一种数据导出的设备的结构框图;
图7是本发明另一实施例提供的一种终端设备的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例通过对接收到的开发流程图像进行图像分析,提取待开发产品的开发流程信息,并根据待开发产品的产品类型获取与之对应的流程页面模板,并从流程页面模板中选取与开发流程信息中各个开发节点相关联的流程节点模板,分别将各个开发节点对应的开发内容导入到关联的流程节点模板内,生成流程节点的节点模块,并根据各个流程节点的节点模块,并基于各个流程节点在开发流程图像内所对应的节点次序,通过流程页面模板内的流程连接线模型依次连接各个节点模块,生成待开发产品的开发流程页面,实现了自动从开发量流程图转换为开发流程页面,提高了数据导出的效率,解决了现有的数据导出的技术,需要用户手动为流程图中的各个步骤配置对应的节点,并对各个节点在预设的页面中进行节点模块布局,花费大量时间在节点创建以及页面布局上,开发的速度较低的问题。
在本发明实施例中,流程的执行主体为终端设备。该终端设备包括但不限于:服务器、计算机、智能手机以及平板电脑等能够执行数据导出操作的设备。图1示出了本发明第一实施例提供的数据导出的方法的实现流程图,详述如下:
在S101中,若满足预设的数据导出触发条件,则获取所述数据导出触发任务关联的所有数据导出任务。
在本实施例中,终端设备可以设置有任务库,该任务库内存储有需要执行数据导出操作的多个数据导出任务,每个数据导出任务可以配置有相应的数据导出触发条件,其中,不同的数据导出任务的数据导出触发条件可以不同,也可以相同。举例性地,终端设备以预设的响应周期执行任务库内的待处理任务,并且每个响应周期执行的任务个数固定,基于此,终端设备可以根据各个待处理任务的接收次序,确定各个待处理任务的响应周期数,并将该响应周期数识别为待处理任务的数据导出条件,因此,处于同一响应周期数的所有待处理任务的数据导出触发条件相同,在该情况下,终端设备在检测到到达某一响应周期时,则会从任务库中提取该响应周期内关联的所有待处理任务作为本次需要进行数据导出的数据导出任务。其中,每个待处理任务可以根据接收的次序确定处理次序,当然,也可以根据待处理任务的任务内容以及任务所属的请求对象,为不同的待处理任务配置对应的处理优先级,并基于该优先级确定各个该处理任务的处理次序,并配置关联的响应周期。
可选地,终端设备在接收到用户终端发送的待处理任务后,会对该待处理任务进行解析,确定待处理任务的任务内容,基于任务内容确定第一优先级因子,该第一优先级因子可以基于任务内容的请求类型、预期数据量以及目标反馈时间等参数确定;终端设备通过识别所述用户终端所属用户的用户等级,基于所述用户等级确定第二优先级因子;终端设备记录接收到待处理任务请求的接收时间,基于历史接收到的待处理任务的历史任务个数以及所述接收时间,确定待处理请求的第三优先级因子,终端设备将第一优先级因子、第二优先级因子以及第三优先级因子导入到优先级转换模型,计算待处理任务的处理优先级,并基于该处理优先级确定待处理任务关联的响应周期。
在本实施例中,数据导出任务可以为一周期性触发任务,例如对于企业内需要统计每日的产品销售量或每月的员工出勤情况,则该类型的数据导出任务可以配置有多个触发时间点,在该情况下,终端设备若检测到当前时刻到达该数据导出任务预设的触发时间点,则识别满足该数据导出任务的任务触发条件,并对该数据导出任务执行数据导出操作。当然,终端设备可以识别任务库内所有数据导出任务预设的触发时间点,并基于各个触发时间点的先后次序,创建一个任务响应时刻表,终端设备可以创建一条任务响应监控线程来检测到当前时刻是否到达任务响应时刻表内任一触发时间点,若是,则执行对应的数据导出任务。
可选地,在本实施例中,终端设备可以设置有资源阈值,并以预设的采集间隔获取终端设备的资源占用率。若检测到某一时间内的资源占用率小于该资源阈值,则识别终端设备处于闲时状态,此时可以从任务库中提取预设数量的数据导出任务,执行S101至S104的操作。
在S102中,统计所述数据导出任务的任务个数,以及检测本地的线程池内的线程个数。
在本实施例中,终端设备在获取得到数据导出任务后,会统计本次所需执行的数据导出任务的任务个数,以便基于任务个数对线程池内的空闲线程的进行划分。同时,终端设备还可以检测当前本次的线程池内空闲线程的线程个数。终端设备可以在主进程中创建多条线程,通过不同的线程执行不同类型的任务。在线程执行完成一个任务后,将会处于空闲状态,并等待主进程分配其他任务。因此,终端设备在响应数据导出任务之前,可以确定本次的线程池包含的线程总数,并检测各个线程的工作状态,识别处于空闲状态的线程的个数,即上述的线程个数。
可选地,在本实施例中,终端设备可以设置有最大线程个数,终端设备可以识别本地已创建的线程数,并基于已创建线程数以及最大线程个数,得到可创建个数,并识别各个已创建线程的工作状态,得到处于空闲状态的线程的空闲个数,根据可创建个数以及空闲个数,计算得到上述的线程个数。
在S103中,基于所述任务个数以及所述线程个数,将所述线程池内的空闲线程划分为查询线程以及导出线程。
在本实施例中,终端设备在确定了任务个数以及线程个数后,可以根据上述两个参数,将线程池内包含的空闲线程划分为查询线程以及导出线程,并基于查询操作配置脚本对查询线程进行初始化配置操作,以及基于导出操作配置脚本对导出线程进行初始化配置操作。
可选地,在本实施例中,终端设备可以设置有查询周期数,基于该查询周期数与任务个数之间的比值,识别得到每个查询周期所需配置的查询线程个数,并分配对应数量的查询线程,并根据查询线程的个数以及空闲线程的总个数,得到导出线程的个数,并将线程池内对应数量的空闲线程设置为查询线程以及导出线程。
可选地,在本实施例中,终端设备可以设置有查询与导出的比例,并根据线程个数以及该比例,划分对应数量的查询线程以及导出线程,即查询线程的第一个数与导出线程的第二个数之比与上述比例匹配。优选地,该比例可以为1:1,若查询线程与导出线程的比例为1:1的情况下,终端设备可以为每个查询线程以及导出线程建立对应的关联关系,查询线程在获取得到目标数据后,可以基于该关联关系查询对应的导出线程,并通过导出线程对目标数据进行导出操作。可选地,终端设备可以基于关联关系在导出线程与查询线程之间建立一条虚拟数据链路,从而能够将查询线程中导出的目标数据快速传输给导出线程执行导出操作。当然,若查询线程与导出线程并不相同,终端设备可以查询线程与导出线程之间的比例,为每个查询线程配置对应的导出线程,在该情况下,一条导出线程可以对应多个查询线程,并基于目标数据的输出次序依次执行导出操作。
在S104中,调用所述查询线程从数据库中提取各个所述数据导出任务关联的目标数据,并通过所述导出线程将所述目标数据写入预设的任务数据文档。
在本实施例中,终端设备在对线程进行划分后,可以为各个查询线程分配对应的数据导出任务,查询线程会识别该数据导出任务包含的任务关键词,并从数据库中提取与任务关键词关联的数据,即上述的目标数据,并从数据库处取回到本地,在查询线程完成某一数据导出任务的所有查询任务后,会将查询得到的所有目标数据进行封装,并传输至导出线程。在查询完成一个数据导出任务后,查询线程会从任务池内提取下一个数据导出任务重复执行上述操作,直到任务池内所有数据导出任务被响应完成。
在本实施例中,查询线程可以将查询得到的目标数据存储在缓存区域内,在该情况下,导出线程可以从缓存区域中提取对应的目标数据执行数据导出操作,并在执行完成一次数据导出操作后,继续从缓存区域中提取另一目标数据进行数据导出操作。查询线程在导出得到目标数据后,可以获取各个目标数据的运行状态,并选取运行状态为空闲的一条导出线程作为目标导出线程,并将目标数据传输给目标导出线程执行数据导出操作。
在本实施例中,终端设备配置有数据文档模板,导出线程可以将目标数据导入到数据文档模板内,从而生成任务数据文档。当然,终端设备可以基于任务类型为不同的数据导出任务创建对应的数据文档模板,在执行导出操作时,基于任务类型选取关联的数据文档模板,并将目标数据导入到数据文档模板内,生成关于该数据导出任务的任务数据文档。
以上可以看出,本发明实施例提供的一种数据导出的方法通过在检测到当前满足数据导出触发条件时,可以获取与数据熬出触发条件关联的所有数据导出任务,并识别上述获取得到的数据导出任务的任务个数,以及满足数据导出触发条件时刻线程池内空闲线程的线程个数,基于任务个数以及线程个数对各个空闲线程进行分类,划分为用于查询数据的查询线程以及用于导出查询得到的目标数据的导出线程,并调用查询线程从数据库提取目标数据,在得到目标数据后并立即交由导出线程进行目标数据导出操作,继而再执行下一个数据导出任务,从而实现同时执行数据查询以及数据导出操作。与现有的数据导出技术相比,并非查询了所有数据导出任务的目标数据后,再统一执行数据导出操作,而是将设备内的硬件资源划分为不同的类型,一部分执行数据查询操作,而另一部分执行数据导出操作,从而避免了所有硬件资源全部用于进行数据写入操作,从而导致CPU占用瞬时升高,提高了设备的稳定性,另一方面,在执行查询操作的过程中也会对已查询完毕的目标数据进行导出操作,从而提高了设备的IO接口的利用率,在应对大数据导出任务时,提升了数据导出速度。
图2示出了本发明第二实施例提供的一种数据导出的方法S104的具体实现流程图。参见图2,相对于图1所述实施例,本实施例提供的一种数据导出的方法S104包括:S1041~S1044,具体详述如下:
进一步地,所述调用所述查询线程从数据库中提取各个所述数据导出任务关联的目标数据,并通过所述导出线程将所述目标数据写入预设的任务数据文档,包括:
在S1041中,采集各个所述导出线程的瞬时最大导出量,并根据所述瞬时最大导出量以及所述导出线程的导出线程个数,计算额定导出数据量。
在本实施例中,终端设备在执行了数据导出任务时,可以对数据导出任务进行分组操作,通过查询线程在完成一个导出任务组的查询任务后,再对该组查询得到的所有目标数据进行导出操作,通过对数据导出任务进行分组,能够更加有效地硬件资源进行管理以及估算数据导出操作。另一方面,在检测到导出数据异常时,由于不同的导出任务组之间是相互独立的,因此终端设备可以快速定位发生异常的数据导出任务所在的组别,并重新响应该存在异常的导出任务组内的数据导出任务即可,避免重新对所有已执行的数据导出任务进行重响应,提高了异常修复的效率。
在本实施例中,为了实现划分所有数据导出任务,终端设备需要确定本地的额定导出数据量。由于查询任务主要占用的是数据库的硬件资源,而将目标数据写入到本地存储单元则需要消耗终端设备的硬件资源,因此在本实施例中根据额定导出数据量对数据导出任务进行划分。
在本实施例中,终端设备在创建每条导出线程时,会为每条数据导出线程配置最大导出量,从而避免当某条导出线程异常时,占用大量的硬件资源,从而影响设备的正常运行。不同的导出线程的最大导出量可以相同也可以不同,例如,若某一导出线程的优先级较高,即该导出线程用于响应优先级较高的数据导出任务,则分配的最大导出量可以高于其他优先级较低的导出线程;当然,若各个导出线程的优先级相同,则对应的瞬时最大导出量可以相同。
在本实施例中,终端设备可以设置有一个占用比例,基于瞬时最大导出量以及占用比例,可以计算得到各个导出线程的额定导出量,并根据所有导出线程的额定导出量可以确定额定导出数据量。
在1042中,解析各个所述数据导出任务的任务内容,并基于所述任务内容确定期望数据量。
在本实施例中,终端设备可以对各个数据导出任务的目标数据的数据量进行预估。具体实现方式可以为:终端设备对数据导出任务进行解析,提取该数据导出任务的任务内容,举例性地,该任务内容可以为一SQL脚本,SQL脚本内包含有多个SQL语句,每个SQL语句对应一个所需查询的关键词,因此,终端设备可以从任务内容中提取多个所需查询的关键词,若查询关键词越多,则表示对于目标数据的限定信息越大,从而匹配的数据量越少,反之,若查询关键词越少,则对于目标数据的限定信息越少,从而匹配的数据量越多,因此,终端设备可以根据任务内容包含的目标关键词的个数,确定该数据导出任务的期望数据量。
在S1043中,根据所述额定导出数据量以及各个所述数据导出任务的所述期望数据量,将所有所述数据导出任务划分为至少一个导出任务组;所述导出任务组内所有所述数据导出任务的期望数据量之和小于或等于所述额定导出数据量。
在本实施例中,终端设备在确定了各个数据导出任务对应的期望数据量后,可以基于期望数据量对各个数据导出任务进行分组操作,为了避免在导出操作过程中,终端设备的资源占用过高而影响设备的稳定性,同一导出任务组内的所有数据导出任务的期望数据量之和应不大于导出线程的额定导出数据量。
在S1044中,通过所述查询线程以及所述导出线程分别对各个所述导出任务组执行数据导出操作。
在本实施例中,终端设备在对数据导出任务进行分组后,可以基于导出任务组分别执行导出操作,即通过查询线程对同一导出任务组内的所有数据导出任务进行查询操作,并获取目标数据后,则将该导出任务组内的所有目标数据交由导出线程执行导出操作。
在本发明实施例中,终端设备通过对数据导出任务进行组别划分,以保证每个导出任务组内的数据导出任务的数据总量不会超过终端设备的额定导出量,保证了设备运行的稳定性的同时,还能够便于对数据导出任务的管理效率。
图3示出了本发明第三实施例提供的一种数据导出的方法S1044的具体实现流程图。参见图3,相对于图2所述的实施例,本实施例提供的一种数据导出的方法S1044包括:S301~S303,具体详述如下:
进一步地,所述通过所述查询线程以及所述导出线程分别对各个所述导出任务组执行数据导出操作,包括:
在S301中,调用所述查询线程分别从所述数据库中提取各个所述导出任务组内所有数据导出任务的所述目标数据。
在本实施例中,终端设备可以对各个导出任务组配置对应的组编号,并基于组编号依次响应各个导出任务组内的数据导出任务。在处理组编号为1的导出任务组时,此时由于查询线程正在数据库中提取数据导出任务的目标数据,并未将目标数据导入到本地,因而导出线程会处于空闲状态。而在查询线程完成对组编号为1的导出任务组内所有数据导出任务后,会将该组的所有目标数据交由导出线程执行数据导出操作,此时,查询线程会处理组编号为2的导出任务组的查询任务;而导出线程会处理组编号为1的导出任务组的导出任务。由此可见,在查询线程执行组编号为n的导出任务组的查询任务时,导出线程则执行组编号为n-1的导出任务组的导出任务。
在S302中,若检测到查询任一所述导出任务组内所有所述数据导出任务的所述目标数据,则输出数据导出指令;所述数据导出指令携带有所述导出任务组的组编号。
在本实施例中,终端设备在检测到处于同一导出任务组内的所有数据导出任务均执行完成查询操作,即从数据库中提取得到与该数据导出任务关联的目标数据后,可以生成一个数据导出指令,并且,可以基于各个数据导出任务的任务编号,建立目标数据与任务编号之间的索引表,并对所有目标数据与索引表进行封装,将数据导出指令与封装后的目标数据包传输给导出线程,以通过导出线程执行后续的导出操作。
在本实施例中,由于查询线程可以基于组编号的次序进行查询操作,也可以随机选取对应的导出任务组执行查询操作,为了导出线程能够确定本次查询的导出任务组,可以将组编号添加到数据导出指令中,从而方便对数据导出操作进行管理。
在S303中,若接收到所述数据导出指令,则控制所述导出线程对所述组编号对应的所述数据导出任务的目标数据执行数据导出操作。
在本实施例中,终端设备在检测到数据导出指令后,则检测导出线程的工作状态,若导出线程仍在处理上一查询线程输出的目标数据时,则可以将本次输出的目标数据存储于缓存区域,并将数据导出指令添加到待响应列表内,在完成了上一周期的任务后,导出线程可以从待响应列表内基于添加时间的先后次序,依次处理各个数据导出指令关联的目标数据的导出操作;若导出线程处于空闲状态,则可以将目标数据,在对目标数据进行封装的情况下,则可以将目标数据包传输给导出线程执行数据导出操作。
在本实施例中,数据导出操作与S104中的描述相同,可以获取数据文档模板,并根据目标数据内各个参量的参数类型,导入到数据文档模板相应的区域内,从而得到关于数据导出任务的数据文档。具体描述可以参见S104的相关阐述,在此不再赘述。
在本发明实施例中,基于导出任务组分别对各个数据导出任务进行查询以及数据导出的响应,能够有效地对数据导出任务进行管理,提高了终端设备的稳定性以及任务的管理效率。
图4示出了本发明第四实施例提供的一种数据导出的方法S1042的具体实现流程图。参见图4,相对于图2所述实施例,本实施例提供的一种数据导出的方法S1042包括:S401~S403,具体详述如下:
进一步地,所述解析各个所述数据导出任务的任务内容,并基于所述任务内容确定期望数据量,包括:
在S401中,通过预设的语义解析算法,提取所述任务内容中的任务关键词。
在本实施例中,终端设备设置有语义解析算法,可以识别任务内容中各个字符之间的关联度,若任意两个或以上的字符之间的关联度大于预设的关联阈值,则识别上述多个字符为同一词组,从而可以将任务内容划分为多个候选关键词,终端设备可以基于各个候选关键词的词性,从候选关键词提取任务关键词,例如可以选取名词性的候选关键词作为任务关键词。
可选地,终端设备可以对各个任务关键词进行预处理,例如若某一任务关键词在任务内容中出现的次数较多,则可以将为该任务关键词配置较高的权重值,该权重值可以用于计算期望数据量时的贡献权重,即该权重值越大,在期望数据量中的贡献权重越大,从而能够提高期望数据量计算的准确性。
在S402中,查询各个所述任务关键词在所述数据库中的词频参量,并将所述词频参量导入预设的期望数据转换模型,计算所述词频参量的期望数据参量;所述期望数据转换模型具体为:
Figure BDA0002232989330000131
其中,ξData为所述期望数据参量;WF为所述词频参量;BF为基准词频;BaseData为基准数据量。
在本实施例中,终端设备在获取了任务关键词后,可以在数据库中对该任务关键词进行全局查找,检测该任务关键词在数据库内的出现次数,并将该出现次数识别为该任务关键词的词频参量。优选地,数据库建立一个词频索引表,在有新的数据添加到数据库后,数据库可以对该数据进行语义分析,确定该数据中包含的数据关键词,并基于各个数据关键词的出现次数,调整词频索引表中对应数据关键词的出现次数,从而实现了实时更新词频索引表的目的,在该情况下,终端设备可以直接从词频索引表中获取各个任务关键词的词频参量。
在本实施例中,终端设备会分别计算各个任务关键词的词频参量,计算的方式为将该任务关键词的词频参量导入到期望数据转换模型内,可以计算得到关于该任务关键词对应的期望数据参量。
在S403中,根据所述任务内容的所有所述期望数据参量,确定所述期望数据量。
在本实施例中,终端设备可以基于任务内容内各个任务关键词对应的期望数据参量进行累加,则可以计算得到关于任务内容的期望数据量。优选地,若任务关键词具有相应的加权权重,如上所述,终端设备可以基于各个任务关键词在任务内容的出现次数,计算得到各个任务关键词的加权权重,并基于该加权权重对各个任务关键词进行加权求和,从而将求和数值识别为该任务内容的期望数据量。
在本发明实施例中,通过对任务内容进行语义解析,识别得到任务关键词,并基于各个任务关键词在数据库内的词频参量,确定期望数据参量,从而基于所有任务关键词的期望数据参量,计算得到期望数据量,实现了对任务内容的期望数据量的估算,提高了任务管理的准确性。
图5示出了本发明第五实施例提供的一种数据导出的方法的具体实现流程图。参见图5,相对于图1至图4所述实施例,本实施例提供的一种数据导出的方法在所述若满足预设的数据导出触发条件,则获取所述数据导出触发任务关联的所有数据导出任务之前,还包括:S501~S504,具体详述如下:
进一步地,在所述若满足预设的数据导出触发条件,则获取所述数据导出触发任务关联的所有数据导出任务之前,还包括:
在S501中,接收用户终端发送的数据导出请求;所述数据导出请求包括数据原始文本。
在本实施例中,终端设备除了可以接收用户发送的数据导出任务外,还可以基于任务发送的数据导出请求,自动配置对应的数据导出任务。例如用户需要查询数据库中是否存在与预设文档相似度较高的关联文档,则可以直接将包含有预设文档的数据导出请求发送给终端设备,终端设备可以通过对该数据导出请求进行解析,从数据库中提取与该预设文档关联的文档数据。
在本实施例中,用户可以将所需查询并导出关联数据的原始文本添加到数据导出请求内,并通过用户终端将数据导出请求发送给终端设备。在该情况下,用户终端可以安装有终端设备关联的客户端,通过客户端与终端设备建立通信链路,并将数据导出请求通过通信链路传输给终端设备。需要说明的是,该数据导出请求内可以设置有查询时限,终端设备可以基于该查询时限配置对应的数据导出触发条件。
在S502中,提取所述数据原始文本中的查询关键词。
在本实施例中,终端设备可以通过语义解析算法,提取原始文本中的候选关键词,并从候选关键词中识别得到查询关键词。需要说明的是,终端设备可以对候选关键词进行关键词优化处理,优化操作包括有:相同或相似关键词合并操作、异常关键词过滤操作等。例如,若检测到第一关键词与第二关键词为近义词或同义词,则可以将两个关键词进行合并,通过上位关键词进行代替;又例如,若检测到第三关键词与第四关键词为互为相反关键词,而例如“男”和“女”,则对于查询得到目标数据,不可能同时满足上述两个关键词,则需要过滤其中一个关键词。而过滤的方式可以计算上述关键词的出现次数,选取出现次数较少一个关键词为异常关键词;又或者,终端设备可以识别关键词与其他关键词之间的关联度,从而计算出该关键词的融合度,并选取融合度较低一个关键词为异常关键词。
在S503中,识别各个所述查询关键词在所述数据库的数据表关联的数据类型,建立所述查询关键词与所述数据类型的关联关系。
在本实施例中,由于数据库的数据表的表头设置有不同的数据类型,例如“姓名”、“地址”、“电话号码”等,终端设备在识别得到查询关键词后,需要确定各个查询关键词所对应的数据类型,从而可以基于查询关键词的数据类型,建立查询关键词与数据类型的关联关系,并通过该关联关系,可以构建对应的SQL语句。
在S504中,根据所述关联关系输出所述数据导出请求的数据导出任务。
在本实施例中,终端设备可以基于关联关系构建对应的查询语句,例如SQL语句,并将所有查询语句进行合并以及封装,则可以生成SQL脚本或数据查询脚本,并基于上述脚本生成数据导出任务。
在本发明实施例中,通过对用户发送的原始文本,创建对应的数据导出任务,从而能够对于不具备编译能力的用户也能够在数据库中导出所需查询的数据,提高了数据导出的泛用性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
图6示出了本发明一实施例提供的一种数据导出的设备的结构框图,该数据导出的设备包括的各单元用于执行图1对应的实施例中的各步骤。具体请参阅图1与图1所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。
参见图6,所述数据导出的设备包括:
数据导出触发单元61,用于若满足预设的数据导出触发条件,则获取所述数据导出触发任务关联的所有数据导出任务;
线程个数统计单元62,用于统计所述数据导出任务的任务个数,以及检测本地的线程池内的线程个数;
线程划分单元63,用于基于所述任务个数以及所述线程个数,将所述线程池内的空闲线程划分为查询线程以及导出线程;
数据导出执行单元64,用于调用所述查询线程从数据库中提取各个所述数据导出任务关联的目标数据,并通过所述导出线程将所述目标数据写入预设的任务数据文档。
可选地,所述数据导出执行单元64包括:
额定导出数据量计算单元,用于采集各个所述导出线程的瞬时最大导出量,并根据所述瞬时最大导出量以及所述导出线程的导出线程个数,计算额定导出数据量;
期望数据量计算单元,用于解析各个所述数据导出任务的任务内容,并基于所述任务内容确定期望数据量;
导出任务组划分单元,用于根据所述额定导出数据量以及各个所述数据导出任务的所述期望数据量,将所有所述数据导出任务划分为至少一个导出任务组;所述导出任务组内所有所述数据导出任务的期望数据量之和小于或等于所述额定导出数据量;
分组导出执行单元,用于通过所述查询线程以及所述导出线程分别对各个所述导出任务组执行数据导出操作。
可选地,所述分组导出执行单元包括:
目标数据提取单元,用于调用所述查询线程分别从所述数据库中提取各个所述导出任务组内所有数据导出任务的所述目标数据;
数据导出指令输出单元,用于若检测到查询任一所述导出任务组内所有所述数据导出任务的所述目标数据,则输出数据导出指令;所述数据导出指令携带有所述导出任务组的组编号;
导出线程控制单元,用于若接收到所述数据导出指令,则控制所述导出线程对所述组编号对应的所述数据导出任务的目标数据执行数据导出操作。
可选地,所述期望数据量计算单元包括:
任务关键词提取单元,用于通过预设的语义解析算法,提取所述任务内容中的任务关键词;
期望数据参量计算单元,用于查询各个所述任务关键词在所述数据库中的词频参量,并将所述词频参量导入预设的期望数据转换模型,计算所述词频参量的期望数据参量;所述期望数据转换模型具体为:
Figure BDA0002232989330000171
其中,ξData为所述期望数据参量;WF为所述词频参量;BF为基准词频;BaseData为基准数据量;
期望数据量转换单元,用于根据所述任务内容的所有所述期望数据参量,确定所述期望数据量。
可选地,所述数据导出的设备还包括:
数据导出请求接收单元,用于接收用户终端发送的数据导出请求;所述数据导出请求包括数据原始文本;
查询关键词识别单元,用于提取所述数据原始文本中的查询关键词;
关联关系建立单元,用于识别各个所述查询关键词在所述数据库的数据表关联的数据类型,建立所述查询关键词与所述数据类型的关联关系;
数据导出任务创建单元,用于根据所述关联关系输出所述数据导出请求的数据导出任务。
因此,本发明实施例提供的数据导出的设备并非查询了所有数据导出任务的目标数据后,再统一执行数据导出操作,而是将设备内的硬件资源划分为不同的类型,一部分执行数据查询操作,而另一部分执行数据导出操作,从而避免了所有硬件资源全部用于进行数据写入操作,从而导致CPU占用瞬时升高,提高了设备的稳定性,另一方面,在执行查询操作的过程中也会对已查询完毕的目标数据进行导出操作,从而提高了设备的IO接口的利用率,在应对大数据导出任务时,提升了数据导出速度。
图7是本发明另一实施例提供的一种终端设备的示意图。如图7所示,该实施例的终端设备7包括:处理器70、存储器71以及存储在所述存储器71中并可在所述处理器70上运行的计算机程序72,例如数据导出的程序。所述处理器70执行所述计算机程序72时实现上述各个数据导出的方法实施例中的步骤,例如图1所示的S101至S104。或者,所述处理器70执行所述计算机程序72时实现上述各装置实施例中各单元的功能,例如图6所示模块61至64功能。
示例性的,所述计算机程序72可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器71中,并由所述处理器70执行,以完成本发明。所述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序72在所述终端设备7中的执行过程。例如,所述计算机程序72可以被分割成数据导出触发单元、线程个数统计单元、线程划分单元以及数据导出执行单元,各单元具体功能如上所述。
所述终端设备7可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器70、存储器71。本领域技术人员可以理解,图7仅仅是终端设备7的示例,并不构成对终端设备7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器70可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器71可以是所述终端设备7的内部存储单元,例如终端设备7的硬盘或内存。所述存储器71也可以是所述终端设备7的外部存储设备,例如所述终端设备7上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器71还可以既包括所述终端设备7的内部存储单元也包括外部存储设备。所述存储器71用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器71还可以用于暂时地存储已经输出或者将要输出的数据。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (10)

1.一种数据导出的方法,其特征在于,包括:
若满足预设的数据导出触发条件,则获取所述数据导出触发任务关联的所有数据导出任务;
统计所述数据导出任务的任务个数,以及检测本地的线程池内的线程个数;
基于所述任务个数以及所述线程个数,将所述线程池内的空闲线程划分为查询线程以及导出线程;
调用所述查询线程从数据库中提取各个所述数据导出任务关联的目标数据,并通过所述导出线程将所述目标数据写入预设的任务数据文档。
2.根据权利要求1所述的方法,其特征在于,所述调用所述查询线程从数据库中提取各个所述数据导出任务关联的目标数据,并通过所述导出线程将所述目标数据写入预设的任务数据文档,包括:
采集各个所述导出线程的瞬时最大导出量,并根据所述瞬时最大导出量以及所述导出线程的导出线程个数,计算额定导出数据量;
解析各个所述数据导出任务的任务内容,并基于所述任务内容确定期望数据量;
根据所述额定导出数据量以及各个所述数据导出任务的所述期望数据量,将所有所述数据导出任务划分为至少一个导出任务组;所述导出任务组内所有所述数据导出任务的期望数据量之和小于或等于所述额定导出数据量;
通过所述查询线程以及所述导出线程分别对各个所述导出任务组执行数据导出操作。
3.根据权利要求2所述的方法,其特征在于,所述通过所述查询线程以及所述导出线程分别对各个所述导出任务组执行数据导出操作,包括:
调用所述查询线程分别从所述数据库中提取各个所述导出任务组内所有数据导出任务的所述目标数据;
若检测到查询任一所述导出任务组内所有所述数据导出任务的所述目标数据,则输出数据导出指令;所述数据导出指令携带有所述导出任务组的组编号;
若接收到所述数据导出指令,则控制所述导出线程对所述组编号对应的所述数据导出任务的目标数据执行数据导出操作。
4.根据权利要求2所述的方法,其特征在于,所述解析各个所述数据导出任务的任务内容,并基于所述任务内容确定期望数据量,包括:
通过预设的语义解析算法,提取所述任务内容中的任务关键词;
查询各个所述任务关键词在所述数据库中的词频参量,并将所述词频参量导入预设的期望数据转换模型,计算所述词频参量的期望数据参量;所述期望数据转换模型具体为:
Figure FDA0002232989320000021
其中,ξData为所述期望数据参量;WF为所述词频参量;BF为基准词频;BaseData为基准数据量;
根据所述任务内容的所有所述期望数据参量,确定所述期望数据量。
5.根据权利要求1-4任一项所述的方法,其特征在于,在所述若满足预设的数据导出触发条件,则获取所述数据导出触发任务关联的所有数据导出任务之前,还包括:
接收用户终端发送的数据导出请求;所述数据导出请求包括数据原始文本;
提取所述数据原始文本中的查询关键词;
识别各个所述查询关键词在所述数据库的数据表关联的数据类型,建立所述查询关键词与所述数据类型的关联关系;
根据所述关联关系输出所述数据导出请求的数据导出任务。
6.一种数据导出的设备,其特征在于,包括:
数据导出触发单元,用于若满足预设的数据导出触发条件,则获取所述数据导出触发任务关联的所有数据导出任务;
线程个数统计单元,用于统计所述数据导出任务的任务个数,以及检测本地的线程池内的线程个数;
线程划分单元,用于基于所述任务个数以及所述线程个数,将所述线程池内的空闲线程划分为查询线程以及导出线程;
数据导出执行单元,用于调用所述查询线程从数据库中提取各个所述数据导出任务关联的目标数据,并通过所述导出线程将所述目标数据写入预设的任务数据文档。
7.根据权利要求6所述的设备,其特征在于,所述数据导出执行单元包括:
额定导出数据量计算单元,用于采集各个所述导出线程的瞬时最大导出量,并根据所述瞬时最大导出量以及所述导出线程的导出线程个数,计算额定导出数据量;
期望数据量计算单元,用于解析各个所述数据导出任务的任务内容,并基于所述任务内容确定期望数据量;
导出任务组划分单元,用于根据所述额定导出数据量以及各个所述数据导出任务的所述期望数据量,将所有所述数据导出任务划分为至少一个导出任务组;所述导出任务组内所有所述数据导出任务的期望数据量之和小于或等于所述额定导出数据量;
分组导出执行单元,用于通过所述查询线程以及所述导出线程分别对各个所述导出任务组执行数据导出操作。
8.根据权利要求7所述的设备,其特征在于,所述分组导出执行单元包括:
目标数据提取单元,用于调用所述查询线程分别从所述数据库中提取各个所述导出任务组内所有数据导出任务的所述目标数据;
数据导出指令输出单元,用于若检测到查询任一所述导出任务组内所有所述数据导出任务的所述目标数据,则输出数据导出指令;所述数据导出指令携带有所述导出任务组的组编号;
导出线程控制单元,用于若接收到所述数据导出指令,则控制所述导出线程对所述组编号对应的所述数据导出任务的目标数据执行数据导出操作。
9.一种终端设备,其特征在于,所述终端设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时如权利要求1至5任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述方法的步骤。
CN201910973879.0A 2019-10-14 2019-10-14 一种数据导出的方法及设备 Pending CN110851249A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910973879.0A CN110851249A (zh) 2019-10-14 2019-10-14 一种数据导出的方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910973879.0A CN110851249A (zh) 2019-10-14 2019-10-14 一种数据导出的方法及设备

Publications (1)

Publication Number Publication Date
CN110851249A true CN110851249A (zh) 2020-02-28

Family

ID=69596475

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910973879.0A Pending CN110851249A (zh) 2019-10-14 2019-10-14 一种数据导出的方法及设备

Country Status (1)

Country Link
CN (1) CN110851249A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112632133A (zh) * 2020-12-31 2021-04-09 中国农业银行股份有限公司 一种数据链路查询方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101996067A (zh) * 2009-08-19 2011-03-30 阿里巴巴集团控股有限公司 一种数据导出的方法和装置
CN102591725A (zh) * 2011-12-20 2012-07-18 浙江鸿程计算机系统有限公司 一种异构数据库之间多线程数据交换的方法
CN102637214A (zh) * 2012-04-28 2012-08-15 中国工商银行股份有限公司 基于数据库服务间的通用数据同步方法及其系统
CN110008262A (zh) * 2019-02-02 2019-07-12 阿里巴巴集团控股有限公司 一种数据导出方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101996067A (zh) * 2009-08-19 2011-03-30 阿里巴巴集团控股有限公司 一种数据导出的方法和装置
CN102591725A (zh) * 2011-12-20 2012-07-18 浙江鸿程计算机系统有限公司 一种异构数据库之间多线程数据交换的方法
CN102637214A (zh) * 2012-04-28 2012-08-15 中国工商银行股份有限公司 基于数据库服务间的通用数据同步方法及其系统
CN110008262A (zh) * 2019-02-02 2019-07-12 阿里巴巴集团控股有限公司 一种数据导出方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112632133A (zh) * 2020-12-31 2021-04-09 中国农业银行股份有限公司 一种数据链路查询方法及装置
CN112632133B (zh) * 2020-12-31 2023-10-10 中国农业银行股份有限公司 一种数据链路查询方法及装置

Similar Documents

Publication Publication Date Title
CN108009236B (zh) 一种大数据查询方法、系统、计算机及存储介质
CN109491894B (zh) 一种接口测试的方法及设备
US9832280B2 (en) User profile configuring method and device
CN108776934B (zh) 分布式数据计算方法、装置、计算机设备及可读存储介质
CN106293891B (zh) 多维投资指标监督方法
WO2019161645A1 (zh) 基于Shell的数据表提取方法、终端、设备及存储介质
CN110569289B (zh) 基于大数据的列数据处理方法、设备及介质
CN111104419A (zh) 一种数据查询方法及装置
CN111651595A (zh) 一种异常日志处理方法及装置
CN114791927A (zh) 一种数据分析方法和装置
CN111159131A (zh) 性能优化方法、装置、设备及计算机可读存储介质
CN110851249A (zh) 一种数据导出的方法及设备
CN108287831B (zh) 一种url分类方法和系统、数据处理方法和系统
US20140214826A1 (en) Ranking method and system
CN109241511B (zh) 一种电子报告的生成方法及设备
CN108255704B (zh) 一种脚本调用事件的异常响应方法及其终端
CN114491253B (zh) 观测信息处理方法、装置、电子设备及存储介质
CN116126719A (zh) 接口测试方法、装置、电子设备及存储介质
CN113626387A (zh) 一种任务数据的导出方法、装置、电子设备及存储介质
CN111159213A (zh) 一种数据查询方法、装置、系统和存储介质
US9659041B2 (en) Model for capturing audit trail data with reduced probability of loss of critical data
KR102464688B1 (ko) 모니터링 결과의 이벤트 등급 결정 방법 및 장치
CN114168557A (zh) 一种访问日志的处理方法、装置、计算机设备和存储介质
CN110865877B (zh) 一种任务请求的响应方法及设备
CN114706893A (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