发明内容
有鉴于此,本申请实施例提供了一种数据存储方法、装置、电子设备及存储介质,可以提高数据存储效率和准确率、降低人工成本。
本申请实施例的第一方面提供了一种数据存储方法,包括:
对系统接收的数据进行存储预处理,获取待存储数据;
根据系统中按照客户信息创建的匹配关键字数组,在阻塞队列中按照所述匹配关键字数组对所述待存储数据进行客户信息匹配处理,为所述待存储数据关联客户信息;
通过阻塞队列为所述待存储数据配置对应的数据获取路径,根据所述待存储数据关联的客户信息将配置有数据获取路径的待存储数据存储于系统中。
结合第一方面,在第一方面的第一种可能实现方式中,所述对系统接收的数据进行存储预处理,获取待存储数据的步骤中,所述存储预处理包括包括数据校验处理、嵌套数据解析处理、数据压缩处理中的一项或多项。
结合第一方面的第一种可能实现方式,在第一方面的第二种可能实现方式中,所述数据校验处理包括:
根据所述系统接收的数据遍历预设缓存中记录的客户上传数据,确定所述预设缓存中是否记录有与所述系统接收的数据一致的客户上传数据;
若所述预设缓存中记录有与所述系统接收的数据一致的客户上传数据,则判定所述系统接收的数据验证通过。
结合第一方面的第一种可能实现方式,在第一方面的第三种可能实现方式中,所述嵌套数据解析处理包括:
判断所述系统接收的数据是否为单文件格式数据;
若所述系统接收的数据为非单文件格式数据,则对所述系统接收的数据进行嵌套数据解析处理,将所述系统接收的数据解析为单文件格式数据。
结合第一方面的第一种可能实现方式,在第一方面的第四种可能实现方式中,所述数据压缩处理包括:
识别系统接收的数据中每个单文件格式数据所对应的客户信息,根据所述客户信息对所述单文件格式数据进行分类处理;
按照分类结果对所述单文件类型数据进行分片上传和压缩处理,以将所述系统接收的数据生成为数据压缩包。
结合第一方面,在第一方面的第五种可能实现方式中,所述通过阻塞队列为所述待存储数据配置对应的数据获取路径,根据所述待存储数据关联的客户信息将配置有数据获取路径的待存储数据存储于系统中的步骤,包括:
判断所述待存储数据是否为压缩文件夹,若是则对所述待存储数据进行解压获取路径元素,并将所述路径元素递归加入所述阻塞队列中,其中,所述路径元素表征为文件夹名称或文件名称;
若递归加入到所述阻塞队列中的路径元素为文件名称,则停止对所述待存储数据进行解压,并根据递归加入到所述阻塞队列中的路径元素配置得到与所述待存储数据对应的数据获取路径。
结合第一方面,在第一方面的第六种可能实现方式中,所述数据存储方法还包括:
基于系统预设的开放式接口接收多组数据,采用多线程并行的方式对系统接收的多组数据进行并行处理。
本申请实施例的第二方面提供了一种数据存储装置,所述数据存储装置包括:
处理模块,用于对系统接收的数据进行存储预处理,获取待存储数据;
匹配模块,用于根据系统中按照客户信息创建的匹配关键字数组,在阻塞队列中按照所述匹配关键字数组对所述待存储数据进行客户信息匹配处理,为所述待存储数据关联客户信息;
存储模块,用于通过阻塞队列为所述待存储数据配置对应的数据获取路径,根据所述待存储数据关联的客户信息将配置有数据获取路径的待存储数据存储于系统中。
本申请实施例的第三方面提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在电子设备上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面提供的数据存储方法的各步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现第一方面提供的数据存储方法的各步骤。
本申请实施例提供的一种数据存储方法、装置、电子设备及存储介质,具有以下有益效果:
本申请通过对系统接收的数据进行存储预处理,获取待存储数据;根据系统中按照客户信息创建的匹配关键字数组,在阻塞队列中按照匹配关键字数组对待存储数据进行客户信息匹配处理,为待存储数据关联客户信息;通过阻塞队列为待存储数据配置对应的数据获取路径,根据待存储数据关联的客户信息将配置有数据获取路径的待存储数据存储于系统中。上述方法实现了系统在进行数据存储时可以自动解析、自动匹配、自动存储一体化,无需用人工匹配的方式即可实现将数据与客户信息进行准确关联并且只需在系统中输入关键字即可快速获得客户资料,工作效率高,人工成本低。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
请参阅图1,图1为本申请第一实施例提供的一种数据存储方法的实现流程图。详述如下:
步骤S11:对系统接收的数据进行存储预处理,获取待存储数据。
本实施例中,数据存储方法应用在基于业务系统进行海量影像文件数据存储的场景。系统接收的数据具体表征为客户的数据资料,通常是由相关联的上游业务系统打包发送来的影像文件数据或者是其他业务场景打包发送来的影像文件数据,可以是一个文件数据,也可以是包含有多个文件数据组成的压缩包或文件夹,这些文件数据可以是PDF格式的文件数据或JPG格式的文件数据。为了实现业务系统与业务系统之间或业务系统中各业务场景之间进行数据查询和数据调用功能,本申请基于客户维度将系统接收到的数据与客户信息关联进行存储。在本实施例中,针对业务系统客户数量多、客户的数据资料结构复杂(比如文件格式多样和多层级嵌套等)、数据量大等特点,可以通过在业务系统进行数据存储之前采用OBS(Object Storage Service,对象存储服务)预先对系统接收的数据进行存储预处理,获取待存储数据。在本实施例中,待存储数据中只包含有单文件格式数据,所述单文件格式数据为无法通过解压或解析进行分解的单个文件。存储预处理包括数据校验处理、嵌套数据解析处理、数据压缩处理中的一项或多项。其中:数据校验处理用于校验系统接收的数据的准确性;嵌套数据解析处理用于对系统接收的数据中的嵌套数据逐层解析成单文件格式数据;数据压缩处理用于对经过解析得到的所有单文件格式数据进行压缩,生成数据压缩包。
步骤S12:根据系统中按照客户信息创建的匹配关键字数组,在阻塞队列中按照所述匹配关键字数组对所述待存储数据进行客户信息匹配处理,为所述待存储数据关联客户信息。
本实施例中,基于系统的OBS对待存储数据进行自动匹配操作关联客户信息。在本实施例中,经过存储预处理生成的待存储数据以压缩包形式存在,在进行自动匹配操作时,先获取压缩包的名称信息,对该名称信息进进行抽离,然后再对压缩包进行解压缩处理,通过阻塞线程开启解压缩,将NAS(Network Attached Storage,网络附属存储)的压缩包解压到OBS中。使得压缩包的名称信息仍处于压缩状态,而压缩包则解析成多个文件数据。对于这些文件数据,根据系统中按照客户信息创建的匹配关键字数组,匹配关键字数组中包括客户名字、客户手机号、文件名称等信息,通过阻塞队列,按照匹配关键字数组中的信息对这些文件数据进行遍历匹配,实现将所述待存储数据与系统中的客户信息进行自动匹配。在本实施例中,按照匹配关键字数组中的信息采用阻塞队列进行递归调用的方式逐一将这些文件数据与业务系统中的客户信息进行遍历匹配,例如,根据客户名称遍历业务系统,在业务系统中根据客户名称为所述文件数据匹配到对应的客户,若匹配不到,则按照客户手机号码遍历业务系统,在业务系统中根据客户手机号码为所述文件数据匹配到对应的客户,若匹配不到,则按照文件名称遍历业务系统,在业务系统中根据文件名称为所述文件数据匹配到对应的客户,若匹配不到,还可以按照一些其他关键字遍历业务系统或者手动匹配等方式,在业务系统中为所述文件数据匹配到对应的客户。由此将待存储数据与系统中的客户信息进行关联,实现自动匹配,而且,通过自动匹配可以避免数据存储过程中由于人工进行数据匹配带来的过程繁琐、耗时耗力等问题,提高了工作效率,降低了人工成本。
步骤S13:通过阻塞队列为所述待存储数据配置对应的数据获取路径,根据所述待存储数据关联的客户信息将配置有数据获取路径的待存储数据存储于系统中。
本实施例中,系统接收的数据通过与业务系统中的客户进行关联存储于系统中,而且存储于所述系统中的待存储数据,通过阻塞队列配置有对应的数据获取路径。在本实施例中,阻塞队列可以使用BatchInsertFilePaths类通过继承Callable<T>,回调call方法来为待存储数据配置对应的数据获取路径。其中,BatchInsertFilePaths类用于批量插入数据路径,通过将各待存储数据对应配置的数据获取路径逐一插入到用于描述待存储数据进入系统的临时文件夹(AMC_IMAGE_IMPORT_TEMP表)中,形成查询或调用客户相关数据资料的业务处理逻辑。由此,用户只需在系统中输入对应匹配的关键字,即可查询或调用得到对应客户的相关数据资料。
以上可以看出,本实施例提供的数据存储方法通过存储预处理、客户信息关联匹配以及数据获取路径配置等操作使得系统在进行数据存储时实现自动解析、自动匹配、自动存储一体化,无需用人工匹配的方式即可实现将数据与客户信息进行准确关联,提高了工作效率,降低了人工成本。而且,通过关键字即可查询或调用得到对应客户的相关数据资料,即便是结构相对复杂的嵌套数据,也可以快速查询或调用得到对应客户的相关数据资料,调用简单。
本申请的一些实施例中,请参阅图2,图2为本申请实施例提供的数据存储方法中进行数据校验处理的一种方法流程示意图。详细如下:
步骤S21:根据所述系统接收的数据遍历预设缓存中记录的客户上传数据,确定所述预设缓存中是否记录有与所述系统接收的数据一致的客户上传数据;
步骤S22:若所述预设缓存中记录有与所述系统接收的数据一致的客户上传数据,则判定所述系统接收的数据验证通过。
本实施例中,通过业务系统的业务页面,可以指示客户在业务页面上进行数据资料的上传操作,以此收集客户的资料数据,该收集到的客户的数据资料即客户上传数据。这些数据资料会保存在一个预先设定好的reids缓存中。系统接收的数据可以是来自于其他业务系统的数据,也可以是来自于同一业务系统的其他业务场景的数据,为了保证数据的准确性,在进行数据存储时,会根据所述系统接收的数据遍历预设缓存中记录的客户上传数据,确定所述预设缓存中是否记录有与所述系统接收的数据一致的客户上传数据,以对系统接收的数据进行验证,确认该系统接收的数据的准确性。
本申请的一些实施例中,请参阅图3,图3为本申请实施例提供的数据存储方法中进行嵌套数据解析处理的一种方法流程示意图。详细如下:
步骤S31:判断所述系统接收的数据是否为单文件格式数据;
步骤S32:若所述系统接收的数据为非单文件格式数据,则对所述系统接收的数据进行嵌套数据解析处理,将所述系统接收的数据解析为单文件格式数据。
本实施例中,嵌套数据解析处理具体对表征为嵌套数据的进行逐层解析处理,将嵌套数据分解为对多个不可再分解的单文件格式数据。在本实施例中,若数据以文件夹或压缩包形式存在,且文件夹或压缩包中又含有文件夹、压缩包以及单文件中的两种或两种以上数据类型的子数据,那么,就定义该数据为嵌套数据。在本实施例中,单文件格式数据为数据保存的最小单位,不可分解。除此之外,数据保存时还包括但不限于文件夹、压缩包格等可分解的文件格式类型,以这些格式类型保存的数据均为嵌套数据。因此,在本实施例中,在获得系统接收的数据后,首先判断系统接收的数据是否为以最小单位保存的单文件格式的数据,若不是单文件格式数据,那么说明该系统接收的数据为嵌套数据,此时,可以对该系统接收的数据进行嵌套数据解析处理,将该系统接收的数据解析为单文件格式数据,使得该系统接收的数据所有的数据最终都解析成单文件格式数据为止。举例说明,例如一个第一文件夹嵌套有一个第二文件夹、一个压缩包以及多个单文件,可以先对第一文件夹进行第一层解析,得到嵌套在该第一文件夹中的第二文件夹、压缩包以及单文件,然后再对该从第一文件夹中解析得到的第二文件夹、压缩包等进行第二层解析,得到该第二文件夹中的单文件以及压缩包里的单文件,以将系统接收的数据中的所有数据全以单文件格式存在。可以理解的是,若有第三层嵌套、第四层嵌套...第n层嵌套,则同样进行逐层解析,直至所有数据均以单文件格式存在为止。
本申请的一些实施例中,请参阅图4,图4为本申请实施例提供的数据存储方法中进行数据压缩处理的一种方法流程示意图。详细如下:
步骤S41:识别所述系统接收的数据中每个单文件格式数据所对应的客户信息,根据所述客户信息对所述单文件格式数据进行分类处理;
步骤S42:按照分类结果对所述单文件类型数据进行分片上传和压缩处理,以将所述系统接收的数据生成为数据压缩包。
本实施例中,当系统接收的数据经过嵌套数据解析处理后可以获得多个单文件格式数据。单文件格式数据为客户的数据资料,即每个单文件格式数据都有一个与其对应的客户。在本实施例中,通过识别每个单文件格式数据所对应的客户信息,然后根据客户信息对这些单文件格式数据进行分类处理,得到将属于同一个客户的单文件格式数据归类到一起形成分组的分类结果。进而按照分类结果,对分类后的单文件格式数据进行分片上传至OBS中。其中,文件分片上传引入了块和片,一个数据有多个块组成,而每个块则由多个片组成,在本实施例中,每个单文件为一个片,按分片上传数据至OBS中,进而再通过分类处理的分类结果将属于同一分组的多个片组合形成块,进而将组合形成的块进行压缩处理,生成数据压缩包,将该数据压缩包作为待存储数据,便于后续数据关联存储。
本申请的一些实施例中,请参阅图5,图5为本申请实施例提供的数据存储方法中为待存储数据匹配对应的数据获取路径时的一种方法流程示意图。详细如下:
步骤S51:判断所述待存储数据是否为压缩文件夹,若是则对所述待存储数据进行解压获取路径元素,并将所述路径元素递归加入所述阻塞队列中,其中,所述路径元素表征为文件夹名称或文件名称;
步骤S52:若递归加入到所述阻塞队列中的路径元素为文件名称,则停止对所述待存储数据进行解压,并根据递归加入到所述阻塞队列中的路径元素配置得到与所述待存储数据对应的数据获取路径。
本实施例中,待存储数据对应的数据获取路径可以由多个路径元素组成,其中,路径元素可以是待存储数据中各个文件夹的文件名名称,也可以是待存储数据中的各个单文件的文件名称。具体通过判断所述待存储数据是否为压缩文件夹,若是则对所述待存储数据进行解压获取路径元素,并将所述路径元素递归加入阻塞队列中。进而,在所述阻塞队列中,若递归加入阻塞队列中的路径元素为文件名称,则无法再对待存储数据进行再解压,此时停止对所述待存储数据进行解压操作,将阻塞队列中的所有路径元素按照进入阻塞队列的先后进行串连,即可配置得到与所述待存储数据对应的数据获取路径。可以理解的是,若所述待存储数据为单文件数据,那么直接获取该单文件数据的文件名称作为所述待存储数据对应配置的数据获取路径。在阻塞队列中,针对于单文件的获取路径插入,还可以对其插入数量进行限制,用于停止对待存储数据进行解压。而针对于文件夹的获取路径插入,则不限制其插入数量。
本申请的一些实施例中,按照所述数据获取路径将所述待存储数据存储于所述系统过程中,在数据存储过程中,系统一体化解析、匹配数据的过程具体包括:判断系统接收的数据是否属于支持解压的数据类型,例如压缩包类或是文件夹类型,若系统接收的数据属于支持解压的数据类型,则提取该系统接收的数据当前的名称进行落库处理,否则失败处理;对于名称落库的数据,通过系统解析功能进行异步解压并开启系统匹配功能进行自动匹配数据获取路径。然后,通过阻塞队列获取数据对应的解压处理结果;进而根据解压处理结果将解压成功的数据按照自动匹配的数据获取路径进行文件存储并展示处理,否则失败处理。并且,通过检测文件存储处理是否出错,若出错则对数据进行失败处理。在本实施例中,基于检测结果,若文件存储处理出错,则清除失败处理步骤前数据存储过程产生的所有过程数据,包括系统接收的数据以及匹配到的路径数据等,可以有效减轻系统资源占用的压力,提高处理效率和处理能力。
本申请的一些实施例中,系统可以采用多线程并行的方式进行数据处理,具体地,在系统中设置多个开放式接口,通过这些开放式接口可以让系统可以同时接收多组数据,在获得多组数据后,系统通过采用多线程并行的方式对该多组数据进行并行处理,实现系统的数据处理流程在集成数据解析和数据匹配功能的同时,可以通过相互作用并行处理数据,减轻系统资源占用压力,提高系统处理效率和处理能力。
请参阅图6,图6为本申请实施例提供的一种数据存储装置的结构框图。本实施例中该装置包括的各单元用于执行上述方法实施例中的各步骤。具体请参阅上述方法实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。如图6所示,数据存储装置包括:处理模块61、匹配模块62以及存储模块63。其中:所述处理模块61用于对系统接收的数据进行存储预处理,获取待存储数据。所述匹配模块62用于根据系统中按照客户信息创建的匹配关键字数组,在阻塞队列中按照所述匹配关键字数组对所述待存储数据进行客户信息匹配处理,为所述待存储数据关联客户信息。所述存储模块63用于通过阻塞队列为所述待存储数据配置对应的数据获取路径,根据所述待存储数据关联的客户信息将配置有数据获取路径的待存储数据存储于系统中。
应当理解的是,上述数据存储装置,与上述的数据存储方法一一对应,此处不再赘述。
请参阅图7,图7为本申请实施例提供的一种电子设备的结构框图。如图7所示,该实施例的电子设备7包括:处理器71、存储器72以及存储在所述存储器72中并可在所述处理器71上运行的计算机程序73,例如数据存储方法的程序。处理器71执行所述计算机程序73时实现上述各个数据存储方法各实施例中的步骤。或者,所述处理器71执行所述计算机程序73时实现上述数据存储装置对应的实施例中各模块的功能。具体请参阅实施例中的相关描述,此处不赘述。
示例性的,所述计算机程序73可以被分割成一个或多个模块(单元),所述一个或者多个模块被存储在所述存储器72中,并由所述处理器71执行,以完成本申请。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序73在所述电子设备7中的执行过程。例如,所述计算机程序73可以被分割成获取模块、处理模块和执行模块,各模块具体功能如上所述。
所述转台设备可包括,但不仅限于,处理器71、存储器72。本领域技术人员可以理解,图7仅仅是电子设备7的示例,并不构成对电子设备7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述转台设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器71可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器72可以是所述电子设备7的内部存储单元,例如电子设备7的硬盘或内存。所述存储器72也可以是所述电子设备7的外部存储设备,例如所述电子设备7上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器72还可以既包括所述电子设备7的内部存储单元也包括外部存储设备。所述存储器72用于存储所述计算机程序以及所述转台设备所需的其他程序和数据。所述存储器72还可以用于暂时地存储已经输出或者将要输出的数据。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。在本实施例中,所述计算机可读存储介质可以是非易失性,也可以是易失性。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。