CN107357885B - 数据写入方法及装置、电子设备、计算机存储介质 - Google Patents

数据写入方法及装置、电子设备、计算机存储介质 Download PDF

Info

Publication number
CN107357885B
CN107357885B CN201710555586.1A CN201710555586A CN107357885B CN 107357885 B CN107357885 B CN 107357885B CN 201710555586 A CN201710555586 A CN 201710555586A CN 107357885 B CN107357885 B CN 107357885B
Authority
CN
China
Prior art keywords
text information
target
data table
database
data writing
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
Application number
CN201710555586.1A
Other languages
English (en)
Other versions
CN107357885A (zh
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.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co 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 Beijing Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201710555586.1A priority Critical patent/CN107357885B/zh
Publication of CN107357885A publication Critical patent/CN107357885A/zh
Application granted granted Critical
Publication of CN107357885B publication Critical patent/CN107357885B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Abstract

本发明公开了一种数据写入方法及装置、电子设备、计算机存储介质,其方法包括:接收数据写入请求;对数据写入请求进行解析,得到数据写入请求对应的目标数据库和目标数据表,将数据写入请求转化为文本信息写入在指定目录下存储的落地文件中;将落地文件中的文本信息导入到目标数据库的目标数据表中,以完成数据写入。本发明不受数据库本身单线程语法解析后知道执行计划才能存储的限制,大大提高数据库数据写入的速度,消释数据库写入时的瓶颈。

Description

数据写入方法及装置、电子设备、计算机存储介质
技术领域
本发明涉及数据库领域,具体涉及一种数据写入方法及装置、电子设备、计算机存储介质。
背景技术
MPP数据库(Massively Parallel Processor,大规模并行处理)支持50PB(1PB=1024TB)级海量数据的存储和处理,可以利用其强大的并行处理能力为业务提供如高并发查询等并发处理的支持。
但由于MPP数据库如Greenplum数据库,其在数据写入时,先由其主机Master对数据的写入请求进行解析,并制定相应的执行计划后,才将解析后的写入请求存储到对应的各个节点Segments中。由于Greenplum数据库的主机仅支持对写入请求进行单线程的语法解析,并且只有在语法解析后,才能分析其具体的存放位置,使得Greenplum数据库在数据写入时存在极大的瓶颈,无法为时效性要求高的业务场景提供服务。进一步,由于Greenplum数据库的语法解析过程会需要消耗极高的cpu占有率,使得其处理速度、效率都受到影响。因此,需要一种可以实现快速数据写入的方法。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据写入方法及装置、电子设备、计算机存储介质。
根据本发明的一个方面,提供了一种数据写入方法,其包括:
接收数据写入请求;
对数据写入请求进行解析,得到数据写入请求对应的目标数据库和目标数据表,将数据写入请求转化为文本信息写入在指定目录下存储的落地文件中;
将落地文件中的文本信息导入到目标数据库的目标数据表中,以完成数据写入。
根据本发明的另一方面,提供了一种数据写入装置,其包括:
接收模块,适于接收数据写入请求;
解析模块,适于对数据写入请求进行解析,得到数据写入请求对应的目标数据库和目标数据表,将数据写入请求转化为文本信息写入在指定目录下存储的落地文件中;
导入模块,适于将落地文件中的文本信息导入到目标数据库的目标数据表中,以完成数据写入。
根据本发明的又一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述数据写入方法对应的操作。
根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述数据写入方法对应的操作。
根据本发明提供的数据写入方法及装置、电子设备、计算机存储介质,在接收数据写入请求后,对数据写入请求进行解析,得到数据写入请求对应的目标数据库和目标数据表,将数据写入请求转化为文本信息写入在指定目录下存储的落地文件中。将落地文件中的文本信息导入到目标数据库的目标数据表中,以完成数据写入。不受数据库本身单线程语法解析后知道执行计划才能存储的限制,大大提高数据库数据写入的速度,消释数据库写入时的瓶颈。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的数据写入方法的流程图;
图2示出了根据本发明另一个实施例的数据写入方法的流程图;
图3示出了根据本发明一个实施例的数据写入装置的功能框图;
图4示出了根据本发明另一个实施例的数据写入装置的功能框图;
图5示出了根据本发明一个实施例的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明的以下各实施例中以MPP数据库中的Greenplum数据库为例进行说明,但本发明不仅限于Greenplum数据库。
图1示出了根据本发明一个实施例的数据写入方法的流程图。如图1所示,数据写入方法具体包括如下步骤:
步骤S101,接收数据写入请求。
步骤S102,对数据写入请求进行解析,得到数据写入请求对应的目标数据库和目标数据表,将数据写入请求转化为文本信息写入在指定目录下存储的落地文件中。
接收数据写入请求,数据写入请求中携带有一条或多条的sql语句。
对数据写入请求进行解析,即对sql写入语句进行解析。sql写入语句中包含了数据写入的目标数据库和目标数据表,如insert into DB1.table1 values(……)。解析可以得到数据写入请求对应的目标数据库DB1和目标数据表table1。同时,解析后将数据写入请求转化为文本信息。文本信息包括了sql写入语句中要向目标数据库、目标数据表中写入的数据。并将文本信息写入在指定目录下存储的落地文件中。落地文件可以有一个,将所有的文本信息均存储在一个落地文件中;或者落地文件有多个,根据不同的目标数据库、目标数据表、文本信息包含的内容建立不同的落地文件,将文本信息写入对应的落地文件中。
指定目录的结构包括了多级目录,如第一级的主目录、第二级的目标数据库目录、第三级的目标数据表目录。主目录可以根据实施情况设置主目录的名称和位置。第二级目录的名称根据目标数据库命名。第三级目录的名称根据目标数据表命名。指定目录也可以只包括主目录和目标数据库目录,或者指定目录只包括主目录和目标数据表目录。根据实施时的具体情况进行设置,此处不再限定。
步骤S103,将落地文件中的文本信息导入到目标数据库的目标数据表中,以完成数据写入。
将落地文件中的文本信息通过导入的方式导入到其对应的目标数据库的目标数据表中,以完成该文本信息对应的数据的写入。
进一步,在将文本信息对应的数据写入后,可以将该文本信息从落地文件中删除或将其标记为已导入,避免对文本信息进行重复导入。
根据本发明提供的数据写入方法,在接收数据写入请求后,对数据写入请求进行解析,得到数据写入请求对应的目标数据库和目标数据表,将数据写入请求转化为文本信息写入在指定目录下存储的落地文件中。将落地文件中的文本信息导入到目标数据库的目标数据表中,以完成数据写入。不受数据库本身单线程语法解析后知道执行计划才能存储的限制,大大提高数据库数据写入的速度,消释数据库写入时的瓶颈。
图2示出了根据本发明另一个实施例的数据写入方法的流程图。如图2所示,数据写入方法具体包括如下步骤:
步骤S201,接收数据写入请求。
接收数据写入请求,数据写入请求中携带有一条或多条的sql语句。
步骤S202,建立多个第一线程。
步骤S203,利用多个第一线程并行对数据写入请求进行解析,按照写入文本规则将数据写入请求转化为文本信息写入在指定目录下存储的落地文件中。
建立多个第一线程,可以利用该多个第一线程并行的对数据写入请求进行解析。第一线程的个数根据实施情况进行设置。将解析得到的文本信息写入指定目录下存储的落地文件中。在解析时,可以从数据写入请求中得到目标数据库和目标数据表,还可以得到数据写入请求中需要写入目标数据表中的各个列名和列名数量。然后按照写入文本规则将数据写入请求转化为文本信息写入落地文件,得到的落地文件以行为单位记录文本信息。其中,各行文本信息具有相同的列数,该列数即解析得到的列名数量。如每行文本信息均为5列,表明对数据表的5个列进行数据写入。且每两行文本信息中包含了一行数据表中的列名,以及各列名对应的数值。文本信息可以如下所示:
name tel add IP age
zhangsan 138XXXXXXXX beijing 131.XX.XXX.X 28
在将文本信息写入到落地文件中时,若落地文件不存在,则新建一个落地文件;若落地文件已存在,根据解析得到的目标数据库、目标数据表及文本信息具体的列数将其写入对应的落地文件中,写入时可以接着落地文件原有文本信息的末尾继续写入。
可选地,在解析得到的文本信息的大小特别大时,为方便后续可以快速导入到目标数据库的目标数据表中,避免占用较大资源,以免造成阻塞等问题。可以在文本信息写入落地文件时,监控文本信息的大小。若文本信息的大小达到预设文本大小阈值时,对其进行切分,可以其写入多个落地文件中。预设文本大小阈值可以根据实施时的环境、设备状况、业务需求等信息进行设置。若解析得到的文本信息的大小没有达到预设文本大小阈值时,可以将文本信息直接写入落地文件中。
步骤S204,建立一个第二线程。
步骤S205,利用第二线程将落地文件中的文本信息导入到目标数据库的目标数据表中,以完成数据写入。
基于本实施例中数据库对数据的导入只能单线程执行,因此,只建立一个第二线程。若数据库支持多线程导入数据时,可以建立多个第二线程。
利用第二线程调用数据库的导入接口,同时,根据文本信息中携带的各行的列数信息,可以将落地文件中的文本信息对应的导入到目标数据库的目标数据表中,实现数据写入。
可选地,若对文本信息进行了切分,还可以在利用第二线程导入文本信息时,按照预设扫描时间间隔,对落地文件中的文本信息进行扫描。在扫描时,判断文本信息的大小是否达到预设文本大小阈值。若达到预设文本大小阈值,将该文本信息写入的落地文件导入到目标数据库的目标数据表中。或者,在文本信息切分时,触发第二线程对落地文件中的文本信息进行扫描。扫描时,对指定目录下的所有落地文件的文本信息进行扫描。将其中文本信息大小达到预设文本大小阈值的文本信息所在的落地文件均导入到其对应的目标数据库的目标数据表中,以完成数据写入。
可选地,若业务对于某些数据库的数据表的数据写入有时间限制时,可以预先设置时限名单。时限名单包括时限数据库、时限数据表及执行时限。时限数据库和时限数据表即对数据写入有时间限制的数据库和数据表。执行时限为限制该数据库的数据表对应的数据写入的最晚时间。不同数据库的数据表的执行时限可以不同,时限名单中包括了一条或多条数据库和数据表及其各自对应的执行时限。当解析得到目标数据库和目标数据表后,判断目标数据库和目标数据表是否存在预设的时限名单中。若存在预设的时限名单中,则开始监控计时,当计时时间至执行时限后,不论落地文件中文本信息的大小是否达到预设文本大小阈值,直接将文本信息导入到目标数据库的目标数据表中。
在利用第二线程将落地文件中的文本信息导入到目标数据库的目标数据表时,可以包括上述的一种或多少方法,根据实施情况具体设置,在此不做限定。
进一步,由于本实施例采用在接收数据写入请求后,先对数据写入请求进行解析转化为文本信息写入在指定目录下存储的落地文件后,再将文本信息导入的方式实现数据写入,整个过程从接收数据写入请求到实现数据写入会有一定的时间间隔。本发明的各个实施例主要用于对数据写入的时间限制要求不是实时的情况。若业务对于某些数据库的数据表的数据写入要求在接收数据写入请求后立刻就将数据写入时,则这些数据库的数据表不符合使用本实施例的数据写入方法。这种情况需要由其他方法实现在接收数据写入请求后立刻就将数据写入。因此,在接收到数据写入请求时,需要进行判断,是否执行后续操作。对于这些数据库的数据表,可以预先设置黑名单。黑名单包括黑名单数据库及黑名单数据表,在黑名单中的黑名单数据库及黑名单数据表即上述不符合使用本实施例的数据写入方法的数据库和数据表。判断时,根据解析得到目标数据库和目标数据表,判断其是否存在预设的导入黑名单中。若存在预设的导入黑名单中,返回导入错误报警。报警用于提醒用户,使用户可以对其由其他方法实现在接收数据写入请求后立刻就将数据写入。
根据本发明提供的数据写入方法,利用多个第一线程并行对数据写入请求进行解析,可以提高解析速度,消除数据库原来在解析数据写入请求时的瓶颈。转化为文本信息写入落地文件时,还监控文本信息大小,并对其进行切分,避免导入时文本信息过大造成导入阻塞、占用CPU资源过多甚至数据库宕机等情况。导入时第二线程按照预设扫描时间间隔进行扫描,避免第二线程时时占用数据库接口的问题。对于业务的特殊要求,如限时导入等,可以设置时限名单,保证了在执行时限内对其进行导入。对于要求实时导入的数据可以通过黑名单及时进行报警,避免了不及时导入发生的业务问题。
图3示出了根据本发明一个实施例的数据写入装置的功能框图。如图3所示,数据写入装置包括如下模块:
接收模块310,适于接收数据写入请求。
解析模块320,适于对数据写入请求进行解析,得到数据写入请求对应的目标数据库和目标数据表,将数据写入请求转化为文本信息写入在指定目录下存储的落地文件中。
接收模块310接收数据写入请求,数据写入请求中携带有一条或多条的sql语句。
解析模块320对数据写入请求进行解析,即对sql写入语句进行解析。sql写入语句中包含了数据写入的目标数据库和目标数据表,如insert into DB1.table1 values(……)。解析模块320解析可以得到数据写入请求对应的目标数据库DB1和目标数据表table1。同时,解析模块320解析后将数据写入请求转化为文本信息。文本信息包括了sql写入语句中要向目标数据库、目标数据表中写入的数据。解析模块320还将文本信息写入在指定目录下存储的落地文件中。落地文件可以有一个,解析模块320将所有的文本信息均存储在一个落地文件中;或者落地文件有多个,解析模块320根据不同的目标数据库、目标数据表、文本信息包含的内容建立不同的落地文件,将文本信息写入对应的落地文件中。
指定目录的结构包括了多级目录,如第一级的主目录、第二级的目标数据库目录、第三级的目标数据表目录。主目录可以根据实施情况设置主目录的名称和位置。第二级目录的名称根据目标数据库命名。第三级目录的名称根据目标数据表命名。指定目录也可以只包括主目录和目标数据库目录,或者指定目录只包括主目录和目标数据表目录。根据实施时的具体情况进行设置,此处不再限定。
导入模块330,适于将落地文件中的文本信息导入到目标数据库的目标数据表中,以完成数据写入。
导入模块330将落地文件中的文本信息通过导入的方式导入到其对应的目标数据库的目标数据表中,以完成该文本信息对应的数据的写入。
进一步,导入模块330在将文本信息对应的数据写入后,可以将该文本信息从落地文件中删除或将其标记为已导入,避免对文本信息进行重复导入。
根据本发明提供的数据写入装置,在接收数据写入请求后,对数据写入请求进行解析,得到数据写入请求对应的目标数据库和目标数据表,将数据写入请求转化为文本信息写入在指定目录下存储的落地文件中。将落地文件中的文本信息导入到目标数据库的目标数据表中,以完成数据写入。不受数据库本身单线程语法解析后知道执行计划才能存储的限制,大大提高数据库数据写入的速度,消释数据库写入时的瓶颈。
图4示出了根据本发明另一个实施例的数据写入装置的功能框图。如图4所示,与图3相比,数据写入装置还包括如下模块:
其中,解析模块320还包括第一线程模块321。第一线程模块321适于建立多个第一线程。
第一线程模块321建立多个第一线程,解析模块320可以利用该多个第一线程并行的对数据写入请求进行解析。第一线程的个数根据实施情况进行设置。解析模块320将解析得到的文本信息写入指定目录下存储的落地文件中。解析模块320在解析时,可以从数据写入请求中得到目标数据库和目标数据表,还可以得到数据写入请求中需要写入目标数据表中的各个列名和列名数量。然后解析模块320按照写入文本规则将数据写入请求转化为文本信息写入落地文件,得到的落地文件以行为单位记录文本信息。其中,各行文本信息具有相同的列数,该列数即解析模块320解析得到的列名数量。如每行文本信息均为5列,表明对数据表的5个列进行数据写入。且每两行文本信息中包含了一行数据表中的列名,以及各列名对应的数值。文本信息可以如下所示:
name tel add IP age
zhangsan 138XXXXXXXX beijing 131.XX.XXX.X 28
解析模块320在将文本信息写入到落地文件中时,若落地文件不存在,则新建一个落地文件;若落地文件已存在,解析模块320根据解析得到的目标数据库、目标数据表及文本信息具体的列数将其写入对应的落地文件中,写入时可以接着落地文件原有文本信息的末尾继续写入。
在解析得到的文本信息的大小特别大时,为方便后续可以快速导入到目标数据库的目标数据表中,避免占用较大资源,以免造成阻塞等问题。进一步,装置还包括:监控模块340。监控模块340适于监控文本信息的大小,若文本信息的大小达到预设文本大小阈值时对其进行切分。
监控模块340可以在文本信息写入落地文件时,监控文本信息的大小。若文本信息的大小达到预设文本大小阈值时,监控模块340对其进行切分,可以其写入多个落地文件中。预设文本大小阈值可以根据实施时的环境、设备状况、业务需求等信息进行设置。若解析得到的文本信息的大小没有达到预设文本大小阈值时,可以将文本信息直接写入落地文件中。
导入模块330还包括第二线程模块331。第二线程模块331适于建立一个第二线程。
基于本实施例中数据库对数据的导入只能单线程执行,因此,第二线程模块331只建立一个第二线程。若数据库支持多线程导入数据时,第二线程模块331可以建立多个第二线程。
导入模块330利用第二线程调用数据库的导入接口,同时,导入模块330根据文本信息中携带的各行的列数信息,可以将落地文件中的文本信息对应的导入到目标数据库的目标数据表中,实现数据写入。
导入模块330还包括扫描模块332。扫描模块332适于按照预设扫描时间间隔,利用第二线程对落地文件中的文本信息进行扫描,判断文本信息的大小是否达到预设文本大小阈值。
监控模块340对文本信息进行了切分,导入模块330在利用第二线程导入文本信息时,由扫描模块332按照预设扫描时间间隔,对落地文件中的文本信息进行扫描。扫描模块332在扫描时,判断文本信息的大小是否达到预设文本大小阈值。若扫描模块332判断其达到预设文本大小阈值,导入模块330将该文本信息写入的落地文件导入到目标数据库的目标数据表中。或者,监控模块340在文本信息切分时,触发第二线程对落地文件中的文本信息进行扫描。扫描模块332扫描时,对指定目录下的所有落地文件的文本信息进行扫描。导入模块330将其中文本信息大小达到预设文本大小阈值的文本信息所在的落地文件均导入到其对应的目标数据库的目标数据表中,以完成数据写入。
导入模块330还包括时限模块333。时限模块333适于判断目标数据库和目标数据表是否存在预设的时限名单中。
若业务对于某些数据库的数据表的数据写入有时间限制时,时限模块333可以预先设置时限名单。时限名单包括时限数据库、时限数据表及执行时限。时限数据库和时限数据表即对数据写入有时间限制的数据库和数据表。执行时限为限制该数据库的数据表对应的数据写入的最晚时间。不同数据库的数据表的执行时限可以不同,时限名单中包括了一条或多条数据库和数据表及其各自对应的执行时限。当解析模块320解析得到目标数据库和目标数据表后,时限模块333判断目标数据库和目标数据表是否存在预设的时限名单中。若存在预设的时限名单中,则导入模块330开始监控计时,当计时时间至执行时限后,不论落地文件中文本信息的大小是否达到预设文本大小阈值,导入模块330直接将文本信息导入到目标数据库的目标数据表中。
由于本实施例采用接收模块310接收数据写入请求后,解析模块320先对数据写入请求进行解析转化为文本信息写入在指定目录下存储的落地文件后,导入模块330再将文本信息导入的方式实现数据写入,整个过程从接收数据写入请求到实现数据写入会有一定的时间间隔。本发明的各个实施例主要用于对数据写入的时间限制要求不是实时的情况。若业务对于某些数据库的数据表的数据写入要求在接收数据写入请求后立刻就将数据写入时,则这些数据库的数据表不符合使用本实施例的数据写入方法。这种情况需要由其他方法实现在接收数据写入请求后立刻就将数据写入。因此,装置还包括黑名单报警模块350。黑名单报警模块350适于判断目标数据库和目标数据表是否存在预设的导入黑名单中。
接收模块310接收到数据写入请求后,黑名单报警模块350需要进行判断,是否执行后续操作。对于这些数据库的数据表,可以预先设置黑名单。黑名单包括黑名单数据库及黑名单数据表,在黑名单中的黑名单数据库及黑名单数据表即上述不符合使用本实施例的数据写入方法的数据库和数据表。黑名单报警模块350判断时,根据解析模块320解析得到目标数据库和目标数据表,判断其是否存在预设的导入黑名单中。若存在预设的导入黑名单中,黑名单报警模块350返回导入错误报警。报警用于提醒用户,使用户可以对其由其他方法实现在接收数据写入请求后立刻就将数据写入。
根据本发明提供的数据写入装置,利用多个第一线程并行对数据写入请求进行解析,可以提高解析速度,消除数据库原来在解析数据写入请求时的瓶颈。转化为文本信息写入落地文件时,还监控文本信息大小,并对其进行切分,避免导入时文本信息过大造成导入阻塞、占用CPU资源过多甚至数据库宕机等情况。导入时第二线程按照预设扫描时间间隔进行扫描,避免第二线程时时占用数据库接口的问题。对于业务的特殊要求,如限时导入等,可以设置时限名单,保证了在执行时限内对其进行导入。对于要求实时导入的数据可以通过黑名单及时进行报警,避免了不及时导入发生的业务问题。
本申请还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的数据写入方法。
图5示出了根据本发明一个实施例的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
如图5所示,该电子设备可以包括:处理器(processor)502、通信接口(Communications Interface)504、存储器(memory)506、以及通信总线508。
其中:
处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。
通信接口504,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器502,用于执行程序510,具体可以执行上述数据写入方法实施例中的相关步骤。
具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
处理器502可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器506,用于存放程序510。存储器506可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序510具体可以用于使得处理器502执行以下操作:
在一种可选的实施方式中,程序510用于使得处理器502接收数据写入请求;对数据写入请求进行解析,得到数据写入请求对应的目标数据库和目标数据表,将数据写入请求转化为文本信息写入在指定目录下存储的落地文件中;将落地文件中的文本信息导入到目标数据库的目标数据表中,以完成数据写入。
在一种可选的实施方式中,程序510用于使得处理器502建立多个第一线程;利用多个第一线程并行对数据写入请求进行解析,按照写入文本规则将数据写入请求转化为文本信息写入在指定目录下存储的落地文件中。
在一种可选的实施方式中,写入文本规则包括:落地文件以行为单位记录文本信息,其中,各行文本信息具有相同的列数;和/或,每两行文本信息包含一行数据表中的列名,以及各列名对应的数值。
在一种可选的实施方式中,指定目录的结构包括主目录、目标数据库目录和/或目标数据表目录。
在一种可选的实施方式中,程序510用于使得处理器502监控文本信息的大小,若文本信息的大小达到预设文本大小阈值时对其进行切分。
在一种可选的实施方式中,程序510用于使得处理器502建立第二线程;利用第二线程将落地文件中的文本信息导入到目标数据库的目标数据表中,以完成数据写入。
在一种可选的实施方式中,程序510用于使得处理器502按照预设扫描时间间隔,利用第二线程对落地文件中的文本信息进行扫描,判断文本信息的大小是否达到预设文本大小阈值;若达到预设文本大小阈值,将文本信息导入到目标数据库的目标数据表中。
在一种可选的实施方式中,程序510用于使得处理器502判断目标数据库和目标数据表是否存在预设的时限名单中;其中,时限名单包括时限数据库、时限数据表及执行时限;若存在预设的时限名单中,则监控计时至执行时限后,将文本信息导入到目标数据库的目标数据表中。
在一种可选的实施方式中,程序510用于使得处理器502判断目标数据库和目标数据表是否存在预设的导入黑名单中;其中,黑名单包括黑名单数据库及黑名单数据表;若存在预设的导入黑名单中,返回导入错误报警。
在一种可选的实施方式中,程序510用于使得处理器502利用第二线程调用导入接口,根据文本信息携带的列数信息,将落地文件中的文本信息导入到目标数据库的目标数据表中。
程序510中各步骤的具体实现可以参见上述数据写入实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
通过本实施例提供的方案,在接收数据写入请求后,对数据写入请求进行解析,得到数据写入请求对应的目标数据库和目标数据表,将数据写入请求转化为文本信息写入在指定目录下存储的落地文件中。将落地文件中的文本信息导入到目标数据库的目标数据表中,以完成数据写入。不受数据库本身单线程语法解析后知道执行计划才能存储的限制,大大提高数据库数据写入的速度,消释数据库写入时的瓶颈。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的数据写入装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (20)

1.一种数据写入方法,包括:
接收数据写入请求;
对所述数据写入请求进行解析,得到数据写入请求对应的目标数据库和目标数据表,将所述数据写入请求转化为文本信息写入在指定目录下存储的落地文件中;
将所述落地文件中的文本信息导入到所述目标数据库的目标数据表中,以完成数据写入;
所述将所述落地文件中的文本信息导入到所述目标数据库的目标数据表中,以完成数据写入进一步包括:
建立第二线程;
利用所述第二线程将所述落地文件中的文本信息导入到所述目标数据库的目标数据表中,以完成数据写入。
2.根据权利要求1所述的方法,其中,所述对所述数据写入请求进行解析,得到数据写入请求对应的目标数据库和目标数据表,将所述数据写入请求转化为文本信息写入在指定目录下存储的落地文件中进一步包括:
建立多个第一线程;
利用所述多个第一线程并行对所述数据写入请求进行解析,按照写入文本规则将所述数据写入请求转化为文本信息写入在指定目录下存储的落地文件中。
3.根据权利要求2所述的方法,其中,所述写入文本规则包括:所述落地文件以行为单位记录所述文本信息,其中,
各行文本信息具有相同的列数;
和/或,每两行文本信息包含一行数据表中的列名,以及各列名对应的数值。
4.根据权利要求2所述的方法,其中,所述指定目录的结构包括主目录、目标数据库目录和/或目标数据表目录。
5.根据权利要求2所述的方法,所述方法还包括:
监控所述文本信息的大小,若所述文本信息的大小达到预设文本大小阈值时对其进行切分。
6.根据权利要求1所述的方法,其中,所述利用所述第二线程将所述落地文件中的文本信息导入到所述目标数据库的目标数据表中,以完成数据写入进一步包括:
按照预设扫描时间间隔,利用所述第二线程对所述落地文件中的文本信息进行扫描,判断所述文本信息的大小是否达到预设文本大小阈值;
若达到预设文本大小阈值,将所述文本信息导入到所述目标数据库的目标数据表中。
7.根据权利要求1所述的方法,其中,所述利用所述第二线程将所述落地文件中的文本信息导入到所述目标数据库的目标数据表中,以完成数据写入进一步包括:
判断所述目标数据库和所述目标数据表是否存在预设的时限名单中;其中,所述时限名单包括时限数据库、时限数据表及执行时限;
若存在预设的时限名单中,则监控计时至所述执行时限后,将所述文本信息导入到所述目标数据库的目标数据表中。
8.根据权利要求1所述的方法,其中,所述方法还包括:
判断所述目标数据库和所述目标数据表是否存在预设的导入黑名单中;其中,所述黑名单包括黑名单数据库及黑名单数据表;
若存在预设的导入黑名单中,返回导入错误报警。
9.根据权利要求1、6-8任一项所述的方法,其中,所述利用所述第二线程将所述落地文件中的文本信息导入到所述目标数据库的目标数据表中,以完成数据写入进一步包括:
利用所述第二线程调用导入接口,根据所述文本信息携带的列数信息,将所述落地文件中的文本信息导入到所述目标数据库的目标数据表中。
10.一种数据写入装置,其包括:
接收模块,适于接收数据写入请求;
解析模块,适于对所述数据写入请求进行解析,得到数据写入请求对应的目标数据库和目标数据表,将所述数据写入请求转化为文本信息写入在指定目录下存储的落地文件中;
导入模块,适于将所述落地文件中的文本信息导入到所述目标数据库的目标数据表中,以完成数据写入;
所述导入模块包括:
第二线程模块,适于建立第二线程;
所述导入模块进一步适于:利用所述第二线程将所述落地文件中的文本信息导入到所述目标数据库的目标数据表中,以完成数据写入。
11.根据权利要求10所述的装置,其中,所述解析模块包括:
第一线程模块,适于建立多个第一线程;
所述解析模块进一步适于:利用所述多个第一线程并行对所述数据写入请求进行解析,按照写入文本规则将所述数据写入请求转化为文本信息写入在指定目录下存储的落地文件中。
12.根据权利要求11所述的装置,其中,所述写入文本规则包括:所述落地文件以行为单位记录所述文本信息,其中,
各行文本信息具有相同的列数;
和/或,每两行文本信息包含一行数据表中的列名,以及各列名对应的数值。
13.根据权利要求11所述的装置,其中,所述指定目录的结构包括主目录、目标数据库目录和/或目标数据表目录。
14.根据权利要求11所述的装置,其中,所述装置还包括:
监控模块,适于监控所述文本信息的大小,若所述文本信息的大小达到预设文本大小阈值时对其进行切分。
15.根据权利要求10所述的装置,其中,所述导入模块包括:
扫描模块,适于按照预设扫描时间间隔,利用所述第二线程对所述落地文件中的文本信息进行扫描,判断所述文本信息的大小是否达到预设文本大小阈值;
所述导入模块进一步适于:若达到预设文本大小阈值,将所述文本信息导入到所述目标数据库的目标数据表中。
16.根据权利要求10所述的装置,其中,所述导入模块包括:
时限模块,适于判断所述目标数据库和所述目标数据表是否存在预设的时限名单中;其中,所述时限名单包括时限数据库、时限数据表及执行时限;
所述导入模块进一步适于:若存在预设的时限名单中,则监控计时至所述执行时限后,将所述文本信息导入到所述目标数据库的目标数据表中。
17.根据权利要求10所述的装置,其中,所述装置还包括:
黑名单报警模块,适于判断所述目标数据库和所述目标数据表是否存在预设的导入黑名单中;其中,所述黑名单包括黑名单数据库及黑名单数据表;若存在预设的导入黑名单中,返回导入错误报警。
18.根据权利要求10、15-17任一项所述的装置,其中,所述导入模块进一步适于:
利用所述第二线程调用导入接口,根据所述文本信息携带的列数信息,将所述落地文件中的文本信息导入到所述目标数据库的目标数据表中。
19.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-9中任一项所述的数据写入方法对应的操作。
20.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-9中任一项所述的数据写入方法对应的操作。
CN201710555586.1A 2017-06-30 2017-06-30 数据写入方法及装置、电子设备、计算机存储介质 Active CN107357885B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710555586.1A CN107357885B (zh) 2017-06-30 2017-06-30 数据写入方法及装置、电子设备、计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710555586.1A CN107357885B (zh) 2017-06-30 2017-06-30 数据写入方法及装置、电子设备、计算机存储介质

Publications (2)

Publication Number Publication Date
CN107357885A CN107357885A (zh) 2017-11-17
CN107357885B true CN107357885B (zh) 2020-11-20

Family

ID=60293358

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710555586.1A Active CN107357885B (zh) 2017-06-30 2017-06-30 数据写入方法及装置、电子设备、计算机存储介质

Country Status (1)

Country Link
CN (1) CN107357885B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109299037A (zh) * 2018-08-16 2019-02-01 北京炎黄盈动科技发展有限责任公司 文件处理方法和装置
CN109656890A (zh) * 2018-12-24 2019-04-19 无锡江南计算技术研究所 一种安全快速的大规模并行计算输入输出实现方法
CN110502562A (zh) * 2019-08-16 2019-11-26 深圳证券交易所 数据导入方法及装置、可读存储介质
CN113722277A (zh) * 2020-05-25 2021-11-30 中兴通讯股份有限公司 一种数据导入方法、装置、服务平台及存储介质
CN116501789A (zh) * 2023-06-28 2023-07-28 本原数据(北京)信息技术有限公司 数据库数据写入方法和装置、电子设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1331817A (zh) * 1998-11-25 2002-01-16 电脑联合想象公司 用于并发数据库管理系统表操作的方法和设备
CN1829964A (zh) * 2003-08-02 2006-09-06 国际商业机器公司 用于处理消息队列的方法、设备和计算机程序
US7447710B2 (en) * 2003-12-11 2008-11-04 Sybase, Inc. Database system providing self-tuned parallel database recovery
CN101706803A (zh) * 2009-11-27 2010-05-12 天津工业大学 一种织造车间生产数据的迁移方法
CN105512240A (zh) * 2015-11-30 2016-04-20 中国建设银行股份有限公司 一种基于不同数据库的数据复制方法和系统
CN106033439A (zh) * 2015-03-13 2016-10-19 阿里巴巴集团控股有限公司 一种分布式事务处理方法及系统
CN106033437A (zh) * 2015-03-13 2016-10-19 阿里巴巴集团控股有限公司 一种分布式事务处理方法及系统
CN106547801A (zh) * 2015-09-23 2017-03-29 北京奇虎科技有限公司 数据库数据闪回方法和装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1331817A (zh) * 1998-11-25 2002-01-16 电脑联合想象公司 用于并发数据库管理系统表操作的方法和设备
CN1829964A (zh) * 2003-08-02 2006-09-06 国际商业机器公司 用于处理消息队列的方法、设备和计算机程序
US7447710B2 (en) * 2003-12-11 2008-11-04 Sybase, Inc. Database system providing self-tuned parallel database recovery
CN101706803A (zh) * 2009-11-27 2010-05-12 天津工业大学 一种织造车间生产数据的迁移方法
CN106033439A (zh) * 2015-03-13 2016-10-19 阿里巴巴集团控股有限公司 一种分布式事务处理方法及系统
CN106033437A (zh) * 2015-03-13 2016-10-19 阿里巴巴集团控股有限公司 一种分布式事务处理方法及系统
CN106547801A (zh) * 2015-09-23 2017-03-29 北京奇虎科技有限公司 数据库数据闪回方法和装置
CN105512240A (zh) * 2015-11-30 2016-04-20 中国建设银行股份有限公司 一种基于不同数据库的数据复制方法和系统

Also Published As

Publication number Publication date
CN107357885A (zh) 2017-11-17

Similar Documents

Publication Publication Date Title
CN107357885B (zh) 数据写入方法及装置、电子设备、计算机存储介质
CN104866383A (zh) 一种接口调用方法、装置及终端
CN110287696B (zh) 一种反弹shell进程的检测方法、装置和设备
CN109831466B (zh) 微服务业务处理方法及nginx服务器
CN109379398B (zh) 一种数据同步方法及装置
CN104219230B (zh) 识别恶意网站的方法及装置
CN108153803B (zh) 一种数据获取方法、装置及电子设备
CN111382206B (zh) 一种数据存储方法及装置
CN111786984A (zh) Pod通信连接方法、装置及电子设备、存储介质
CN105718307A (zh) 进程管理方法及进程管理装置
CN108491209B (zh) 一种html页面中公共代码的提取方法及装置
CN104143110A (zh) 带网址信息的二维码生成方法
CN109213950B (zh) Iptv智能机顶盒浏览器应用的数据处理方法及装置
CN112653736A (zh) 一种并行回源方法、装置及电子设备
CN110955460A (zh) 一种服务进程启动方法、装置、电子设备和存储介质
CN110554905A (zh) 一种容器的启动方法及装置
CN112291343B (zh) 信息获取方法、装置及电子设备
CN111367921A (zh) 数据对象的刷新方法及装置
CN110955856B (zh) 一种网页加载方法、装置、服务器及存储介质
CN111291127B (zh) 一种数据同步方法、装置、服务器及存储介质
CN114637969A (zh) 目标对象的鉴权方法及装置
CN111090515B (zh) 一种访问控制方法、装置、终端设备及存储介质
CN105897566A (zh) 网络课程的用户获取方法及系统
CN108920589B (zh) 浏览劫持识别方法、装置、服务器及存储介质
CN105893521A (zh) 一种读写分离的HBase入库方法

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