CN113923263B - 离线数据下载方法、装置、设备及计算机可读存储介质 - Google Patents
离线数据下载方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113923263B CN113923263B CN202111536981.8A CN202111536981A CN113923263B CN 113923263 B CN113923263 B CN 113923263B CN 202111536981 A CN202111536981 A CN 202111536981A CN 113923263 B CN113923263 B CN 113923263B
- Authority
- CN
- China
- Prior art keywords
- data
- offline
- data packet
- information
- downloading
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Abstract
本发明公开了一种离线数据下载方法、装置、设备及计算机可读存储介质,属于计算机技术领域。本发明通过定时脚本获取维度属性,并将该维度属性加入到消息队列中,通过消息队列获取维度属性对应的数据,依据该数据生成离线数据包,预先将数据打包成离线数据包,在快速同步数据的同时,缓解服务器负担,并将该离线数据包对应的数据包信息存入离线列表中,利用离线列表记录离线数据包相关信息,方便用户查询并定位需要的离线数据包,提升操作便捷性;从而在获取用户下载请求后,确定离线列表中与用户下载请求匹配的目标数据包信息,返回所述目标数据包信息对应的离线数据包,提升离线数据包生成效率,降低下载耗时,满足离线数据下载的多面性需求。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种离线数据下载方法、装置、设备及计算机可读存储介质。
背景技术
现有的离线数据同步下载方案主要有两种,一种是通过服务端分页下载的方式把数据同步到APP,另一种是服务端统一生成全量数据并打包供APP下载。上述两种方案均存在缺陷,其中,第一种方案随着数据量的增大,分页请求数会很多,下载的时间很长,另外服务器也需要耗费大量的资源去处理每个用户的分页数据,导致性能低下,响应很慢。第二种方案存在的缺陷是,服务端生成的全量数据包的方式属于粗放型,生成包耗时过长,数据臃肿不灵活,同时无法满足用户定制化数据及老用户对增量数据下载的需求。如何兼顾降低离线数据包下载耗时和满足新客户的增量下载要求和老客户的定制化数据要求,实现离线数据下载的多面性需求,成为目前亟需解决的问题。
发明内容
本发明的主要目的在于提供一种离线数据下载方法、装置、设备及计算机可读存储介质,旨在解决如何实现离线数据下载的多面性需求的技术问题。
为实现上述目的,本发明提供一种通过定时脚本获取维度属性;
通过消息队列获取所述维度属性对应的目标数据,依据所述目标数据生成离线数据包,并将所述离线数据包对应的数据包信息存入离线列表中;
获取用户下载请求,确定所述离线列表中与所述用户下载请求匹配的目标数据包信息,返回所述目标数据包信息对应的离线数据包。
可选地,所述通过消息队列获取所述维度属性对应的目标数据,依据所述目标数据生成离线数据包的步骤包括:
获取版本发布信息;
通过消息队列依据所述版本发布信息获取所述维度属性对应的数据,并将所述数据的数据格式转化为预设文件格式;
将数据格式转化为预设文件格式的数据压缩,生成离线数据包。
可选地,所述生成离线数据包的步骤包括:
确定所述版本发布信息对应的版本时间戳;
获取所述版本时间戳之前的历史数据中与所述维度属性对应的全量数据,依据所述全量数据生成全量数据包;
获取所述版本时间戳之前的预设时间范围内所述维度属性对应的初始增量数据,依据所述初始增量数据生成初始增量数据包,将所述全量数据包和所述初始增量数据包作为离线数据包。
可选地,所述离线数据包还包括增量数据包,所述生成离线数据包的步骤包括:
确定所述全量数据包对应的全量时间戳;
获取当前时间戳,并获取所述全量时间戳与所述当前时间戳对应的时间区间内所述维度属性对应的增量数据;
依据所述增量数据生成增量数据包。
可选地,所述将所述离线数据包对应的数据包信息存入离线列表中的步骤包括:
依据版本发布信息,生成所述离线数据包的版本号;
确定所述离线数据包的下载地址和生成所述离线数据包对应的离线时间戳;
确定所述离线数据包对应的离线维度属性,将所述版本号、所述下载地址、所述离线时间戳以及所述离线维度属性作为数据包信息记录至离线包日志,并将所述离线包日志存储至离线列表中。
可选地,所述获取用户下载请求,确定所述离线列表中与所述用户下载请求匹配的目标数据包信息,返回所述目标数据包信息对应的离线数据包的步骤包括:
获取用户下载请求,并确定所述用户下载请求中的请求版本信息、请求时间戳信息以及请求预设维度信息;
确定所述离线列表中是否存在与所述请求版本信息、请求时间戳信息以及请求预设维度信息匹配的目标离线包日志;
若存在所述目标离线包日志,则返回所述目标离线包日志对应的目标下载地址;
获取目标下载地址生成的资源请求,并根据所述资源请求返回离线数据包。
可选地,所述通过定时脚本获取维度属性的步骤之前,还包括:
确定数据信息,将所述数据信息与预设维度规则进行匹配;
确定与所述预设维度规则匹配的数据信息对应的数据,并按照预设维度规则定义所述数据的维度属性;
检测是否存在不匹配所述预设维度规则的零散数据信息,若存在所述零散数据信息,则将各所述零散数据信息对应的数据定义为同一个维度属性。
此外,为实现上述目的,本发明还提供一种离线数据下载装置,其特征在于,所述离线数据下载装置包括:
数据划分模块,用于通过定时脚本获取维度属性;
数据打包模块,用于通过消息队列获取所述维度属性对应的目标数据,依据所述目标数据生成离线数据包,并将所述离线数据包对应的数据包信息存入离线列表中;
数据下载模块,用于获取用户下载请求,确定所述离线列表中与所述用户下载请求匹配的目标数据包信息,返回所述目标数据包信息对应的离线数据包。
此外,为实现上述目的,本发明还提供一种离线数据下载设备,所述离线数据下载设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的离线数据下载程序,其中:所述离线数据下载程序被所述处理器执行时实现如上所述的离线数据下载方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有离线数据下载程序,所述离线数据下载程序被处理器执行时实现如上所述的离线数据下载方法的步骤。
本发明提出的一种离线数据下载方法、装置、设备及计算机可读存储介质,通过定时脚本获取维度属性,并将该维度属性加入到消息队列中,以利用消息队列多线程并发的方式快速地生成每个维度对应的离线数据包,通过消息队列获取维度属性对应的数据,依据数据生成离线数据包,并将该离线数据包对应的数据包信息存入离线列表中,利用离线列表记录离线数据包相关信息,预先将数据打包成离线数据包,在快速同步数据的同时,缓解服务器负担,且利用离线列表方便用户查询并定位需要的离线数据包,提升操作便捷性;从而在获取用户下载请求后,确定离线列表中与用户下载请求匹配的目标数据包信息,返回所述目标数据包信息对应的离线数据包,提升离线数据包生成效率,降低下载耗时,满足离线数据下载的多面性需求。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的离线数据下载设备的结构示意图;
图2为本发明一种离线数据下载方法第一实施例的流程示意图;
图3为本发明一实施例应用场景示意图;
图4为本发明一实施例应用流程示意图;
图5为本发明一实施例请求流程示意图;
图6为本发明离线数据下载装置系统结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的离线数据下载设备结构示意图。
如图1所示,该离线数据下载设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对离线数据下载设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及离线数据下载程序。
在图1所示的离线数据下载设备中,网络接口1004主要用于与其他设备进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明离线数据下载设备中的处理器1001、存储器1005可以设置在离线数据下载设备中,所述离线数据下载设备通过处理器1001调用存储器1005中存储的离线数据下载程序,并执行本发明实施例提供的离线数据下载方法。
本发明实施例提供了一种离线数据下载方法,参照图2,图2为本发明一种离线数据下载方法第一实施例的流程示意图。
本实施例中,所述离线数据下载方法包括:
步骤S100,通过定时脚本获取维度属性;
本实施例中,需要说明的是,系统数据是一个庞大的数据量,且随着系统应用系统数据将不断增大,若针对系统数据整体进行离线数据同步下载,将耗费大量的资源,且消耗大量的时间。故将系统数据按照一定的维度将系统数据进行细粒度拆分,该一定的维度可以根据实际需求进行限定。将系统数据进行细粒度拆分后,根据拆分的维度限定,生成不同维度对应的离线数据包,以实现离线数据同步下载。针对系统数据进行离线数据包的生成,可以设置数据量的限制条件,若当前系统数据为达到限制条件对应的数据量,则不生成离线数据包,以缓解系统压力。将系统数据进行一定维度的拆分为将不同维度的数据并分别定义不同的维度属性。例如,将系统数据按照项目进行拆分,针对不同项目定义不同的项目属性,例如使用不同的项目ID,通过项目进行拆分时,该项目属性即为维度属性。消息队列是指消息队列中间件,消息队列中间件是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋等问题。实现高性能、高可用、可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。本实施例中,利用消息队列使用并发的方式对数据进行快速处理。定时脚本是指预先设置的按照维度表进行对应维度属性等数据相关信息定时获取的脚本。维度表为预先设置的针对数据依据维度拆分后,各维度数据处理顺序的表。具体地,确定定时脚本,通过定时脚本循环取出系统中的维度属性,并将获取到的维度属性加入到消息队列中。
步骤S200,通过消息队列获取所述维度属性对应的目标数据,依据所述目标数据生成离线数据包,并将所述离线数据包对应的数据包信息存入离线列表中;
本实施例中,需要说明的是,在进行系统数据细粒度拆分后,得到不同维度属性对应的数据,通过针对不同维度的数据分别进行离线数据包的生成。确定单个维度下所对应的数据,将该数据进行打包,生成离线数据包。数据包信息是指离线数据包的相关信息,可区分不同的离线数据包。例如,该离线数据包生成的时间戳、类型、版本号、下载地址等信息。离线列表是用于存放所有离线数据包对应的数据包信息的列表。通过与离线数据包相关的标识信息,可查询该离线列表以获取该离线数据包对应的相关信息。即通过标识信息可以关联到对应的离线数据包,该标识信息可以是维度属性、版本号、时间戳等离线数据包的相关信息。目标数据是指系统数据进行拆分后,与当前维度属性匹配的数据。具体地,在消息队列中,根据维度属性获取对应的目标数据,将该维度属性对应的目标数据进行转换打包生成离线数据包。确定该离线数据包对应的数据包信息,将该数据包信息存入预先设置的离线列表中。
步骤S300,获取用户下载请求,确定所述离线列表中与所述用户下载请求匹配的目标数据包信息,返回所述目标数据包信息对应的离线数据包。
本实施例中,需要说明的是,离线数据包生成后将会存放在预设的存储服务器中,例如,OSS服务器(Object Storage Service,对象存储)中;包含离线数据包相关信息的离线列表存放在应用服务器中。用户需要下载相关离线数据包资源时,需要发送用户下载请求,以获取到相关的离线数据包资源。其中,用户下载请求中包括需要下载的离线数据包的相关信息,例如,维度属性、版本号,时间戳。通过用户下载请求中携带的离线数据包相关信息确定对应的离线数据包返回给用户。具体地,获取用户下载请求,解析获取用户下载请求中的标识信息,利用该标识信息遍历应用服务器中的离线列表,确定离线列表中是否存在与该标识信息匹配的数据包信息,若离线列表中存在与该标识信息匹配的数据包信息,则将该数据包信息作为目标数据包信息返回给用户,用户根据该目标数据包信息向OSS服务器请求离线数据包资源。
本发明实施例中,通过定时脚本获取维度属性,并将该维度属性加入到消息队列中,以利用消息队列多线程并发的方式快速地生成每个维度对应的离线数据包,通过消息队列获取维度属性对应的数据,依据数据生成离线数据包,并将该离线数据包对应的数据包信息存入离线列表中,利用离线列表记录离线数据包相关信息,预先将数据打包成离线数据包,在快速同步数据的同时,缓解服务器负担,且利用离线列表方便用户查询并定位需要的离线数据包,提升操作便捷性;从而在获取用户下载请求后,确定离线列表中与用户下载请求匹配的目标数据包信息,返回所述目标数据包信息对应的离线数据包,提升离线数据包生成效率,降低下载耗时,满足离线数据下载的多面性需求。
进一步地,基于本发明离线数据下载方法第一实施例,提出本发明离线数据下载方法第二实施例,所述步骤S200,通过消息队列获取所述维度属性对应的目标数据,依据所述目标数据生成离线数据包,并将所述离线数据包对应的数据包信息存入离线列表中的步骤,包括:
步骤a,获取版本发布信息;
步骤b,通过消息队列依据所述版本发布信息获取所述维度属性对应的数据,并将所述数据的数据格式转化为预设文件格式;
步骤c,将数据格式转化为预设文件格式的数据压缩,生成离线数据包,并将所述离线数据包对应的数据包信息存入离线列表中。
本实施例中,需要说明的是,相同的维度下,也存在有不同的数据版本,不同的数据版本对用户设备的适配性并不一致,用户在进行离线数据包下载时需要获取到可适配用户设备的离线数据包,在生成离线数据包时,会根据打包之前的数据对应的版本信息进行离线数据包的版本号标识,以区分不同的数据版本。版本发布信息是指系统数据整体进行新版本发布的相关信息,离线数据包的打包会在系统数据进行新版本发布时触发。预设文件格式是指预先设定的对数据进行格式转换的格式,例如,json格式;该预设文件格式并不做限制,可根据实际需求进行适应性更改。通过不同的维度属性对新版本发布的数据进行分开打包,生成不同维度属性对应的离线数据包。本实施例中,在对数据进行压缩时,将数据压缩为ZIP离线包,可以理解的是,在另一实施例中,还可以是其他的压缩格式。
具体地,检测版本发布信息,在获取到版本发布信息后,消费消息队列,根据消息队列中的维度属性获取该版本发布信息对应的数据,将该维度属性对应的数据进行格式转换,生成符合预设文件格式的数据,将该格式转换后的数据进行压缩,从而生成离线数据包,并同时获取该离线数据包对应的数据包信息,将该数据包信息存入离线列表中。
通过确定版本发布信息,进行离线数据包的生成,确保生成的离线数据包对应的数据为同一版本下的数据,且对离线数据包进行版本区分,避免离线数据包不兼容用户设备,造成下载数据报错等问题出现,提升离线数据包的实用性。
进一步地,生成离线数据包的步骤包括:
步骤d,确定所述版本发布信息对应的版本时间戳;
步骤e,获取所述版本时间戳之前的历史数据中与所述维度属性对应的全量数据,依据所述全量数据生成全量数据包;
步骤f,获取所述版本时间戳之前的预设时间范围内所述维度属性对应的初始增量数据,依据所述初始增量数据生成初始增量数据包,将所述全量数据包和所述初始增量数据包作为离线数据包。
本实施例中,需要说明的是,版本时间戳是指版本发布信息对应的系统数据新版本发布完成后的时间。历史数据是指版本时间之前的所有时间范围内对应的数据。全量数据是指当前维度属性对应的历史数据中进行版本发布的全部数据,依据该全量数据生成的数据包为全量数据包;全量数据包可用于针对未曾下过版本相关数据的新用户,通过全量数据包的下载可获取对应版本的全部数据。初始增量数据是指版本时间戳之前的预设时间范围内对应的数据,该预设时间范围可根据实际需求进行调整,依据初始增量数据生成的离线数据包为初始增量数据包。初始增量数据包可用于用户进行数据连接,例如,预设时间范围为15天时,可用于用户在版本时间戳之前的15天下载过全量数据包,但该15的范围并未进行过更新,缺乏该15天的更新数据时,进行初始增量数据包的下载,可补充该15天的数据更新,从而将当前数据与15天前的数据连接起来。另一实施例中,进行全量数据包或者初始增量数据包的生成时,可根据定时设置的时间戳进行数据范围的确定,而并不限定为版本时间戳,可以是指版本时间戳之后,预设的进行数据离线包打包的时间点。
具体地,确定版本发布信息对应的版本时间戳,获取该版本时间戳之前的时间范围内的历史数据中与当前维度属性对应的所有的数据,即全量数据,将该全量数据进行离线数据包的打包,生成全量数据包;获取版本时间戳之前的预设时间范围内的数据,即初始增量数据,将该初始增量数据进行离线数据包打包,生成初始增量数据包。该全量数据包和初始增量数据包均为离线数据包。
通过生成全量数据包和初始增量数据包,可适应不同的用户需求,提升离线数据包的适配性和有效性。
进一步地,离线数据包还包括增量数据包,所述生成离线数据包的步骤包括:
步骤g,确定所述全量数据包对应的全量时间戳;
步骤h,获取当前时间戳,并获取所述全量时间戳与所述当前时间戳对应的时间区间内所述维度属性对应的增量数据;
步骤i,依据所述增量数据生成增量数据包。
本实施例中,需要说明的是,在全量数据包生成后,可能会针对系统中的特定模块或者特定功能进行数据升级,该数据升级可能并不影响其他模块或者其他功能,此时,并不需要进行大版本升级,即并不需要生成全量数据包,只需针对升级的部分生成增量数据包。全量时间戳是指全量数据包生成的时间。具体地,确定当前的时间戳,确定全量时间戳与当前时间戳构成的时间区间,获取该时间区间内维度属性对应的数据,作为增量数据,将该增量数据进行离线数据包打包,生成增量数据包。可以理解的是,增量数据的确定可以按照预设时间范围进行,例如,预设时间范围为24小时,若全量时间戳为1号0点,则在2号0点生成从1号0点到2号0点这24小时中的增量数据对应的增量数据包。增量数据包为当前时间到全量数据包生成时间之间的数据,在本实施例中,根据实验综合考虑,只维护最新的增量数据包,例如,全量时间戳为1号,2号会生成1到2号之间的第一增量数据包,3号会生成1到3号之间的第二增量数据包,若今天为3号,则删除第一增量数据包,保留最新的第二增量数据包。另一实施例中,可保留所有生成的增量数据包。在进行离线数据包生成时,若增量数据包根据预设时间范围进行,则在预设时间范围外的最近时间不进行离线数据包的打包,用户直接在线进行数据下载,例如,预设时间范围为24小时,在2号0点生成从1号0点到2号0点这24小时中的增量数据对应的增量数据包,当前时间为2号15点,则2号0点到15点的数据由用户在线下载,不生成离线数据包。
通过增量数据生成增量数据包,可是下载过全量数据包的用户在部分更新后通过增量数据包进行数据的更新,减少数据的重复下载,节约下载时间,且针对增量数据进行打包,缓解系统压力,节省系统资源。
进一步地,将所述离线数据包对应的数据包信息存入离线列表中的步骤包括:
步骤j,依据版本发布信息,生成所述离线数据包的版本号;
步骤k,确定所述离线数据包的下载地址和生成所述离线数据包对应的离线时间戳;
步骤l,确定所述离线数据包对应的离线维度属性,将所述版本号、所述下载地址、所述离线时间戳以及所述离线维度属性作为数据包信息记录至离线包日志,并将所述离线包日志存储至离线列表中。
本实施例中,需要说明的是,离线数据包的版本号是指该离线数据包适用的系统数据版本,该离线数据包的版本号与系统数据版本进行关联。离线数据包的下载地址是获取该离线数据包资源的地址,在进行离线数据包存储时,离线数据包的下载地址记录在应用服务器的离线列表中,离线数据包的数据包资源存储在OSS服务器中。通过在应用服务器中获取到下载地址后,去OSS服务器中进行离线数据包的下载。离线时间戳是指离线数据包生成的时间;离线维度属性是指该离线数据包对应的维度属性。离线包日志用于记录离线数据包的相关信息,包括下载地址、版本号、离线时间戳以及对应的维度属性。每个离线数据包均生成一条离线包日志,该离线包日志记录在离线列表中。
具体的,确定版本发布信息,将依据该版本发布信息对应的版本数据生成的离线数据包的版本号与该版本发布信息对应的版本进行关联,得到离线数据包的版本号;确定该离线数据包生成的离线时间戳,并获取该离线时间戳对应的下载地址以及该离线数据包对应的离线维度属性,将该版本号、下载地址、离线时间戳以及离线维度属性作为数据包信息记录至离线包日志,并将该离线包日志存储至应用服务器中的离线列表中。
通过离线包日志记录离线数据包的相关信息存储至离线列表中,关联离线数据包资源,为用户提供离线数据包查询依据,提升数据下载效率。
进一步地,获取用户下载请求,确定所述离线列表中与所述用户下载请求匹配的目标数据包信息,返回所述目标数据包信息对应的离线数据包的步骤包括:
步骤m,获取用户下载请求,并确定所述用户下载请求中的请求版本信息、请求时间戳信息以及请求预设维度信息;
步骤n,确定所述离线列表中是否存在与所述请求版本信息、请求时间戳信息以及请求预设维度信息匹配的目标离线包日志;
步骤o,若存在所述目标离线包日志,则返回所述目标离线包日志对应的目标下载地址;
步骤p,获取目标下载地址生成的资源请求,并根据所述资源请求返回离线数据包。
本实施例中,需要说明的是,用户下载请求中携带的请求版本信息、请求时间戳信息以及请求预设维度信息是用于对应离线日志中的版本号、离线时间戳以及离线维度属性的信息,通过用户下载请求携带的信息确定对应的离线包日志,以获取该确定的离线包日志中的离线数据包下载地址。其中,老用户,即已经下载过全量数据的用户,用户下载请求中需要携带时间戳信息,以定位用户当前获取过的全量数据之后的时间范围内的数据。新用户由于没有下载过历史数据,故需全量下载,即需要下载全部时间范围的数据,故并不需要携带时间戳信息。
具体地,获取用户下载请求,并解析获取该用户下载请求中的请求版本信息、请求时间戳信息以及请求预设维度信息,依据该请求版本信息、请求时间戳信息以及请求预设维度信息遍历离线列表中的数据包日志,判断该离线列表中是否存在与该请求版本信息、请求时间戳信息以及请求预设维度信息匹配的数据包日志,作为目标离线包日志,返回该目标离线包日志中的下载地址,作为目标下载地址;获取用户依据该目标下载地址向OSS服务器发起的资源请求,返回该资源请求中目标下载地址对应的离线数据包。
参考图3,以项目维度为例进行说明,循环获取业务对象,查询业务对象分页数据,将数据处理并转换,保存到文件中,进而生成离线包,上传到OSS服务器,其中每个业务对象的所有分页数据保存到文件中,每个业务对象对应一个或者多个文件,每个文件有一万条记录,每个项目维度生成一个离线包。用户通过APP客户端请求离线包信息,并请求用户特性数据,APP Server应用服务器判断是否存在离线包,若存在离线包,则返回离线包信息,用户APP客户端根据离线包信息向OSS Server请求离线包资源,在获取离线数据包后,解压离线包,并获取特性数据后,将数据导入。
通过用户下载请求返回离线数据包,确保离线数据包满足用户需求,贴合用户意图,提升离线数据包的适用性。
进一步地,通过定时脚本获取维度属性的步骤之前,还包括:
步骤q,确定数据信息,将所述数据信息与预设维度规则进行匹配;
步骤r,确定与所述预设维度规则匹配的数据信息对应的数据,并按照预设维度规则定义所述数据的维度属性;
步骤s,检测是否存在不匹配所述预设维度规则的零散数据信息,若存在所述零散数据信息,则将各所述零散数据信息对应的数据定义为同一个维度属性。
本实施例中,需要说明的是,数据信息是指系统数据的相关信息,如数据属性,数据类型,数据类别等。在进行离线数据包打包之前将对数据进行细粒度拆分,进行细粒度拆分时根据预设维度规则进行拆分,预设维度规则根据经验进行设定的数据细粒度拆分规则,将系统数据按照不同的维度进行拆分,给不同维度下的数据分别定义维度属性。但由于系统数据存在多样性,可能存在一定的零散数据不满足预设维度规则,本实施例中,针对不满足预设维度规则的零散数据统一定义为同一个维度属性。将该零散数据打包为一个离线数据包。在一实施例中,若在零散数据较为庞大时,可重新定义预设维度规则,或者针对零散数据单独定义拆分规则,按照该单独定义的拆分规则对零散数据进行分开打包。
具体地,确定数据信息,判断数据信息中是否与预设维度规则匹配的数据信息,若存在与预设维度规则匹配的数据信息,则将该数据信息按照预设维度规则进行拆分,并分别为拆分后的数据定义维度属性,检测是否存在与预设维度规则不匹配的零散数据信息,当检测到与预设维度规则不匹配的零散数据信息,则将所有的零散数据信息统一定义为同一个维度属性。
将数据按照预设维度规则进行拆分,方便数据管理,并确定存在零散数据信息时,单独定义一个维度属性,避免数据遗漏,确保数据完整性。
进一步地,返回所述目标数据包信息对应的离线数据包的步骤之后,还包括:
获取用户特性数据请求,根据用户特性数据请求返回用户特性数据。
本实施例中,需要说明的是,用户特性数据是指包含有用户信息的数据,例如,用户权限信息。为提升离线数据包的普适性,在进行离线数据包打包时,只针对数据进行打包,并不包含与用户关联的用户特性数据,用户在获取到离线数据包后,发送用户特性数据请求,根据用户数据特性请求返回用户特性数据。
参考图4,在项目维度应用场景下,从数据库中获取APP版本清单以获取最新的发布记录,并从数据库中获取租户和项目,检测是否存在租户和项目,若不存在,则直接结束,若存在则生成离线包任务。在离线包生成时,读取队列iQueue中的数据,包括请求参数:db_version、tenant_code、prej_id;判断当前数据是否符合项目属性包定义的拆分规则,若是,则将拆分的数据定义项目属性,项目中存在多个业务对象对应的数据表,获取项目属性对应的每个业务对象时间范围内的分页数据,进行数据格式的转换,转换为json格式后,保存到文件,并循环下一个表;若当前数据不符合项目属性包定义的拆分规则,则将不符合拆分规则的数据统一定义为一个项目属性,获取项目属性对应的每个业务对象时间范围内的分页数据,进行数据格式的转换,转换为json格式后,保存到文件,得到json文件,并循环下一个表;将全部json文件压缩成ZIP离线包,通过IFie组件上传ZIP离线包,保存离线包记录斌记载离线包日志信息到数据库中。
参考图5,用户通过APP客户端发送请求,该请求中携带有新用户下载信息版本号:db_version,或者老用户下载信息版本号:db_version、时间戳:timestamp,根据该请求中的版本号信息获取对应的离线包,确定是否存在该离线包,获取离线包信息,下载该离线包并进行解压缩,获取用户特性信息,件解压缩后的数据以及用户特性信息导入数据库。
此外,参考图6,本发明还提出一种离线数据下载装置,所述装置包括:
数据划分模块2001,用于通过定时脚本获取维度属性;
数据打包模块2002,用于通过消息队列获取所述维度属性对应的目标数据,依据所述目标数据生成离线数据包,并将所述离线数据包对应的数据包信息存入离线列表中;
数据下载模块2003,用于获取用户下载请求,确定所述离线列表中与所述用户下载请求匹配的目标数据包信息,返回所述目标数据包信息对应的离线数据包。
可选地,所述数据划分模块2001,还用于:
确定数据信息,将所述数据信息与预设维度规则进行匹配;
确定与所述预设维度规则匹配的数据信息对应的数据,并按照预设维度规则定义所述数据的维度属性;
检测是否存在不匹配所述预设维度规则的零散数据信息,若存在所述零散数据信息,则将各所述零散数据信息对应的数据定义为同一个维度属性。
可选地,所述数据打包模块2002,还用于:
获取版本发布信息;
通过消息队列依据所述版本发布信息获取所述维度属性对应的数据,并将所述数据的数据格式转化为预设文件格式;
将数据格式转化为预设文件格式的数据压缩,生成离线数据包。
可选地,所述数据打包模块2002,还用于:
确定所述版本发布信息对应的版本时间戳;
获取所述版本时间戳之前的历史数据中与所述维度属性对应的全量数据,依据所述全量数据生成全量数据包;
获取所述版本时间戳之前的预设时间范围内所述维度属性对应的初始增量数据,依据所述初始增量数据生成初始增量数据包,将所述全量数据包和所述初始增量数据包作为离线数据包。
可选地,所述数据打包模块2002,还用于:
确定所述全量数据包对应的全量时间戳;
获取当前时间戳,并获取所述全量时间戳与所述当前时间戳对应的时间区间内所述维度属性对应的增量数据;
依据所述增量数据生成增量数据包。
可选地,所述数据打包模块2002,还用于:
依据版本发布信息,生成所述离线数据包的版本号;
确定所述离线数据包的下载地址和生成所述离线数据包对应的离线时间戳;
确定所述离线数据包对应的离线维度属性,将所述版本号、所述下载地址、所述离线时间戳以及所述离线维度属性作为数据包信息记录至离线包日志,并将所述离线包日志存储至离线列表中。
可选地,所述数据下载模块2003,还用于:获取用户下载请求,并确定所述用户下载请求中的请求版本信息、请求时间戳信息以及请求预设维度信息;
确定所述离线列表中是否存在与所述请求版本信息、请求时间戳信息以及请求预设维度信息匹配的目标离线包日志;
若存在所述目标离线包日志,则返回所述目标离线包日志对应的目标下载地址;
获取目标下载地址生成的资源请求,并根据所述资源请求返回离线数据包。
本发明离线数据下载装置的具体实施方式与上述离线数据下载方法各实施例基本相同,在此不再赘述。
此外,本发明还提出一种离线数据下载设备,其特征在于,所述离线数据下载设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的离线数据下载程序,其中:所述离线数据下载程序被所述处理器执行时实现本发明各个实施例所述的离线数据下载方法。
此外,本发明还提出一种计算机可读存储介质,其上存储离线数据下载程序。所述计算机可读存储介质可以是图1的终端中的存储器20,也可以是如ROM(Read-Only Memory,只读存储器)/RAM(Random Access Memory,随机存取存储器)、磁碟、光盘中的至少一种,所述计算机可读存储介质包括若干指令用以使得一台具有处理器的离线数据下载设备执行本发明各个实施例所述的离线数据下载方法。
可以理解的是,在本说明书的描述中,参考术语“一实施例”、“另一实施例”、“其他实施例”、或“第一实施例~第N实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个计算机可读存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种离线数据下载方法,其特征在于,所述离线数据下载方法包括以下步骤:
通过定时脚本获取维度属性;
通过消息队列获取所述维度属性对应的目标数据,依据所述目标数据生成离线数据包,并将所述离线数据包对应的数据包信息存入离线列表中;
获取用户下载请求,确定所述离线列表中与所述用户下载请求匹配的目标数据包信息,返回所述目标数据包信息对应的离线数据包;
所述返回所述目标数据包信息对应的离线数据包的步骤之后,还包括:
获取用户特性数据请求,根据用户特性数据请求返回用户特性数据;
将所述离线数据包进行解压缩,并将所述离线数据包解压缩后对应的数据与所述用户特性数据导入数据库。
2.如权利要求1所述的离线数据下载方法,其特征在于,所述通过消息队列获取所述维度属性对应的目标数据,依据所述目标数据生成离线数据包的步骤包括:
获取版本发布信息;
通过消息队列依据所述版本发布信息获取所述维度属性对应的数据,并将所述数据的数据格式转化为预设文件格式;
将数据格式转化为预设文件格式的数据压缩,生成离线数据包。
3.如权利要求2所述的离线数据下载方法,其特征在于,所述生成离线数据包的步骤包括:
确定所述版本发布信息对应的版本时间戳;
获取所述版本时间戳之前的历史数据中与所述维度属性对应的全量数据,依据所述全量数据生成全量数据包;
获取所述版本时间戳之前的预设时间范围内所述维度属性对应的初始增量数据,依据所述初始增量数据生成初始增量数据包,将所述全量数据包和所述初始增量数据包作为离线数据包。
4.如权利要求3所述的离线数据下载方法,其特征在于,所述离线数据包还包括增量数据包,所述生成离线数据包的步骤包括:
确定所述全量数据包对应的全量时间戳;
获取当前时间戳,并获取所述全量时间戳与所述当前时间戳对应的时间区间内所述维度属性对应的增量数据;
依据所述增量数据生成增量数据包。
5.如权利要求1所述的离线数据下载方法,其特征在于,所述将所述离线数据包对应的数据包信息存入离线列表中的步骤包括:
依据版本发布信息,生成所述离线数据包的版本号;
确定所述离线数据包的下载地址和生成所述离线数据包对应的离线时间戳;
确定所述离线数据包对应的离线维度属性,将所述版本号、所述下载地址、所述离线时间戳以及所述离线维度属性作为数据包信息记录至离线包日志,并将所述离线包日志存储至离线列表中。
6.如权利要求5所述的离线数据下载方法,其特征在于,所述获取用户下载请求,确定所述离线列表中与所述用户下载请求匹配的目标数据包信息,返回所述目标数据包信息对应的离线数据包的步骤包括:
获取用户下载请求,并确定所述用户下载请求中的请求版本信息、请求时间戳信息以及请求预设维度信息;
确定所述离线列表中是否存在与所述请求版本信息、请求时间戳信息以及请求预设维度信息匹配的目标离线包日志;
若存在所述目标离线包日志,则返回所述目标离线包日志对应的目标下载地址;
获取目标下载地址生成的资源请求,并根据所述资源请求返回离线数据包。
7.如权利要求1所述的离线数据下载方法,其特征在于,所述通过定时脚本获取维度属性的步骤之前,还包括:
确定数据信息,将所述数据信息与预设维度规则进行匹配;
确定与所述预设维度规则匹配的数据信息对应的数据,并按照预设维度规则定义所述数据的维度属性;
检测是否存在不匹配所述预设维度规则的零散数据信息,若存在所述零散数据信息,则将各所述零散数据信息对应的数据定义为同一个维度属性。
8.一种离线数据下载装置,其特征在于,所述离线数据下载装置包括:
数据划分模块,用于通过定时脚本获取维度属性;
数据打包模块,用于通过消息队列获取所述维度属性对应的目标数据,依据所述目标数据生成离线数据包,并将所述离线数据包对应的数据包信息存入离线列表中;
数据下载模块,用于获取用户下载请求,确定所述离线列表中与所述用户下载请求匹配的目标数据包信息,返回所述目标数据包信息对应的离线数据包;
所述数据下载模块,还用于:
获取用户特性数据请求,根据用户特性数据请求返回用户特性数据;
将所述离线数据包进行解压缩,并将所述离线数据包解压缩后对应的数据与所述用户特性数据导入数据库。
9.一种离线数据下载设备,其特征在于,所述离线数据下载设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的离线数据下载程序,所述离线数据下载程序配置为实现如权利要求1至7中任一项所述的离线数据下载方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有离线数据下载程序,所述离线数据下载程序被处理器执行时实现如权利要求1至7中任一项所述的离线数据下载方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111536981.8A CN113923263B (zh) | 2021-12-16 | 2021-12-16 | 离线数据下载方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111536981.8A CN113923263B (zh) | 2021-12-16 | 2021-12-16 | 离线数据下载方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113923263A CN113923263A (zh) | 2022-01-11 |
CN113923263B true CN113923263B (zh) | 2022-04-08 |
Family
ID=79248962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111536981.8A Active CN113923263B (zh) | 2021-12-16 | 2021-12-16 | 离线数据下载方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113923263B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114697316B (zh) * | 2022-04-24 | 2024-03-12 | 平安科技(深圳)有限公司 | 数据的批量下载方法、装置、设备及计算机可读介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107547589A (zh) * | 2016-06-27 | 2018-01-05 | 腾讯科技(深圳)有限公司 | 一种数据采集处理方法以及装置 |
CN108345632A (zh) * | 2017-12-29 | 2018-07-31 | 中国平安财产保险股份有限公司 | H5页面的调用方法、装置、设备及计算机可读存储介质 |
CN110647706A (zh) * | 2019-08-29 | 2020-01-03 | 北京金堤科技有限公司 | 网页访问请求的处理方法、装置以及设备、存储介质 |
CN113268261A (zh) * | 2021-07-16 | 2021-08-17 | 北京乐学帮网络技术有限公司 | 一种页面内容展示方法、装置以及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111125118B (zh) * | 2019-12-27 | 2021-05-07 | 同盾(广州)科技有限公司 | 关联数据查询方法、装置、设备及介质 |
-
2021
- 2021-12-16 CN CN202111536981.8A patent/CN113923263B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107547589A (zh) * | 2016-06-27 | 2018-01-05 | 腾讯科技(深圳)有限公司 | 一种数据采集处理方法以及装置 |
CN108345632A (zh) * | 2017-12-29 | 2018-07-31 | 中国平安财产保险股份有限公司 | H5页面的调用方法、装置、设备及计算机可读存储介质 |
CN110647706A (zh) * | 2019-08-29 | 2020-01-03 | 北京金堤科技有限公司 | 网页访问请求的处理方法、装置以及设备、存储介质 |
CN113268261A (zh) * | 2021-07-16 | 2021-08-17 | 北京乐学帮网络技术有限公司 | 一种页面内容展示方法、装置以及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113923263A (zh) | 2022-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108664331B (zh) | 分布式数据处理方法及装置、电子设备、存储介质 | |
CN109800207B (zh) | 日志解析方法、装置、设备及计算机可读存储介质 | |
CN111367925A (zh) | 数据动态实时更新方法、装置及存储介质 | |
CN110633284B (zh) | 数据库中表的变更方法及装置 | |
CN109725912B (zh) | 应用程序配置方法、装置、终端、服务器及可读存储介质 | |
CN113923263B (zh) | 离线数据下载方法、装置、设备及计算机可读存储介质 | |
CN111241051A (zh) | 批量数据处理方法、装置、终端设备及存储介质 | |
US20130036161A1 (en) | Data card and method and system for customizing its application service | |
CN107577506B (zh) | 一种数据预加载的方法和系统 | |
CN111064610B (zh) | 日志文件的订阅方法、终端设备及存储介质 | |
CN107688456B (zh) | 文件生成方法、设备以及计算机可读存储介质 | |
CN110597508B (zh) | 界面动态配置方法、装置及存储介质 | |
CN115509582A (zh) | 应用程序发布方法、装置、设备及存储介质 | |
CN112100134A (zh) | 导出大文件的方法及装置、存储介质及计算机设备 | |
CN109739539B (zh) | 跨环境的应用发布方法、装置、设备及存储介质 | |
US11847219B2 (en) | Determining a state of a network | |
CN113407511A (zh) | 日志聚合方法、设备及计算机程序产品 | |
CN113077260A (zh) | 基于区块链的数据访问方法、装置及电子设备 | |
CN114296835B (zh) | 应用程序的启动方法和装置 | |
CN110865973A (zh) | 一种数据处理方法及设备和相关装置 | |
CN114090083B (zh) | 一种可视化组件配置方法、装置、设备及存储介质 | |
CN113220645B (zh) | 一种Linux兼容Android的文件显示方法及装置 | |
CN116820663A (zh) | 镜像构建方法、设备、存储介质及装置 | |
CN110007937B (zh) | 一种系统更新的方法和系统 | |
US11327802B2 (en) | System and method for exporting logical object metadata |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |