CN111581169A - 数据导入方法、装置、计算机设备及存储介质 - Google Patents
数据导入方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN111581169A CN111581169A CN202010218639.2A CN202010218639A CN111581169A CN 111581169 A CN111581169 A CN 111581169A CN 202010218639 A CN202010218639 A CN 202010218639A CN 111581169 A CN111581169 A CN 111581169A
- Authority
- CN
- China
- Prior art keywords
- data
- imported
- information
- import
- acquiring
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据导入方法、装置、计算机设备及存储介质。所述方法包括:获取待导入数据信息;在当前时间达到执行时间时,根据数据源标识从对应的数据表中获取待导入数据,保存在分布式文件系统中,并且从对应的数据表中获取数据结构信息;根据数据类型对数据结构信息进行封装,得到配置文件信息;将配置文件发送至开源分布式数据存储系统集群中,以指示开源分布式数据存储系统集群根据配置文件从分布式文件系统中提取待导入数据,实现数据的导入。本发明的技术方案能够支持不同数据格式导入,对于数据摄入过程中出现的数据倾斜问题也实现了自动化处理,避免了手工编写配置文件而引发的各种错误,整个过程大大提高了生产效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据导入方法、装置、计算机设备及存储介质。
背景技术
Druid是Java中开源的数据连接池,是一种开源的,分布式的,支持海量数据实时分析的开源分布式数据存储系统。Druid通常用于商业智能/OLAP(Online AnalyticalProcessing,联机分析处理)应用程序,以分析大量的实时和历史数据。旨在帮助企业实现快速处理超大规模的数据,并能够实现快速查询和分析。
目前,官方给出的存储在Druid里的数据的接入方式是:用户根据外部数据源的数据结构和表结构提前编写一个相配套的配置文件,这个配置文件在Druid中被称为Ingestion Spec(数据摄取规范),在这个配置文件中指定数据摄入时需要的各种相关参数,然后调用Druid提供的接口,读取并执行编写好的配置文件,从而实现Druid单个数据资源的单次数据的摄入。
这种实现方式非常不便,编写配置文件很容易出错,在面对大量数据导入的情况下,效率很低。
发明内容
本发明实施例提供一种数据导入方法、装置、计算机设备及存储介质,以解决编写配置文件很容易出错,在面对大量数据导入的情况下,数据导入效率低下的问题。
一种数据导入方法,包括:
获取待导入数据信息,所述待导入数据信息包括数据源标识和执行时间;
在当前时间达到所述执行时间时,根据所述数据源标识从对应的数据表中获取待导入数据,保存在分布式文件系统中,并且从对应的数据表中获取数据结构信息,所述数据结构信息包括数据类型和数据信息;
根据所述数据类型对所述数据结构信息进行封装,得到配置文件信息;
将所述配置文件发送至数据库连接池集群中,以指示所述数据库连接池集群根据所述配置文件信息从所述分布式文件系统中提取所述待导入数据,实现数据的导入。
一种数据导入装置,包括:
信息获取模块,用于获取待导入数据信息,所述待导入数据信息包括数据源标识和执行时间;
数据获取模块,用于在当前时间达到所述执行时间时,根据所述数据源标识从对应的数据表中获取待导入数据,保存在分布式文件系统中,并且从对应的数据表中获取数据结构信息,所述数据结构信息包括数据类型和数据信息;
信息封装模块,用于根据所述数据类型对所述数据结构信息进行封装,得到配置文件信息;
数据导入模块,用于将所述配置文件发送至数据库连接池集群中,以指示所述数据库连接池集群根据所述配置文件信息从所述分布式文件系统中提取所述待导入数据,实现数据的导入。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据导入方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据导入方法的步骤。
上述数据导入方法、装置、计算机设备及存储介质中,通过获取待导入数据信息,待导入信息包括数据源标识和执行时间;在当前时间达到执行时间时,根据数据源标识从对应的数据表中获取待导入数据,保存在分布式文件系统中,并且从对应的数据表中获取数据结构信息,数据结构信息包括数据类型和数据信息;根据数据类型对数据结构信息进行封装,得到配置文件信息;将配置文件发送至数据库连接池集群中,以指示数据库连接池集群根据配置文件从分布式文件系统中提取待导入数据,实现数据的导入。能够快速实现数据自动化批量导入,同时,支持不同数据格式的导入,数据导入过程无需人工干预,避免了手工编写配置文件而引发的各种错误,整个过程大大提高了生产效率,且使用成本非常低。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中数据导入方法的一应用环境示意图;
图2是本发明一实施例中数据导入方法的一流程图;
图3是本发明一实施例中数据导入方法的一流程图;
图4是本发明一实施例中数据导入方法的步骤S20的一流程图;
图5是本发明一实施例中数据导入方法的步骤S30的一流程图;
图6是本发明一实施例中数据导入方法的步骤S40的一流程图;
图7是本发明一实施例中数据导入装置的一原理框图;
图8是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请提供的数据导入方法,可应用在如图1所示的应用环境中,该应用环境包括服务端和客户端,其中,服务端和应用客户端之间通过网络进行连接,该网络可以是有线网络或者无线网络,客户端具体包括但不限于各种个人计算机、笔记本电脑、智能手机和平板电脑和便携式可穿戴设备,应用服务端和推送服务端具体均可以用独立的服务器或者多个服务器组成的服务器集群实现。服务端获取待导入数据信息,待导入信息包括数据源标识和执行时间;在当前时间达到执行时间时,根据数据源标识从对应的数据表中获取待导入数据,保存在分布式文件系统中,并且从对应的数据表中获取数据结构信息,数据结构信息包括数据类型和数据信息;根据数据类型对数据结构信息进行封装,得到配置文件信息;将配置文件发送至数据库连接池集群中,以指示数据库连接池集群根据配置文件从分布式文件系统中提取待导入数据,实现数据的导入。
在一实施例中,如图2所示,提供一种数据导入方法,以该方法应用在图1中的服务端为例进行说明,具体包括步骤S10至步骤S40,详述如下:
S10:获取待导入数据信息,待导入数据信息包括数据源标识和执行时间。
具体地,数据源标识为待导入数据的位置信息。其中,待导入数据为需要进行同步或导入的数据。示例性地,数据源标识可以为待导入数据所在数据表的表名或者待导入数据所在数据库的库名。执行时间为该数据实现导入的时间,可以根据实际需求,对待导入数据进行导入的时间点或者时间范围进行设定。执行时间可以是固定周期的时间点,也可以是随机选定的时间范围。示例性地,对财务报表中的日报表数据进行导入,选择的执行时间可以是固定每天的18:00,对日报表数据进行导入。
S20:在当前时间到达执行时间时,根据数据源标识从对应的数据表中获取待导入数据,保存在分布式文件系统中,并且从对应的数据表中获取数据结构信息,数据结构信息包括数据类型。
具体地,分布式文件系统(Hadoop Distributed File System,HDFS)有高容错性的特点,并且设计用来部署在低廉的硬件上,而且它提供高吞吐量来访问数据,适合那些有着超大数据集的数据。在当前时间到达执行时间时,根据获取到的待导入信息中的数据源标识,找到与数据源标识对应的数据表,获取数据表中的待导入数据,并将待导入数据存放至临时HDFS中,可以理解地,临时HDFS为待导入数据暂时存放的数据存放环境。
进一步地,获取到与数据源标识对应的数据表后,从数据表中获取待导入数据的数据结构信息。其中,数据结构信息为待导入数据所在数据表的详细信息。示例性地,数据结构信息可以包括:
1.数据表字段名:预设的、自定义的数据表字段名。
2.数据表字段类型:系统中预设的数据表字段类型。
3.数据存储粒度:数据表中保存数据的细化或综合程度。
4.数据类型:数据表中保存的数据的类型。
5.执行时间:对数据进行导入的时间。
6.数据存储位置信息:数据在数据表中的存放位置。
特别地,数据类型包括图片、文本、语音、视频等类型,以及对应类型数据的格式。示例性地,待导入数据可以是格式为TSV的文本类型数据;待导入数据也可以是格式为CSV的图片类型数据。
S30:根据数据类型对数据结构信息进行封装,得到配置文件信息。
具体地,根据待导入数据的数据类型,通过计算机编程语言对数据结构信息进行封装,得到封装对象,最后通过计算机编程语言将封装对象转换成数据库连接池能够识别的配置文件信息。优选地,计算机编程语言可以是Java语言,一种面向对象计算机编程语言,Java语言中的存储分配模型能有效保证数据的安全性。
具体地,数据库连接池为负责分配、管理、和释放数据库连接,创建和管理一个连接的缓冲池技术。优选地,数据库连接池选择Druid,Druid是Java中开源的数据连接池,同时也是一种开源的,分布式的,支持大量数据实时分析的开源分布式数据存储系统。
可以理解地,配置文件信息中包括待导入数据的详细信息,即待导入数据所在数据表的字段名、字段类型、数据存储粒度、数据类型、执行时间、数据存储位置信息等。
示例性地,从数据表中获取到数据结构信息,即数据表的完整信息后,根据数据表的内容,即数据表字段名、数据表字段类型、数据存储粒度、数据类型、执行时间、数据存储位置信息等。通过Java语言将数据结构信息封装成Java对象,再将Java对象转换成Json字符串,Druid根据Ingestion Spec文件获取由Java对象转换成的文本格式的Json字符串,即配置文件信息,其中,Ingestion Spec为Druid中的摄取规范。
S40:将配置文件信息发送至数据库连接池集群中,以指示数据库连接池集群根据配置文件信息从分布式文件系统中提取待导入数据,实现数据的导入。
具体地,将配置文件信息发送至数据库连接池集群中后,调用数据库连接池集群中的数据导入接口,其中,数据导入接口为数据库连接池集群中的数据交互接口。然后,通过数据导入接口向数据库连接池集群中的任务管理节点发出数据导入请求,任务管理节点响应后,读取并执行接收到的配置文件信息,根据配置文件信息中的数据表字段名,从临时分布式文件系统,即临时HDFS中获取对应的数据表中的待导入数据,并将获取的待导入数据存放在数据库连接池集群HDFS中。其中,临时HDFS和数据库连接池集群HDFS为划分开的数据存储环境。
示例性地,将格式为TSV的文本类型数据对应的配置文件信息发送至Druid集群中,调用Druid集群中的数据导入接口,并通过数据导入接口向Durid集群中的Overlord节点发起数据导入请求,Overlord节点响应后,读取并执行得到的配置文件信息,Druid集群从临时HDFS中读取待导入数据,并将待导入数据保存在Druid集群HDFS中。其中,临时HDFS和Druid集群HDFS为划分开的数据存储环境。最终实现数据的导入。
本实施例中,首先获取待导入数据信息,根据待导入数据信息从对应的数据表中获取待导入数据,保存在分布式文件系统中,然后,根据待导入数据信息从对应的数据表中获取数据结构信息,根据数据结构信息中的数据类型对数据结构信息进行封装,得到配置文件信息,将配置文件信息发送至数据库连接池集群中,以指示数据库连接池集群根据配置文件信息从分布式文件系统中提取待导入数据,实现数据的导入。能够快速实现数据自动化批量导入,同时,支持不同数据格式的导入,数据导入过程无需人工干预,避免了手工编写配置文件而引发的各种错误,整个过程大大提高了数据导入的效率。
在一实施例中,如图3所示,在步骤S40之后,在将配置文件信息发送至数据库连接池集群中之后,包括:
S50:按照预设的时间间隔从数据库连接池集群中获取任务执行状态。
具体地,预设的时间间隔为预先设置地、按照用户自定义确定的时间间隔。示例性地,预设的时间间隔可以是每隔一分钟获取一次任务执行状态,或者每隔一小时调取一次获取一次任务执行状态。可以理解地,当预设的时间间隔为0,则从数据库连接池集群中实时获取任务执行状态。
具体地,任务执行状态为数据库连接池集群导入数据过程中的导入状态。其中,导入状态包括正常状态和异常状态。
示例性地,每隔一分钟,即从Durid集群中获取Durid集群导入数据过程中的导入状态。
S60:若任务执行状态为异常状态,则从数据库连接池集群中获取任务执行日志,以进行异常排查。
具体地,当任务执行状态为异常状态时,调取数据库连接池集群中的数据导入接口,通过数据导入接口向数据库连接池集群中的任务管理节点发出执行日志获取请求,任务管理节点响应后,获取当前数据库连接池集群的任务执行日志,并将获取的任务执行日志发送至客户端。进一步地,可以向客户端发出异常状态提醒,以指示用户对任务执行日志进行异常排查。其中,异常状态提醒可以是通过客户端显示界面提醒,也可以是通过语音提醒,或者客户端显示界面提醒和语音提醒的组合。
示例性地,当执行日报表数据的导入过程为异常状态时,调取Durid集群中的数据导入接口,并通过数据导入接口向Durid集群中的Overlord节点发起执行日志获取请求,Overlord节点响应后,获取当前Durid集群导入日报表数据过程中的任务执行日志,并将任务执行日志发送至客户端,同时在客户端显示界面显示WRONG或者ERROR,以指示用户对任务执行日志进行异常排查。
本实施例中,首先,根据预设的时间间隔,从Durid集群获取任务执行状态,进一步地,若任务执行状态为异常状态,则从数据库连接池集群中获取任务执行日志。能够提高数据导入过程中的可靠性,及时发现异常状态,提高数据导入过程中的效率。
在一实施例中,待导入数据信息还包括数据拆分信息,如图4所示,在步骤S20中,在待导入数据信息还包括数据拆分信息,根据数据源标识从对应的数据表中获取待导入数据,保存在分布式文件系统中,包括:
S21:根据数据源标识从数据表中获取待导入数据。
具体地,数据源标识具体可以是待导入数据所在数据表的表名,根据数据源标识获取待导入数据对应的数据表后,获取在数据表中的待导入数据。
S22:若数据拆分信息为第一指示信息,则从待导入数据中获取待拆分字段,第一指示信息指示待导入数据需要拆分处理。
具体地,待导入数据信息中还包括数据拆分信息,其中,数据拆分信息为待导入信息的拆分处理方式,包括第一指示信息和第二指示信息。若数据拆分信息为第一指示信息,则指示待导入数据需要进行拆分处理,同时,从待导入数据中获取待拆分字段。其中,待拆分字段为对待导入数据对应的执行时间字段;若数据拆分信息为第二指示信息,则指示待导入数据不需要进行拆分处理,直接对待导入数据进行导入。其中,拆分处理为将待导入数据拆分成多段数据后,再将拆分后的待导入数据依次进行导入。具体地,该数据拆分信息可以为用户预先指定。或者,服务端根据预设的条件进行判断之后得到该数据拆分信息,例如,该预设的条件可以为通过预先设定一个数据容量阈值或者服务端负载阈值。若该待导入数据的数据容量超过该数据容量阈值,或者当前服务端的负载超过该服务端负载阈值,则数据拆分信息为第一指示信息,反之,数据拆分信息为第二指示信息。
示例性地,待导入数据为月报表,获取的月报表信息中包括了第一指示信息,即需要对待导入的月报表进行数据的拆分处理,则获取待导入月报表的待拆分字段为固定每个月的1号。
S23:根据预设的数据容量确定待导入数据的拆分数量。
具体地,预设的数据容量为对待导入数据的大小限制,超过预设的数据容量时,会自动对待导入数据进行拆分处理。进一步地,根据预设的数据容量,确定待导入数据的拆分数量。示例性地,预设的数据容量设置为256MB,待导入数据的大小为700MB,由于拆分后的数据若还是超过预设的数据容量,则会被自动拆分,所以根据256MB的预设的数据容量,确定700MB的待导入数据拆分数量为3或者大于3。
S24:根据拆分数量设置随机函数,通过随机函数产生的随机值对待导入数据中待拆分字段的值进行更新。
具体地,根据预设的数据容量确定待导入数据的拆分数量后,根据拆分数量的值设置随机函数,以使随机函数产生与拆分数量对应的随机值,并根据随机函数产生的随机值对待导入数据中的待拆分字段的值进行更新。其中,随机函数为根据输入的变量值,能产生对应的随机函数值的函数。示例性地,预设的数据容量为256MB,确定700MB的待导入月报表拆分数量为30。月报表的待拆分字段为固定每个月的1号。设置的随机函数根据拆分数量30产生30个随机的函数,通过函数,将固定每个月的1号导入月报表,更新为每个月的30天中的依次随机导入月报表,均衡地、随机地分布到一个月的30天中。通过调整待导入数据中的待拆分字段的值,从而可以使得后续根据该调整后的待拆分字段的值对待导入数据进行拆分。
S25:按照更新后的待拆分字段对待导入数据进行拆分,得到多个拆分后的待导入数据。
具体地,得到更新后的待拆分字段后,按照更新后的待拆分字段对待导入数据进行拆分,得到多个拆分后的待导入数据。示例性地,通过函数,将固定每个月的1号导入月报表,更新为每个月的30天中的依次随机导入月报表,根据每个月的30天中的依次随机导入月报表,将待导入的月报表对应的拆分成30份。
S26:将多个拆分后的待导入数据存储至分布式文件系统中。
具体地,将多个拆分后的待导入数据存储至分布式文件系统的过程中,由于是拆分后的多个数据,可以通过多任务的方式来实现待导入拆分数据的存储,可以避免了数据导入过程中的数据倾斜问题。示例性地,通过MapReduce任务进行数据导入,最终MapReduce任务执行时就会有多个map任务。示例性地,将得到的多个拆分后的月报表存放至临时HDFS中,以使Durid集群从临时HDFS中获取多个拆分后的月报表,并存放至Durid集群HDFS中,实现月报表的导入。
本实施例中,首先,获取待导入数据,若数据拆分信息为第一指示信息,则从待导入数据中获取待拆分字段,进一步地,根据预设的数据容量确定待导入数据的拆分数量,根据拆分数量设置随机函数,通过随机函数产生的随机值对待导入数据中待拆分字段的值进行更新。能够避免待导入数据在同一个服务器大量的导入,影响数据导入过程中的稳定性和效率。解决了数据导入过程中的数据倾斜问题。
在一实施例中,如图5所示,在步骤S30中,根据数据类型对数据结构信息进行封装,得到配置文件信息,包括:
S31:通过数据类型获取对应的封装策略。
具体地,不同待导入数据,具有不同的数据类型,根据不同的数据类型对待导入数据进行不同的封装策略。其中,封装策略为根据不同的数据类型,将待导入数据封装包括数据类型的对象。示例性地,若待导入数据可以是格式为TSV的文本类型数据,则将该待导入数据按照TSV格式进行封装,若待导入数据为格式为CSV的图片类型数据,则将该待导入数据按照CSV格式进行封装。
S32:根据封装策略将数据结构信息封装成面向对象语言对象。
具体地,面向对象语言可以是Java语言,Java语言中的存储分配模型能有效保证数据的安全性。根据封装策略,将包括数据表中所有信息的数据结构信息封装成Java对象。可以理解地,Java对象中包括数据表中所有信息的,如数据表字段名、数据表字段类型、数据存储粒度、数据类型、执行时间、数据存储位置信息。
S33:将面向对象语言对象转换成数据交换格式,得到配置文件。
具体地,将封装完成的Java对象转换成数据交换格式。其中,数据交换格式Java对象转换成的文本格式的Json字符串。Json字符串为Druid能够识别的文本格式的文件。根据Druid中的Ingestion Spec文件获取由Java对象转换成的文本格式的Json字符串,得到配置文件。
本实施例中,通过程序设计语言Java语言将数据结构信息根据数据类型进行封装,得到Java对象,再转换成Durid集群能够识别的json字符串,即配置文件信息。使得数据同步的工作能够适用不同业务的需求场景,对不同数据类型进行快速的摄入,具有高适用性和高效率。
在一实施例中,如图6所示,在步骤S40中,将配置文件信息发送至数据库连接池集群中,以指示数据库连接池集群根配置文件从分布式文件系统中提取待导入数据,实现数据的导入,包括:
S41:调用数据库连接池集群中的数据摄入接口。
具体地,获取到配置文件信息后,调用Durid集群中的数据摄入接口,其中,通过数据摄入接口能向Durid集群中的overlord进程发送数据摄入请求。
S42:向数据库连接池集群中的任务管理节点发送数据请求,并得到任务管理节点响应。
具体地,通过通过数据摄入接口能向Durid集群中的overlord进程发送数据摄入请求,同时得到overlord进程响应。其中,overlord进程为Durid集群中的任务管理节点,负责接收管理任务。
S43:根据配置文件信息,指示数据库连接池集群从分布式文件文件系统中提取待导入数据,并将待导入数据保存在数据库连接池集群的分布式文件文件系统中。
具体地,获取overlord进程响应后,读取并执行得到的配置文件信息,并指示Durid集群从临时HDFS中读取待导入数据,并将待导入数据保存在Durid集群HDFS中。
在本实施例中,根据任务管理节点响应,从分布式文件文件系统中提取待导入数据,并保存在数据库连接池集群的分布式文件文件系统中。将数据进行本地化存储,使用户能快速从本地化存储中获取数据,提高效率。同时,将待导入数据存放在临时的HDFS中,将导入后的数据存放在Durid集群HDFS中,将不同的数据存放在不同的数据存放环境中,从安全的角度上,能保证数据的安全,将数据进行隔离,防止数据同步时出现错误。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种数据导入装置,该数据导入装置与上述实施例中数据导入方法一一对应。如图7所示,该数据导入装置包括:信息获取模块10、数据获取模块20、信息封装模块30、数据导入模块40。各功能模块详细说明如下:
信息获取模块10,用于获取待导入数据信息,待导入数据信息包括数据源标识和执行时间;
数据获取模块20,用于在当前时间到达执行时间时,根据数据源标识从对应的数据表中获取待导入数据,保存在分布式文件系统中,并且从对应的数据表中获取数据结构信息,数据结构信息包括数据类型;
信息封装模块30,用于根据数据类型对数据结构信息进行封装,得到配置文件信息;
数据导入模块40,用于将配置文件信息发送至数据库连接池集群中,以指示数据库连接池集群根据配置文件信息从分布式文件系统中提取待导入数据,实现数据的导入。
进一步地,数据导入装置还包括:
状态获取模块50,用于按照预设的时间间隔从数据库连接池集群中获取任务执行状态;
异常排查模块60,用于在任务执行状态为异常状态时,从数据库连接池集群中获取任务执行日志,以进行异常排查。
进一步地,数据获取模块20包括:
获取数据子模块21,用于根据数据源标识从数据表中获取待导入数据;
数据拆分子模块22,用于在数据拆分信息为第一指示信息时,从待导入数据中获取待拆分字段,第一指示信息指示待导入数据需要拆分处理;
拆分数量子模块23,用于根据预设的数据容量确定待导入数据的拆分数量;
字段更新子模块24,用于根据拆分数量设置随机函数,通过随机函数产生的随机值对待导入数据中待拆分字段的值进行更新;
拆分数据子模块25,用于按照更新后的待拆分字段对待导入数据进行拆分,得到多个拆分后的待导入数据;
数据存储子模块26,用于将多个拆分后的待导入数据存储至所述分布式文件系统中。
进一步地,信息封装模块30包括:
封装策略子模块31,用于通过数据类型获取对应的封装策略;
信息封装子模块32,用于根据封装策略将数据结构信息封装成面向对象语言对象;
对象转换子模块33,用于将面向对象语言对象转换成数据交换格式,得到配置文件。
进一步地,数据导入模块40包括:
接口调用子模块41,用于调用数据库连接池集群中的数据摄入接口;
数据请求子模块42,用于向数据库连接池集群中的任务管理节点发送数据请求,并得到任务管理节点响应;
数据提取子模块43,用于根据配置文件信息,指示数据库连接池集群从分布式文件文件系统中提取待导入数据,并将待导入数据保存在数据库连接池集群的分布式文件文件系统中。
关于数据导入装置的具体限定可以参见上文中对于数据导入方法的限定,在此不再赘述。上述数据导入装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据导入方法。
在一实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中数据导入方法的步骤,例如步骤S10至步骤S40。或者,处理器执行计算机程序时实现上述实施例中数据导入装置的各模块/单元的功能,例如模块10至模块40的功能。为避免重复,此处不再赘述。
在一实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例中数据导入方法,或者,该计算机程序被处理器执行时实现上述装置实施例中数据导入装置中各模块/单元的功能。为避免重复,此处不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据导入方法,其特征在于,所述数据导入方法包括:
获取待导入数据信息,所述待导入数据信息包括数据源标识和执行时间;
在当前时间到达所述执行时间时,根据所述数据源标识从对应的数据表中获取待导入数据,保存在分布式文件系统中,并且从所述对应的数据表中获取数据结构信息,所述数据结构信息包括数据类型;
根据所述数据类型对所述数据结构信息进行封装,得到配置文件信息;
将所述配置文件信息发送至数据库连接池集群中,以指示所述数据库连接池集群根据所述配置文件信息从所述分布式文件系统中提取所述待导入数据,实现数据的导入。
2.如权利要求1所述的数据导入方法,其特征在于,所述将所述配置文件信息发送至数据库连接池集群中之后,所述数据导入方法还包括:
按照预设的时间间隔从所述数据库连接池集群中获取任务执行状态;
若所述任务执行状态为异常状态,则从所述数据库连接池集群中获取任务执行日志,以进行异常排查。
3.如权利要求1所述的数据导入方法,其特征在于,所述待导入数据信息还包括数据拆分信息,所述根据所述数据源标识从对应的数据表中获取待导入数据,保存在分布式文件系统中,包括:
根据所述数据源标识从数据表中获取待导入数据;
若所述数据拆分信息为第一指示信息,则从所述待导入数据中获取待拆分字段,所述第一指示信息指示所述待导入数据需要拆分处理;
根据预设的数据容量确定所述待导入数据的拆分数量;
根据所述拆分数量设置随机函数,通过所述随机函数产生的随机值对所述待导入数据中所述待拆分字段的值进行更新;
按照更新后的所述待拆分字段对所述待导入数据进行拆分,得到多个拆分后的待导入数据;
将所述多个拆分后的待导入数据存储至所述分布式文件系统中。
4.如权利要求1所述的数据导入方法,其特征在于,所述根据所述数据类型对所述数据结构信息进行封装,得到配置文件信息,包括:
通过所述数据类型获取对应的封装策略;
根据所述封装策略将所述数据结构信息封装成面向对象语言对象;
将所述面向对象语言对象转换成数据交换格式,得到配置文件。
5.如权利要求1所述的数据导入方法,其特征在于,所述将所述配置文件信息发送至数据库连接池集群中,以指示所述数据库连接池集群根据所述配置文件从所述分布式文件系统中提取所述待导入数据,实现数据的导入,包括:
调用所述数据库连接池集群中的数据摄入接口;
向所述数据库连接池集群中的任务管理节点发送数据请求,并得到任务管理节点响应;
根据所述配置文件信息,指示所述数据库连接池集群从所述分布式文件文件系统中提取待导入数据,并将所述待导入数据保存在所述数据库连接池集群的分布式文件文件系统中。
6.一种数据导入装置,其特征在于,所述数据导入装置包括:
信息获取模块,用于获取待导入数据信息,所述待导入数据信息包括数据源标识和执行时间;
数据获取模块,用于在当前时间到达所述执行时间时,根据所述数据源标识从对应的数据表中获取待导入数据,保存在分布式文件系统中,并且从所述对应的数据表中获取数据结构信息,所述数据结构信息包括数据类型;
信息封装模块,用于根据所述数据类型对所述数据结构信息进行封装,得到配置文件信息;
数据导入模块,用于将所述配置文件信息发送至数据库连接池集群中,以指示所述数据库连接池集群根据所述配置文件信息从所述分布式文件系统中提取所述待导入数据,实现数据的导入。
7.如权利要求6所述的数据导入装置,其特征在于,在所述数据导入模块之后,所述数据导入装置还包括:
状态获取模块,用于按照预设的时间间隔从所述数据库连接池集群中获取任务执行状态;
异常排查模块,用于在所述任务执行状态为异常状态时,从所述数据库连接池集群中获取任务执行日志,以进行异常排查。
8.如权利要求6所述的数据导入装置,其特征在于,所述数据获取模块包括:
获取数据子模块,用于根据所述数据源标识从数据表中获取待导入数据;
数据拆分子模块,用于在所述数据拆分信息为第一指示信息时,从所述待导入数据中获取待拆分字段,所述第一指示信息指示所述待导入数据需要拆分处理;
拆分数量子模块,用于根据预设的数据容量确定所述待导入数据的拆分数量;
字段更新子模块,用于根据所述拆分数量设置随机函数,通过所述随机函数产生的随机值对所述待导入数据中所述待拆分字段的值进行更新;
拆分数据子模块,用于按照更新后的所述待拆分字段对所述待导入数据进行拆分,得到多个拆分后的待导入数据;
数据存储子模块,用于将所述多个拆分后的待导入数据存储至所述分布式文件系统中。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述的数据导入方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的数据导入方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010218639.2A CN111581169A (zh) | 2020-03-25 | 2020-03-25 | 数据导入方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010218639.2A CN111581169A (zh) | 2020-03-25 | 2020-03-25 | 数据导入方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111581169A true CN111581169A (zh) | 2020-08-25 |
Family
ID=72114873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010218639.2A Pending CN111581169A (zh) | 2020-03-25 | 2020-03-25 | 数据导入方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111581169A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112420168A (zh) * | 2020-11-12 | 2021-02-26 | 武汉联影医疗科技有限公司 | 数据写入数据库的方法、装置、设备和存储介质 |
CN115544027A (zh) * | 2022-12-05 | 2022-12-30 | 北京滴普科技有限公司 | 一种面向olap分析引擎的数据导入方法和系统 |
CN115658978A (zh) * | 2022-11-14 | 2023-01-31 | 杭州欧若数网科技有限公司 | 图数据库系统多源数据导入方法和装置 |
WO2023245396A1 (zh) * | 2022-06-20 | 2023-12-28 | 北京小米移动软件有限公司 | 数据库连接池的监控方法及装置、电子设备、存储介质 |
-
2020
- 2020-03-25 CN CN202010218639.2A patent/CN111581169A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112420168A (zh) * | 2020-11-12 | 2021-02-26 | 武汉联影医疗科技有限公司 | 数据写入数据库的方法、装置、设备和存储介质 |
WO2023245396A1 (zh) * | 2022-06-20 | 2023-12-28 | 北京小米移动软件有限公司 | 数据库连接池的监控方法及装置、电子设备、存储介质 |
CN115658978A (zh) * | 2022-11-14 | 2023-01-31 | 杭州欧若数网科技有限公司 | 图数据库系统多源数据导入方法和装置 |
CN115658978B (zh) * | 2022-11-14 | 2023-04-07 | 杭州欧若数网科技有限公司 | 图数据库系统多源数据导入方法和装置 |
CN115544027A (zh) * | 2022-12-05 | 2022-12-30 | 北京滴普科技有限公司 | 一种面向olap分析引擎的数据导入方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111581169A (zh) | 数据导入方法、装置、计算机设备及存储介质 | |
WO2020140683A1 (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
WO2021169272A1 (zh) | 数据库表格变更方法、装置、计算机设备及存储介质 | |
CN109542529B (zh) | 基于函数名称的埋点方法、装置、计算机设备及存储介质 | |
US11200157B1 (en) | Automated execution reporting for container builds | |
CN112910945A (zh) | 请求链路跟踪方法和业务请求处理方法 | |
CN108959385B (zh) | 数据库部署方法、装置、计算机设备和存储介质 | |
WO2022142312A1 (zh) | 页面处理方法、装置、计算机设备及存储介质 | |
CN110555041A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN110851159B (zh) | 业务规则更新方法、装置、计算机设备和存储介质 | |
CN110309123A (zh) | 数据库操作的处理方法、装置、计算机设备及存储介质 | |
CN110888797A (zh) | 测试数据生成方法、装置、计算机设备及存储介质 | |
CN110175099A (zh) | 接口变动提示方法、装置、计算机设备及存储介质 | |
CN104144202A (zh) | Hadoop分布式文件系统的访问方法、系统和装置 | |
CN112615759A (zh) | 全链路压测组件、全链路压测方法及装置 | |
CN112488745A (zh) | 一种智能费控管理方法、装置、设备和存储介质 | |
CN109766316A (zh) | 文件获取方法、装置、计算机设备和存储介质 | |
CN113835921A (zh) | 接口服务异常的处理方法、装置、设备和存储介质 | |
WO2020253044A1 (zh) | 服务配置方法、装置、计算机设备及存储介质 | |
CN112243033B (zh) | 获取内存信息的方法、装置、设备及计算机可读存储介质 | |
CN112181423B (zh) | 基于配置文件的项目构建方法、装置、计算机设备及介质 | |
CN111966530A (zh) | 应用系统灾备切换方法、装置、计算机设备和存储介质 | |
CN112416350A (zh) | 视图页面构建方法、装置、计算机设备和存储介质 | |
CN113157754B (zh) | 流程表单数据展示方法、装置、设备及存储介质 | |
WO2019062087A1 (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 |