一种数据入库的方法、系统、设备及计算机可读存储介质转让专利

申请号 : CN201910797401.7

文献号 : CN110502520B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴江浩李鲲鹏刘云锋秦国君

申请人 : 云汉芯城(上海)互联网科技股份有限公司

摘要 :

本申请公开了一种数据入库的方法,包括:利用PHP工具将JSON文本存储至服务器上;利用Go工具对服务器上的JSON文本进行解析,并将解析得到的每个字段存储至Mysql数据库的中间表中;当接收到字段映射命令时,根据字段映射命令确定映射关系;利用Go工具将中间表中的每个字段按照映射关系存储至Mysql数据库的产品表中。本申请利用Go工具处理数据的解析入库,极大的提高了数据入库环节的效率;同时,将服务器和数据库作为介质,实现了同一环境下Go工具和PHP工具的协同工作,不影响原系统的其他环节。本申请同时还提供了一种数据入库的系统、设备及计算机可读存储介质,具有上述有益效果。

权利要求 :

1.一种数据入库的方法,其特征在于,包括:接收输入的待存储数据;

利用PHP工具将所述待存储数据转化为JSON文本,并将所述JSON文本存储至服务器上;

利用Go工具对所述服务器上的所述JSON文本进行解析,并将解析得到的每个字段存储至Mysql数据库的中间表中;

当接收到字段映射命令时,根据所述字段映射命令确定映射关系;

利用所述Go工具将所述中间表中的每个所述字段按照所述映射关系存储至所述Mysql数据库的产品表中;

其中,所述利用PHP工具将所述待存储数据转化为JSON文本,包括:接收输入的正则表达式;

利用所述PHP工具通过所述正则表达式提取所述待存储数据,得到必要数据;

利用所述PHP工具将所述必要数据转化为所述JSON文本。

2.根据权利要求1所述的方法,其特征在于,在将解析得到的每个字段存储至Mysql数据库的中间表中之后,还包括:利用所述PHP工具读取所述中间表,并将所述中间表中的每个所述字段显示在操作界面上。

3.根据权利要求1所述的方法,其特征在于,在利用所述Go工具将所述中间表中的每个所述字段按照所述映射关系存储至所述Mysql数据库的产品表中之后,还包括:输出数据存储完成的提示信息至预设位置。

4.一种数据入库的系统,其特征在于,包括:接收模块,用于接收输入的待存储数据;

转化模块,用于利用PHP工具将所述待存储数据转化为JSON文本,并将所述JSON文本存储至服务器上;

解析模块,用于利用Go工具对所述服务器上的所述JSON文本进行解析,并将解析得到的每个字段存储至Mysql数据库的中间表中;

确定模块,用于当接收到字段映射命令时,根据所述字段映射命令确定映射关系;

存储模块,用于利用所述Go工具将所述中间表中的每个所述字段按照所述映射关系存储至所述Mysql数据库的产品表中;

其中,所述转化模块包括:

接收子模块,用于接收输入的正则表达式;

提取子模块,用于利用所述PHP工具通过所述正则表达式提取所述待存储数据,得到必要数据;

转化子模块,用于利用所述PHP工具将所述必要数据转化为所述JSON文本。

5.根据权利要求4所述的系统,其特征在于,还包括:显示模块,用于利用所述PHP工具读取所述中间表,并将所述中间表中的每个所述字段显示在操作界面上。

6.根据权利要求4所述的系统,其特征在于,还包括:输出模块,用于输出数据存储完成的提示信息至预设位置。

7.一种数据入库设备,其特征在于,包括:存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如权利要求1至3任一项所述数据入库的方法的步骤。

8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述数据入库的方法的步骤。

说明书 :

一种数据入库的方法、系统、设备及计算机可读存储介质

技术领域

[0001] 本申请涉及网站数据存储领域,特别涉及一种数据入库的方法、系统、设备及计算机可读存储介质。

背景技术

