CN110162563B - 一种数据入库方法、***及电子设备和存储介质 - Google Patents
一种数据入库方法、***及电子设备和存储介质 Download PDFInfo
- Publication number
- CN110162563B CN110162563B CN201910452637.7A CN201910452637A CN110162563B CN 110162563 B CN110162563 B CN 110162563B CN 201910452637 A CN201910452637 A CN 201910452637A CN 110162563 B CN110162563 B CN 110162563B
- Authority
- CN
- China
- Prior art keywords
- data
- warehousing
- task
- data table
- temporary
- 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
- 238000000034 method Methods 0.000 title claims abstract description 127
- 238000005192 partition Methods 0.000 claims abstract description 46
- 230000008569 process Effects 0.000 claims description 75
- 238000004590 computer program Methods 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 9
- 238000004140 cleaning Methods 0.000 claims description 8
- 238000013500 data storage Methods 0.000 claims description 6
- 230000002159 abnormal effect Effects 0.000 claims description 5
- 230000008676 import Effects 0.000 claims description 4
- 239000012634 fragment Substances 0.000 claims description 3
- 238000001914 filtration Methods 0.000 claims description 2
- 230000011218 segmentation Effects 0.000 claims 2
- 238000007405 data analysis Methods 0.000 abstract description 7
- 238000006243 chemical reaction Methods 0.000 abstract description 2
- 238000005516 engineering process Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 241000282813 Aepyceros melampus Species 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008439 repair process Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000013479 data entry Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据入库方法、***及一种电子设备和计算机可读存储介质,该方法包括:将采集到的数据保存至预先按照分区策略创建的临时数据表中;临时数据表的存储格式为sequence格式;生成入库任务,并根据入库任务将临时数据表中的数据导入至目标库中预先按照分区策略创建的目标数据表中;目标数据表的存储格式为parquet格式。本申请预先按照分区策略创建了sequence格式的临时数据表,创建了parquet格式的目标数据表,将临时数据表中的数据导入目标数据表,实现将sequence格式数据转换为节省存储空间、提升数据分析效率的parquet格式数据,无需花费改写成本,同时避免了对资源的消耗。
Description
技术领域
本申请涉及计算机技术领域,更具体地说,涉及一种数据入库方法、***及一种电子设备和一种计算机可读存储介质。
背景技术
随着互联网的发展,尤其是近年来大数据技术越来越流行,企业都在往数字化方向转型,每个企业或大或小的建立了自己的数据平台,Hadoop(分布式***基础架构)成为各个公司进行大数据分析的标准架构,但是Hadoop分析效率低下,运行速度慢,不能满足即时查询的分析需求。基于此,impala on Hadoop(基于分布式***基础架构的新型查询***)应运而生,该***中文件存储采用parquet格式。
在相关技术中,利用开源的flume(日志收集***)进行数据的前期采集,但是flume不支持写入parquet格式,若将flume写入的数据转换为impala支持的parquet格式的数据,一种常见的方案是通过改写flume agent来增加支持parquet格式的功能,这种方案改写成本高,还需自己编写***,如果存在大量的历史数据,会导致大量文件句柄打开,可能造成服务器宕机;另一种常见的方案是基于spark(计算引擎)直接读取kafka(分布式消息***),而这种方案对资源消耗较大,1G的数据通常需要消耗5G的内存。
发明内容
本申请的目的在于提供一种数据入库方法、***及一种电子设备和一种计算机可读存储介质,实现将flume采集到的sequence格式数据转换为能够节省存储空间、提升后续数据分析效率的parquet格式数据,无需花费改写成本,同时避免了对资源的消耗。
为实现上述目的,本申请提供了一种数据入库方法,包括:
将采集到的数据保存至预先按照分区策略创建的临时数据表中;所述临时数据表的存储格式为sequence格式;
生成入库任务,并根据所述入库任务将所述临时数据表中的数据导入至目标库中预先按照所述分区策略创建的目标数据表中;所述目标数据表的存储格式为parquet格式。
可选的,所述将采集到的数据保存至预先按照分区策略创建的临时数据表中,包括:
根据预设写入配置将采集到的数据保存至预先按照分区策略创建的临时数据表中;其中,所述预设写入配置包括文件分割周期和目录分割周期中的至少一项。
可选的,所述生成入库任务之前,还包括:
根据预先配置的任务开始时间以及当前时间判断是否生成入库任务。
可选的,所述根据预先配置的任务开始时间以及当前时间判断是否生成入库任务,包括:
获取所述任务开始时间和调度时间的间隔分钟数;所述调度时间为所述当前时间向后偏移预定时间得到的时间;
确定所述间隔分钟数对预先配置的任务周期进行求余计算得到的计算结果;
若计算结果为零,则允许生成所述入库任务。
可选的,所述根据所述入库任务将所述临时数据表中的数据导入至目标库中预先按照所述分区策略创建的目标数据表中的过程中,还包括:
基于预设数据清洗条件对数据进行过滤,以过滤异常数据。
可选的,所述根据所述入库任务将所述临时数据表中的数据导入至目标库中预先按照所述分区策略创建的目标数据表中,包括:
初始化共享队列,并生成生产者进程和消费者进程;
利用所述生产者进程根据入库任务配置生成入库任务,并将所述入库任务写入所述共享队列中;
利用所述消费者进程执行所述共享队列中的所述入库任务,以便将所述临时数据表中的数据导入至所述目标数据表中。
可选的,所述根据所述入库任务将所述临时数据表中的数据导入至目标库中预先按照所述分区策略创建的目标数据表中之后,还包括:
对所述临时数据表中已经成功入库的数据进行清理操作。
可选的,还包括:
记录数据从所述临时数据表中导入至所述目标数据表中的过程,生成入库日志。
可选的,还包括:
获取入库失败的待补录入库任务,对所述待补录入库任务的数据进行重新导入操作。
为实现上述目的,本申请提供了一种数据入库***,包括:
数据保存模块,用于将采集到的数据保存至预先按照分区策略创建的临时数据表中;所述临时数据表的存储格式为sequence格式;
数据入库模块,用于生成入库任务,并根据所述入库任务将所述临时数据表中的数据导入至目标库中预先按照所述分区策略创建的目标数据表中;其中,所述目标数据表的存储格式为parquet格式。
为实现上述目的,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现前述公开的任一项所述数据入库方法的步骤。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述公开的任一项所述数据入库方法的步骤。
通过以上方案可知,本申请提供的一种数据入库方法,包括:将采集到的数据保存至预先按照分区策略创建的临时数据表中;所述临时数据表的存储格式为sequence格式;生成入库任务,并根据所述入库任务将所述临时数据表中的数据导入至目标库中预先按照所述分区策略创建的目标数据表中;所述目标数据表的存储格式为parquet格式。由上可知,本申请预先按照分区策略创建了临时数据表,用于保存sequence格式的数据,还在目标库中按照上述分区策略创建了目标数据表,并将目标数据表的存储格式设定为parquet格式,根据入库任务将临时数据表中的数据导入目标数据表,实现将flume采集到的sequence格式数据转换为能够节省存储空间、提升后续数据分析效率的parquet格式数据,无需花费改写成本,同时避免了对资源的消耗。
本申请还公开了一种数据入库***及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种数据入库方法的流程图;
图2为本申请实施例公开的另一种数据入库方法的流程图;
图3为本申请实施例公开的另一种数据入库方法中S22的细化流程图;
图4为本申请实施例公开的一种具体的数据入库方法的流程图;
图5为本申请实施例公开的又一种数据入库方法的流程图;
图6为本申请实施例公开的一种数据入库***的结构图;
图7为本申请实施例公开的一种具体的数据入库***的结构图;
图8为本申请实施例公开的一种电子设备的结构图;
图9为本申请实施例公开的另一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在现有技术中,利用开源的flume进行数据的前期采集,但是flume不支持写入parquet格式,若将flume写入的数据转换为impala支持的parquet格式的数据,一种常见的方案是通过改写flume agent来增加支持parquet格式的功能,这种方案改写成本高,还需自己编写***,如果存在大量的历史数据,会导致大量文件句柄打开,可能造成服务器宕机;另一种常见的方案是基于spark直接读取kafka,而这种方案对资源消耗较大,1G的数据通常需要消耗5G的内存。
因此,本申请实施例公开了一种数据入库方法,实现将flume采集到的sequence格式数据转换为能够节省存储空间、提升后续数据分析效率的parquet格式数据,无需花费改写成本,同时避免了对资源的消耗。
参见图1所示,本申请实施例公开的一种数据入库方法包括:
S11:将采集到的数据保存至预先按照分区策略创建的临时数据表中;所述临时数据表的存储格式为sequence格式;
本步骤中,将flume***采集到的数据保存至存储格式为sequence格式的临时数据表中,上述过程可以具体为:通过flume***实时读取kafka的数据,并将数据写入临时数据表中指定的目录中。可以理解的是,本实施例预先在impala中创建临时数据表,并将临时数据表的存储格式指定为sequence格式,具体地,先在impala中创建一个临时库,并进一步在临时库中创建临时数据表。
需要说明的是,本实施例创建临时数据表时,由于数据量较大,将根据一定的分区策略来创建数据表,以实现分区存储。其中,分区策略包括但不限于分区周期、分区列。
本实施例中,用户可以预先在flume中设定相应的数据写入配置,以便根据数据写入配置将采集到的数据写入临时库中临时数据表对应的分区目录下。其中,数据写入配置包括文件切割周期和目录切割周期中的至少一项,例如,可以将文件切割周期设定为30s,将目录切割周期设定为1分钟,当然,也可以将文件切割大小作为数据写入配置的参数之一,例如,当文件达到256M生成一个文件,关闭临时文件,进行文件的切割。在具体实施中,可根据具体情况将上述配置参数设定为其他合适的数值,本发明在此不做具体限定。在后续数据读取过程中,仅当临时文件关闭后才能实现对临时文件的读取,若临时文件一直在写入数据迟迟未关闭,将导致数据读取将会相应的延迟,也就是说,将文件切割周期设定合适的值可以保证数据读取和写入相对并发进行,节省数据处理时间。
S12:生成入库任务,并根据所述入库任务将所述临时数据表中的数据导入至目标库中预先按照所述分区策略创建的目标数据表中;所述目标数据表的存储格式为parquet格式。
本步骤中,生成数据的入库任务,根据入库任务将临时数据表中存储的sequence数据写入至目标库下的目标数据表中。可以理解的是,本实施例预先在impala中创建目标库,并根据临时数据表在目标库中创建相对应的目标数据表,并将存储格式指定为parquet格式。
本实施例中,预先根据用户的需求个性化设定的入库任务配置表,入库任务配置表中的参数可以包括但不限于:临时库名、目标库名、临时数据表表名、入库语句、数据偏移分钟数、入库任务开始时间、入库任务周期、入库任务偏移周期、入库任务等待秒数、原始数据保留时间等。其中,数据偏移分钟数包括数据向前偏移分钟数和数据向后偏移分钟数,用于设定入库的数据的时间,例如,若数据向前偏移分钟数为五分钟,数据向后偏移分钟数为三分钟,则表明当前时间之前五分钟至当前时间之后三分钟的数据为允许入库的数据;入库任务周期表示入库任务多久生成一次,例如,将入库任务周期设定为60s,则表示一分钟生成一个入库任务;入库任务偏移周期表示当前入库任务入库的数据时间与当前时间的偏移量;入库任务等待秒数表示入库任务生成之后数据开始入库之前需要等待的时间。具体地,本实施例通过读取预设的入库任务配置表,生成对应的入库任务。除此之外,本实施例提供的入库任务配置表中的配置参数还可以包括文件合并条件,用于将较小的文件进行合并,减少文件碎片。
进一步地,在上述数据入库进行过程中,本实施例还可以基于预设数据清洗条件对数据进行过滤,以过滤异常数据。例如,可根据数据偏移分钟数将不符合入库时间的脏数据过滤掉。
另外,本实施例在数据入库执行完成之后,还将临时数据表中已成功入库的数据筛选出来进行清理,以及时清理内存,减少存储空间的占用。
通过以上方案可知,本申请提供的一种数据入库方法,包括:将采集到的数据保存至预先按照分区策略创建的临时数据表中;所述临时数据表的存储格式为sequence格式;生成入库任务,并根据所述入库任务将所述临时数据表中的数据导入至目标库中预先按照所述分区策略创建的目标数据表中;所述目标数据表的存储格式为parquet格式。由上可知,本申请预先按照分区策略创建了临时数据表,用于保存sequence格式的数据,还在目标库中按照上述分区策略创建了目标数据表,并将目标数据表的存储格式设定为parquet格式,根据入库任务将临时数据表中的数据导入目标数据表,实现将flume采集到的sequence格式数据转换为能够节省存储空间、提升后续数据分析效率的parquet格式数据,无需花费改写成本,同时避免了对资源的消耗。
本申请实施例公开了另一种数据入库方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图2所示,具体的:
S21:将采集到的数据保存至预先按照分区策略创建的临时数据表中;所述临时数据表的存储格式为sequence格式;
S22:根据预先配置的任务开始时间以及当前时间判断是否生成入库任务;
参见图3所示,步骤中S22的进一步详细流程可以包括:
S221:获取任务开始时间和调度时间的间隔分钟数;所述调度时间为当前时间向后偏移预定时间得到的时间;
S222:确定所述间隔分钟数对预先配置的任务周期进行求余计算得到的计算结果;
S223:若计算结果为零,则允许生成入库任务。
可以理解的是,本实施例获取预设的任务开始时间,并根据当前时间向后偏移预定时间得到调度时间,具体地,上述预定时间可以为一分钟,即调度时间为当前时间向后偏移一分钟得到的时间。进一步确定任务开始时间和调度时间的间隔分钟数,利用间隔分钟数除以任务周期,得到余数,若余数为零,则允许生成入库任务。
S23:如果是,则初始化共享队列,并生成生产者进程和消费者进程;
S24:利用所述生产者进程根据入库任务配置生成入库任务,并将所述入库任务写入所述共享队列中;
S25:利用所述消费者进程执行所述共享队列中的所述入库任务,以便将所述临时数据表中的数据导入至目标库中预先按照所述分区策略创建的目标数据表中;所述目标数据表的存储格式为parquet格式。
可以理解的是,本实施例在入库时采用生产者消费者模式,并创建共享队列作为数据的中转,相应的,根据入库任务生成生产者进程和消费者进程,进而利用生产者进程实现入库任务的生成以及入库任务写入共享队列的过程,并利用消费者进程读取并执行共享队列的入库任务,实现将数据从临时数据包写入目标数据表的过程。通过生产者消费者模式,能够提高数据入库的效率。
图4提供了一种具体的数据入库方法,参见图4所示,左侧为主控进程的执行流程图,用于在任务开始前初始化共享队列的大小,生成并启动消费者进程和生产者进程,并检测是否接收到退出信号,若接收到***指示的退出信号,则向子进程发送退出信号,在子进程全部退出或子进程未全部退出但发送退出信号后超过预定的时间之后,结束整个主控进程;若未接收到退出信号,则对消费者进程和生产者进行进行控制,例如,移除已退出的消费者进程;在任务堆积过多时,生成一定数量的消费者进行。这是因为消费者进程将队列数据入库的过程执行较慢,而生产者进程生产任务的过程执行较快,容易造成任务的堆积,因此需生成较多的消费者进程,加快对任务的处理速度。
如图4所示,中间则为生产者进程的工作流程图。生产者进程在未接收到退出信号时,获取当前时间,并从数据库的入库任务表中获取数据时间等于当前时间的任务,进一步基于预设的入库任务配置生成入库任务,将生成的入库任务写入至共享队列中,其中,在写入过程中若发生异常,则通过电话告警的方式进行异常提醒。若接收到退出信号,则退出生产者进程。
如图4所示,右侧为消费者进程的工作流程图。消费者进程在未接收到退出信号时,进一步判断上次活跃时间距离当前时间是否大于预设阈值,例如,判断上次活跃时间是否超过10分钟,如果是,则退出消费者进程;如果否,则从共享队列中读取入库任务,并根据预设配置中任务的执行周期和偏转周期确定最终执行任务的时间,并将执行任务的过程通过日志的方式进行记录。若入库成功,则将该任务的状态设置为成功,并将入库成功的数据从内存中删除,进一步将当前任务的执行时间更新为上次活跃时间;若入库失败,则生成相应的告警信息。
本申请实施例公开了又一种数据入库方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图5所示,具体的:
S31:将采集到的数据保存至预先按照分区策略创建的临时数据表中;所述临时数据表的存储格式为sequence格式;
S32:生成入库任务,并根据所述入库任务将所述临时数据表中的数据导入至目标库中预先按照所述分区策略创建的目标数据表中;所述目标数据表的存储格式为parquet格式;
S33:记录数据从所述临时数据表中导入至所述目标数据表中的过程,生成入库日志;
S34:基于所述入库日志获取入库失败的待补录入库任务,对所述待补录入库任务的数据进行重新导入操作。
本实施例中,将数据的入库过程进行记录并保存生成对应的入库日志,所述入库日志中保存了入库的过程以及入库任务是否成功执行的状态信息,从而后续从入库日志中查找入库状态为失败的入库任务,对其进行补录操作,避免数据丢失。当然,本实施例除了对入库过程进行记录生成日志之外,还可以自动将入库失败的任务筛选出来,生成补录任务列表,从而本实施例可以直接从补录任务列表中获取并执行待补录任务,省去了二次查找的过程。
下面对本申请实施例提供的一种数据入库***进行介绍,下文描述的一种数据入库***与上文描述的一种数据入库方法可以相互参照。
参见图6所示,本申请实施例提供的一种数据入库***包括:
数据保存模块101,用于将采集到的数据保存至预先按照分区策略创建的临时数据表中;所述临时数据表的存储格式为sequence格式;
数据入库模块102,用于生成入库任务,并根据所述入库任务将所述临时数据表中的数据导入至目标库中预先按照所述分区策略创建的目标数据表中;其中,所述目标数据表的存储格式为parquet格式。
关于上述模块101至102的具体内容可参考前述实施例提供的具体实施步骤,在此不再进行赘述。
本申请实施例公开了一种具体的数据入库***,如图7所示,具体的:本实施例提供的数据入库***包括接口配置页面,用于接收用户的个性化配置;任务查看页面,用于对入库任务进行显示,以便用户查看任务的状态和详情;任务生成进程,用于生成入库任务,并将入库任务写入任务表中;任务入库进行,用于执行入库任务,实现将数据从sequence格式数据转换为parquet格式数据的功能,同时执行数据清洗过程;任务补录进程,用于补录入库失败的任务,避免数据丢失;任务清理进程,用于对入库成功的任务和数据、分区进行清理;日志收集进程,用于基于入库过程记录信息,生成入库日志;监控告警进程,用于在入库失败或入库过程出现异常时发送告警信息;进程重启进程,用于在进程异常关闭后对进程进行重新启动;运营数据管理模块,用于利用日志收集进程、监控告警进程和进程重启进行实现***的运营维护;DB配置库,用于存储用户个性化的预设配置;DB日志库,用于存储、任务查看页面;另外,DB操作层、impala操作层和公共组件层为***的底层支撑件,其中封装了DB操作方法、impala操作方法以及***所需的公共组件,是***实现的基础。
本申请还提供了一种电子设备,参见图8所示,本申请实施例提供的一种电子设备包括:
存储器100,用于存储计算机程序;
处理器200,用于执行所述计算机程序时可以实现上述实施例所提供的任一种数据入库方法步骤。
具体的,存储器100包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机可读指令,该内存储器为非易失性存储介质中的操作***和计算机可读指令的运行提供环境。处理器200在一些实施例中可以是一中央处理器(CentralProcessing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,为电子设备提供计算和控制能力,执行所述存储器100中保存的计算机程序时,可以实现上述实施例所提供的任一种数据入库方法步骤。
在上述实施例的基础上,作为优选实施方式,参见图9所示,所述电子设备还包括:
输入接口300,与处理器200相连,用于获取外部导入的计算机程序、参数和指令,经处理器200控制保存至存储器100中。该输入接口300可以与输入装置相连,接收用户手动输入的参数或指令。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是键盘、触控板或鼠标等。
显示单元400,与处理器200相连,用于显示处理器200处理的数据以及用于显示可视化的用户界面。该显示单元400可以为LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。
网络端口500,与处理器200相连,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(MHL)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术等。
图9仅示出了具有组件100-500的电子设备,本领域技术人员可以理解的是,图9示出的结构并不构成对电子设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本申请还提供了一种计算机可读存储介质,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例所提供的任一种数据入库方法步骤。
本申请预先按照分区策略创建了临时数据表,用于保存sequence格式的数据,还在目标库中按照上述分区策略创建了目标数据表,并将目标数据表的存储格式设定为parquet格式,根据入库任务将临时数据表中的数据导入目标数据表,实现将flume采集到的sequence格式数据转换为能够节省存储空间、提升后续数据分析效率的parquet格式数据,无需花费改写成本,同时避免了对资源的消耗。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的***而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (11)
1.一种数据入库方法,其特征在于,包括:
将采集到的数据保存至预先按照分区策略创建的临时数据表中;所述临时数据表的存储格式为sequence格式;
生成入库任务,并根据所述入库任务将所述临时数据表中的数据导入至目标库中预先按照所述分区策略创建的目标数据表中;所述目标数据表的存储格式为parquet格式;
其中,所述将采集到的数据保存至预先按照分区策略创建的临时数据表中,包括:
根据预设写入配置将采集到的数据保存至预先按照分区策略创建的临时数据表中;其中,所述预设写入配置包括文件分割周期和目录分割周期中的至少一项;其中,设置合适的所述文件分割周期以实现不同的文件的数据写入过程和数据读取过程相对并发进行;同一文件的数据写入过程和数据读取过程不能同时进行;
其中,所述生成入库任务,包括:
根据预设的入库任务配置表,生成对应的入库任务;其中,所述入库任务配置表中的参数包括文件合并条件;所述文件合并条件用于确定所述临时数据表中需要进行合并的分割后文件,并将所述分割后文件进行合并以减少文件碎片。
2.根据权利要求1所述的数据入库方法,其特征在于,所述生成入库任务之前,还包括:
根据预先配置的任务开始时间以及当前时间判断是否生成入库任务。
3.根据权利要求2所述的数据入库方法,其特征在于,所述根据预先配置的任务开始时间以及当前时间判断是否生成入库任务,包括:
获取所述任务开始时间和调度时间的间隔分钟数;所述调度时间为所述当前时间向后偏移预定时间得到的时间;
确定所述间隔分钟数对预先配置的任务周期进行求余计算得到的计算结果;
若计算结果为零,则允许生成所述入库任务。
4.根据权利要求1所述的数据入库方法,其特征在于,所述根据所述入库任务将所述临时数据表中的数据导入至目标库中预先按照所述分区策略创建的目标数据表中的过程中,还包括:
基于预设数据清洗条件对数据进行过滤,以过滤异常数据。
5.根据权利要求1所述的数据入库方法,其特征在于,所述根据所述入库任务将所述临时数据表中的数据导入至目标库中预先按照所述分区策略创建的目标数据表中,包括:
初始化共享队列,并生成生产者进程和消费者进程;
利用所述生产者进程根据入库任务配置生成入库任务,并将所述入库任务写入所述共享队列中;
利用所述消费者进程执行所述共享队列中的所述入库任务,以便将所述临时数据表中的数据导入至所述目标数据表中。
6.根据权利要求1所述的数据入库方法,其特征在于,所述根据所述入库任务将所述临时数据表中的数据导入至目标库中预先按照所述分区策略创建的目标数据表中之后,还包括:
对所述临时数据表中已经成功入库的数据进行清理操作。
7.根据权利要求1所述的数据入库方法,其特征在于,还包括:
记录数据从所述临时数据表中导入至所述目标数据表中的过程,生成入库日志。
8.根据权利要求1至7任一项所述的数据入库方法,其特征在于,还包括:
获取入库失败的待补录入库任务,对所述待补录入库任务的数据进行重新导入操作。
9.一种数据入库***,其特征在于,包括:
数据保存模块,用于将采集到的数据保存至预先按照分区策略创建的临时数据表中;所述临时数据表的存储格式为sequence格式;
数据入库模块,用于生成入库任务,并根据所述入库任务将所述临时数据表中的数据导入至目标库中预先按照所述分区策略创建的目标数据表中;其中,所述目标数据表的存储格式为parquet格式;
其中,所述数据保存模块,具体用于根据预设写入配置将采集到的数据保存至预先按照分区策略创建的临时数据表中;其中,所述预设写入配置包括文件分割周期和目录分割周期中的至少一项;其中,设置合适的所述文件分割周期以实现不同的文件的数据写入过程和数据读取过程相对并发进行;同一文件的数据写入过程和数据读取过程不能同时进行;
其中,所述数据入库模块,具体用于根据预设的入库任务配置表,生成对应的入库任务;其中,所述入库任务配置表中的参数包括文件合并条件;所述文件合并条件用于确定所述临时数据表中需要进行合并的分割后文件,并将所述分割后文件进行合并以减少文件碎片。
10.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至8任一项所述数据入库方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述数据入库方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910452637.7A CN110162563B (zh) | 2019-05-28 | 2019-05-28 | 一种数据入库方法、***及电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910452637.7A CN110162563B (zh) | 2019-05-28 | 2019-05-28 | 一种数据入库方法、***及电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110162563A CN110162563A (zh) | 2019-08-23 |
CN110162563B true CN110162563B (zh) | 2023-11-17 |
Family
ID=67629802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910452637.7A Active CN110162563B (zh) | 2019-05-28 | 2019-05-28 | 一种数据入库方法、***及电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110162563B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110633280A (zh) * | 2019-09-11 | 2019-12-31 | 北京亚信数据有限公司 | 一种批量数据采集方法、装置、可读存储介质及计算设备 |
CN111368505A (zh) * | 2020-02-21 | 2020-07-03 | 成都卫士通信息产业股份有限公司 | 一种pdf文档手写签名方法、装置、设备、介质 |
CN112632132B (zh) * | 2020-12-31 | 2024-04-12 | 中国农业银行股份有限公司 | 一种异常导入数据的处理方法、装置及设备 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999519A (zh) * | 2011-09-15 | 2013-03-27 | 上海盛付通电子商务有限公司 | 一种数据库的读写方法及*** |
CN103778066A (zh) * | 2014-01-24 | 2014-05-07 | 中国工商银行股份有限公司 | 数据处理方法和装置 |
CN105378716A (zh) * | 2014-03-18 | 2016-03-02 | 华为技术有限公司 | 一种数据存储格式的转换方法及装置 |
CN105550293A (zh) * | 2015-12-11 | 2016-05-04 | 深圳市华讯方舟软件技术有限公司 | 一种基于Spark-SQL大数据处理平台的后台刷新方法 |
CN105608223A (zh) * | 2016-01-12 | 2016-05-25 | 北京中交兴路车联网科技有限公司 | 针对kafka的Hbase数据库的入库方法和*** |
CN105915647A (zh) * | 2016-06-17 | 2016-08-31 | 浙江万朋教育科技股份有限公司 | 一种提升短信发送性能的***及方法 |
CN106844682A (zh) * | 2017-01-25 | 2017-06-13 | 北京百分点信息科技有限公司 | 数据交换方法、装置及*** |
CN106951552A (zh) * | 2017-03-27 | 2017-07-14 | 重庆邮电大学 | 一种基于Hadoop的用户行为数据处理方法 |
CN107077479A (zh) * | 2014-09-17 | 2017-08-18 | 华为技术有限公司 | 使用分立数据库***基于查询需求从行存储数据库自适性建立并更新列存储数据库的基于语句的迁移 |
CN109542889A (zh) * | 2018-10-11 | 2019-03-29 | 平安科技(深圳)有限公司 | 流式数据列存储方法、装置、设备和存储介质 |
DE102018214011A1 (de) * | 2017-09-29 | 2019-04-04 | Intel Corporation | Techniken für dynamische Zugriffe auf Datenbanken in mehreren Speicherformaten |
CN109635581A (zh) * | 2018-12-12 | 2019-04-16 | 深圳市网心科技有限公司 | 一种数据处理方法、设备、***及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9342544B2 (en) * | 2014-01-30 | 2016-05-17 | International Business Machines Corporation | Parallel load in a column-store database |
-
2019
- 2019-05-28 CN CN201910452637.7A patent/CN110162563B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999519A (zh) * | 2011-09-15 | 2013-03-27 | 上海盛付通电子商务有限公司 | 一种数据库的读写方法及*** |
CN103778066A (zh) * | 2014-01-24 | 2014-05-07 | 中国工商银行股份有限公司 | 数据处理方法和装置 |
CN105378716A (zh) * | 2014-03-18 | 2016-03-02 | 华为技术有限公司 | 一种数据存储格式的转换方法及装置 |
CN107077479A (zh) * | 2014-09-17 | 2017-08-18 | 华为技术有限公司 | 使用分立数据库***基于查询需求从行存储数据库自适性建立并更新列存储数据库的基于语句的迁移 |
CN105550293A (zh) * | 2015-12-11 | 2016-05-04 | 深圳市华讯方舟软件技术有限公司 | 一种基于Spark-SQL大数据处理平台的后台刷新方法 |
WO2017096941A1 (zh) * | 2015-12-11 | 2017-06-15 | 深圳市华讯方舟软件技术有限公司 | 一种基于Spark-SQL大数据处理平台的后台刷新方法 |
CN105608223A (zh) * | 2016-01-12 | 2016-05-25 | 北京中交兴路车联网科技有限公司 | 针对kafka的Hbase数据库的入库方法和*** |
CN105915647A (zh) * | 2016-06-17 | 2016-08-31 | 浙江万朋教育科技股份有限公司 | 一种提升短信发送性能的***及方法 |
CN106844682A (zh) * | 2017-01-25 | 2017-06-13 | 北京百分点信息科技有限公司 | 数据交换方法、装置及*** |
CN106951552A (zh) * | 2017-03-27 | 2017-07-14 | 重庆邮电大学 | 一种基于Hadoop的用户行为数据处理方法 |
DE102018214011A1 (de) * | 2017-09-29 | 2019-04-04 | Intel Corporation | Techniken für dynamische Zugriffe auf Datenbanken in mehreren Speicherformaten |
CN109542889A (zh) * | 2018-10-11 | 2019-03-29 | 平安科技(深圳)有限公司 | 流式数据列存储方法、装置、设备和存储介质 |
CN109635581A (zh) * | 2018-12-12 | 2019-04-16 | 深圳市网心科技有限公司 | 一种数据处理方法、设备、***及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110162563A (zh) | 2019-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110162563B (zh) | 一种数据入库方法、***及电子设备和存储介质 | |
US9389916B1 (en) | Job scheduling management | |
US8204907B1 (en) | Systems and methods for collecting file access history information | |
CN110825694A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN110427258B (zh) | 基于云平台的资源调度控制方法及装置 | |
CN110209654A (zh) | 一种文本文件数据入库方法、***及电子设备和存储介质 | |
CN112068852B (zh) | 基于国产服务器的开源软件安装方法、***及设备和介质 | |
JP5619179B2 (ja) | 計算機システム、ジョブ実行管理方法、及びプログラム | |
CN103152391A (zh) | 一种日志输出方法和装置 | |
CN109033814A (zh) | 智能合约触发方法、装置、设备及存储介质 | |
CN116089040A (zh) | 业务流程的调度方法及其装置、电子设备及存储介质 | |
CN110222046B (zh) | 列表数据的处理方法、装置、服务器和存储介质 | |
CN102541542B (zh) | 存储和发布内容存储设备的内容 | |
US10430115B2 (en) | System and method for optimizing multiple packaging operations in a storage system | |
JP2002269305A (ja) | ワークフロー自動監視制御方法、装置、及びプログラム | |
CN103236938A (zh) | 一种基于缓存及异步处理技术的用户行为采集方法及*** | |
US20100192151A1 (en) | Method for arranging schedules and computer using the same | |
CN108052574A (zh) | 基于Kafka技术的从FTP服务器导入海量数据的ETL***及实现方法 | |
CN110597830B (zh) | 实时指标生成方法和***、电子设备及存储介质 | |
US10496467B1 (en) | Monitoring software computations of arbitrary length and duration | |
CN108664322A (zh) | 数据处理方法及*** | |
US10031811B1 (en) | Systems and methods for enhancing electronic discovery searches | |
CN114443580A (zh) | 一种数据清理方法、装置、介质及计算设备 | |
CN103678478A (zh) | 信息处理装置、信息处理方法和程序 | |
US8495033B2 (en) | Data processing |
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 |