[0002] PHP是一种通用开源脚本语言,入门快,开发成本低,执行效率高,部署简单,主要适用于网站开发领域。Mysql是一个关系型数据库管理系统,是网站应用方面最好的关系数据库管理系统应用软件;Mysql体积小,速度快,且开放源码,因此很多网站通常采用PHP+Mysql组成开发环境。
[0003] 网站通常需要将海量文本数据存储到数据库表中,现有技术中的方案是使用PHP编程获取数据,用正则表达式匹配提取数据转化成JSON文本,再通过PHP解析JSON文本存储到数据库中,待数据处理好映射关系以后,通过Mysql的存储过程存储入数据库表。
[0004] 然而,由于PHP对多线程的支持不太好,且Mysql存储过程也不支持多线程,使用PHP和存储过程将海量文本存储到数据库表中效率很低;同时,如果出现中断(如报错等)情况需要重新存储数据,过程复杂。
[0005] 因此,如何实现非结构化的大数据快速入库是本领域技术人员目前需要解决的技术问题。

发明内容

[0006] 本申请的目的是提供一种数据入库的方法、系统、设备及计算机可读存储介质,用于实现非结构化的大数据快速入库。
[0007] 为解决上述技术问题,本申请提供一种数据入库的方法,该方法包括:
[0008] 接收输入的待存储数据;
[0009] 利用PHP工具将所述待存储数据转化为JSON文本,并将所述JSON文本存储至服务器上;
[0010] 利用Go工具对所述服务器上的所述JSON文本进行解析,并将解析得到的每个字段存储至Mysql数据库的中间表中;
[0011] 当接收到字段映射命令时,根据所述字段映射命令确定映射关系;
[0012] 利用所述Go工具将所述中间表中的每个所述字段按照所述映射关系存储至所述Mysql数据库的产品表中。
[0013] 可选的,所述利用PHP工具将所述待存储数据转化为JSON文本,包括:
[0014] 接收输入的正则表达式;
[0015] 利用所述PHP工具通过所述正则表达式提取所述待存储数据,得到必要数据;
[0016] 利用所述PHP工具将所述必要数据转化为所述JSON文本。
[0017] 可选的,在将解析得到的每个字段存储至Mysql数据库的中间表中之后,还包括:
[0018] 利用所述PHP工具读取所述中间表,并将所述中间表中的每个所述字段显示在操作界面上。
[0019] 可选的,在利用所述Go工具将所述中间表中的每个所述字段按照所述映射关系存储至所述Mysql数据库的产品表中之后,还包括:
[0020] 输出数据存储完成的提示信息至预设位置。
[0021] 本申请还提供一种数据入库的系统,该系统包括:
[0022] 接收模块,用于接收输入的待存储数据;
[0023] 转化模块,用于利用PHP工具将所述待存储数据转化为JSON文本,并将所述JSON文本存储至服务器上;
[0024] 解析模块,用于利用Go工具对所述服务器上的所述JSON文本进行解析,并将解析得到的每个字段存储至Mysql数据库的中间表中;
[0025] 确定模块,用于当接收到字段映射命令时,根据所述字段映射命令确定映射关系;
[0026] 存储模块,用于利用所述Go工具将所述中间表中的每个所述字段按照所述映射关系存储至所述Mysql数据库的产品表中。
[0027] 可选的,所述转化模块包括:
[0028] 接收子模块,用于接收输入的正则表达式;
[0029] 提取子模块,用于利用所述PHP工具通过所述正则表达式提取所述待存储数据,得到必要数据;
[0030] 转化子模块,用于利用所述PHP工具将所述必要数据转化为所述JSON文本。
[0031] 可选的,还包括:
[0032] 显示模块,用于利用所述PHP工具读取所述中间表,并将所述中间表中的每个所述字段显示在操作界面上。
[0033] 可选的,还包括:
[0034] 输出模块,用于输出数据存储完成的提示信息至预设位置。
[0035] 本申请还提供一种数据入库设备,该数据入库设备包括:
[0036] 存储器,用于存储计算机程序;
[0037] 处理器,用于执行所述计算机程序时实现如上述任一项所述数据入库的方法的步骤。
[0038] 本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述数据入库的方法的步骤。
[0039] 本申请所提供数据入库的方法,包括:接收输入的待存储数据;利用PHP工具将待存储数据转化为JSON文本,并将JSON文本存储至服务器上;利用Go工具对服务器上的JSON文本进行解析,并将解析得到的每个字段存储至Mysql数据库的中间表中;当接收到字段映射命令时,根据字段映射命令确定映射关系;利用Go工具将中间表中的每个字段按照映射关系存储至Mysql数据库的产品表中。
[0040] 本申请所提供的技术方案,通过利用Go工具对服务器上的JSON文本进行解析,并将解析得到的每个字段存储至Mysql数据库的中间表中,利用高度支持并发性、适合处理大数据的Go工具处理数据的解析入库,极大的提高了数据入库环节的效率;同时,将服务器和数据库作为介质,实现了同一环境下Go工具和PHP工具的协同工作,不影响原系统的其他环节,最后利用Go工具将中间表中的每个字段按照映射关系存储至Mysql数据库的产品表中,进一步提高了数据入库的效率。本申请同时还提供了一种数据入库的系统、设备及计算机可读存储介质,具有上述有益效果,在此不再赘述。

附图说明

[0041] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0042] 图1为本申请实施例所提供的一种数据入库的方法的流程图;
[0043] 图2为图1所提供的一种数据入库的方法中S102的一种实际表现方式的流程图;
[0044] 图3为本申请实施例提供的一种数据入库过程的关系示意图;
[0045] 图4为本申请实施例所提供的一种数据入库的系统的结构图;
[0046] 图5为本申请实施例所提供的另一种数据入库的系统的结构图;
[0047] 图6为本申请实施例所提供的一种数据入库设备的结构图。

具体实施方式

[0048] 本申请的核心是提供一种数据入库的方法、系统、设备及计算机可读存储介质,用于实现非结构化的大数据快速入库。
[0049] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0050] 请参考图1,图1为本申请实施例所提供的一种数据入库的方法的流程图。
[0051] 其具体包括如下步骤:
[0052] S101:接收输入的待存储数据;
[0053] 网站通常需要将海量文本数据存储到数据库表中,而PHP对多线程的支持不太好,且Mysql存储过程也不支持多线程,使用PHP和存储过程将海量文本存储到数据库表中效率很低,本申请提供了一种数据入库的方法,用于解决上述问题。
[0054] S102:利用PHP工具将待存储数据转化为JSON文本,并将JSON文本存储至服务器上;
[0055] JSON(JavaScript Object Notation,JS对象简谱)是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据,这里提到的利用PHP工具将待存储数据转化为JSON文本的目的在于,便于机器解析待存储数据,并有效的提升网络传输效率;
[0056] 这里提到的PHP工具是利用PHP语言编写的工具,PHP是一种通用开源脚本语言,入门快,开发成本低,执行效率高,部署简单,适用于网站开发领域,利用PHP工具能够快速将待存储数据转化为JSON文本,并将JSON文本存储至服务器上;
[0057] 可选的,这里提到的利用PHP工具将待存储数据转化为JSON文本,其具体也可以为如图2所示的步骤,下面结合图2进行说明。
[0058] 请参考图2,图2为图1所提供的一种数据入库的方法中S102的一种实际表现方式的流程图。
[0059] 其具体包括以下步骤:
[0060] S201:接收输入的正则表达式;
[0061] S202:利用PHP工具通过正则表达式提取待存储数据,得到必要数据;
[0062] S203:利用PHP工具将必要数据转化为JSON文本。
[0063] 正则表达式是对字符串(包括普通字符(例如,a到z之间的字母)和特殊字符(称为"元字符"))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑,正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串。
[0064] 基于接收到的待存储数据中可能存在噪声数据或其他非必要数据,本申请利用正则表达式对待存储数据进行提取得到必要数据,最后利用PHP工具将必要数据转化为JSON文本,提高了数据的精度,进一步提高了数据入库的效率。
[0065] S103:利用Go工具对服务器上的JSON文本进行解析,并将解析得到的每个字段存储至Mysql数据库的中间表中;
[0066] 这里提到的Go工具是依据Go语言开发的工具,Go语言是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言,Go语言非常高效,并高度支持并发性,本申请利用Go工具能够实现对服务器上JSON文本的快速解析,并将解析得到的每个字段存储至Mysql数据库的中间表中,极大的提高了数据入库的速度;
[0067] 可选的,在将解析得到的每个字段存储至Mysql数据库的中间表中之后,还可以利用PHP工具读取中间表,并将中间表中的每个字段显示在操作界面上,以使用户能够在操作界面上对显示的字段进行映射关联关系的整理。
[0068] S104:当接收到字段映射命令时,根据字段映射命令确定映射关系;
[0069] S105:利用Go工具将中间表中的每个字段按照映射关系存储至Mysql数据库的产品表中。
[0070] 请参考图3,图3为本申请实施例提供的一种数据入库过程的关系示意图;
[0071] 如图3所示,在PHP工具获取外部数据并转化为Json后,将Json以文本文件的形式存储到服务器上,然后使用Go工具读取服务器上的Json文本并解析后,利用Go工具强大的并发能力把解析得到的各字段数据存储到Mysql数据库的中间表中;再利用PHP工具读取Mysql的中间表中的字段显示在操作界面上,以使用户能够在操作界面上整理映射关联关系,最后使用Go工具根据映射关系处理各个字段并存储到Mysql的产品表中。
[0072] 可选的,在利用Go工具将中间表中的每个字段按照映射关系存储至Mysql数据库的产品表中之后,还可以输出数据存储完成的提示信息至预设位置,以使用户能够及时对入库数据做相应的处理。
[0073] 基于上述技术方案,本申请所提供的一种数据入库的方法,通过利用Go工具对服务器上的JSON文本进行解析,并将解析得到的每个字段存储至Mysql数据库的中间表中,利用高度支持并发性、适合处理大数据的Go工具处理数据的解析入库,极大的提高了数据入库环节的效率;同时,将服务器和数据库作为介质,实现了同一环境下Go工具和PHP工具的协同工作,不影响原系统的其他环节,最后利用Go工具将中间表中的每个字段按照映射关系存储至Mysql数据库的产品表中,进一步提高了数据入库的效率。
[0074] 请参考图4,图4为本申请实施例所提供的一种数据入库的系统的结构图。
[0075] 该系统可以包括:
[0076] 接收模块100,用于接收输入的待存储数据;
[0077] 转化模块200,用于利用PHP工具将待存储数据转化为JSON文本,并将JSON文本存储至服务器上;
[0078] 解析模块300,用于利用Go工具对服务器上的JSON文本进行解析,并将解析得到的每个字段存储至Mysql数据库的中间表中;
[0079] 确定模块400,用于当接收到字段映射命令时,根据字段映射命令确定映射关系;
[0080] 存储模块500,用于利用Go工具将中间表中的每个字段按照映射关系存储至Mysql数据库的产品表中。
[0081] 请参考图5,图5为本申请实施例所提供的另一种数据入库的系统的结构图。
[0082] 该转化模块200可以包括:
[0083] 接收子模块,用于接收输入的正则表达式;
[0084] 提取子模块,用于利用PHP工具通过正则表达式提取待存储数据,得到必要数据;
[0085] 转化子模块,用于利用PHP工具将必要数据转化为JSON文本。
[0086] 该系统还可以包括:
[0087] 显示模块,用于利用PHP工具读取中间表,并将中间表中的每个字段显示在操作界面上。
[0088] 该系统还可以包括:
[0089] 输出模块,用于输出数据存储完成的提示信息至预设位置。
[0090] 以上系统中的各个组成部分可实际应用于以下的实施例中:
[0091] 接收模块接收输入的待存储数据;转化模块利用PHP工具将待存储数据转化为JSON文本,并将JSON文本存储至服务器上;解析模块利用Go工具对服务器上的JSON文本进行解析,并将解析得到的每个字段存储至Mysql数据库的中间表中;显示模块利用PHP工具读取中间表,并将中间表中的每个字段显示在操作界面上;当接收到字段映射命令时,确定模块根据字段映射命令确定映射关系;存储模块利用Go工具将中间表中的每个字段按照映射关系存储至Mysql数据库的产品表中;输出模块输出数据存储完成的提示信息至预设位置。
[0092] 请参考图6,图6为本申请实施例所提供的一种数据入库设备的结构图。
[0093] 该数据入库设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)622(例如,一个或一个以上处理器)和存储器632,一个或一个以上存储应用程序642或数据644的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器632和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对装置中的一系列指令操作。更进一步地,中央处理器622可以设置为与存储介质630通信,在数据入库设备600上执行存储介质630中的一系列指令操作。
[0094] 数据入库设备600还可以包括一个或一个以上电源626,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口658,和/或,一个或一个以上操作系统641,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
[0095] 上述图1至图3所描述的数据入库的方法中的步骤由数据入库设备基于该图6所示的结构实现。
[0096] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0097] 在本申请所提供的几个实施例中,应该理解到,所揭露的装置、设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0098] 作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0099] 另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0100] 集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,功能调用装置,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0101] 以上对本申请所提供的一种数据入库的方法、系统、设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
[0102] 还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。