CN112328542A - 一种把异构数据文件中的数据导入到数据库的方法 - Google Patents
一种把异构数据文件中的数据导入到数据库的方法 Download PDFInfo
- Publication number
- CN112328542A CN112328542A CN202011337828.8A CN202011337828A CN112328542A CN 112328542 A CN112328542 A CN 112328542A CN 202011337828 A CN202011337828 A CN 202011337828A CN 112328542 A CN112328542 A CN 112328542A
- Authority
- CN
- China
- Prior art keywords
- file
- data
- queue
- steps
- database
- 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
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 7
- 230000008676 import Effects 0.000 claims abstract description 7
- 238000004364 calculation method Methods 0.000 claims description 2
- 230000036541 health Effects 0.000 claims description 2
- 238000003780 insertion Methods 0.000 claims description 2
- 230000037431 insertion Effects 0.000 claims description 2
- 230000000737 periodic effect Effects 0.000 claims description 2
- 238000007726 management method Methods 0.000 description 27
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000005265 energy consumption Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000007958 sleep Effects 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 238000013480 data collection Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
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/11—File system administration, e.g. details of archiving or snapshots
- G06F16/113—Details of archiving
-
- 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/16—File or folder operations, e.g. details of user interfaces specifically adapted to 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/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种把异构数据文件中的数据导入到数据库的方法,包括获取配置信息,根据配置信息初始化文件搜索器、文件分配器、N个文件队列和N个文件入库任务;文件搜索器在指定路径下搜索数据文件,搜索到数据文件后进行有效性检查,然后把有效的数据文件交给文件分配器;文件分配器依据负载均衡算法把数据文件路径放入相应文件队列中;文件入库任务读取对应文件队列中数据文件并导入到数据库中。本发明通过负载均衡算法实现数据文件的并行导入,充分利用了硬件资源,大大提高存储效率。
Description
技术领域
本发明属于计算机数据存储技术领域,尤其是涉及一种把异构数据文件中的数据导入到数据库的方法。
背景技术
在城市轨道交通能源管理系统领域,数据采集和存储作为基础性工作,其准确度和处理效率对于保证系统运行具有重要的作用。随着能源管理系统自身技术的发展,数据采集存储的数据种类多样化,并且数据量庞大,不仅要采集能源的相关数据(如电表、水表、燃气表等设备的能源数据),还要采集周围环境信息等,包括各种传感器、重点用能设备或系统等。
能源管理系统的采集服务采用分布式架构,在每个车站设有采集服务,采集服务将采集的各种数据以源数据的形式传至中心平台;中心平台首先源数据进行各种统计分析,然后把各种源数据及统计分析的结果都缓存为异构数据文件(把数据内容和结构不同的文件称为异构数据文件),最后对异构数据文件进行统一数据入库操作。
虽然现有存储技术中关于异构数据文件导入数据库的方案较多,但在城市轨道交通能源管理系统领域的匹配度不高,并且效率较低,因此,有必要提供一种把异构数据文件中的数据导入到数据库的方法,充分利用了硬件资源,大大提高存储效率。
发明内容
有鉴于此,本发明旨在提出一种把异构数据文件中的数据导入到数据库的方法,快速的把大量数据文件导入到数据库,充分利用硬件资源,提升数据库的性能。
为达到上述目的,本发明的技术方案是这样实现的:
一种把异构数据文件中的数据导入到数据库的方法,包括以下步骤:
A.获取配置信息,根据配置信息初始化文件搜索器、文件分配器、N个文件队列和N个文件入库任务;
B.文件搜索器在指定路径下搜索数据文件,搜索到数据文件后进行数据文件的有效性检查,然后把有效的数据文件交给文件分配器;
C.文件分配器依据负载均衡算法把数据文件路径分配到相应的文件队列中;
D.将数据均衡文件入库任务定时查询对应文件队列的数据,如果文件队列存在数据,则根据数据文件路径读取数据文件中的数据,并导入到数据库中;
E.如果数据文件入库成功,则压缩文件并移动到的文件备份路径中;如果失败则给出告警信息,并把文件移动到文件失败路径中。
进一步的,所述步骤A的配置信息包括:搜索数据文件的路径、需要入库文件的文件类型描述以及对应文件队列的最大深度、文件备份的路径、文件失败路径。
进一步的,每种所述文件类型创建一个文件队列和一个文件入库任务,为步骤C和步骤D根据文件类型归类入库做准备。
进一步的,所述的文件类型是根据数据文件名称的来划分的。
进一步的,所述步骤B中文件分配器用于对文件队列做周期性的健康检查,当发现故障文件队列时便动态的将它从文件队列群中剔除,以此来保证高可用性。
进一步的,所述步骤B中的数据文件采用SQlite数据库文件格式,其中包括一张管理表和多张源数据表。
进一步的,所述步骤C中负载均衡算法具体运算步骤包括:
C1.为N文件队列{Y1,Y2,...,YN}都分配一个权重{w1,w2,...,wN};同时为文件队列的最大负荷率{F1,F2,...,FN},文件队列的最大负荷率(Fi)等于权重wi*文件队列最大深度Ti;
C2.当数据文件Mk到来后,首先计算Mk对应的文件队列Yk的负荷率fk,如fk小于该文件队列的最大负荷率Fk时,则把Mk放到该文件队列Yk中,结束。否则进入步骤C3;
C3.更新文件队列的负荷率{f1,f2,...,fN},计算方法为:
C4.选取{f1,f2,...,fN}中数值最小的ft对应的文件队列Yt,把数据文件Mk放到文件队列Yt中。
进一步的,所述步骤D具体运行步骤包括:
D1.文件入库任务从对应的文件队列中获取数据文件的路径;
D2.文件入库任务读取该数据文件中的管理表数据到管理队列中;
D3.文件入库任务从管理队列中获取一条管理信息;
D4.文件入库任务根据管理信息中的源数据表名称,获取该数据文件中的源数据表中的数据到数据缓存队列中;
D5.文件入库任务根据管理信息中的源数据表操作类型,把数据缓存队列的数据导入到数据库的目标数据表;
D6.文件入库任务从管理队列中删除该条管理信息,如果管理队列中还有数据,则执行步骤D3,否则返回。
进一步的,所述步骤D2的管理表数据包括:源数据表名称、目标数据表名称、操作类型,所述操作类型包括插入、更新、删除。
进一步的,所述步骤D的文件入库任务每次读取源数据表的数据最多10000条,如果源数据表中的数据大于10000则分多次进行操作。
相对于现有技术,本发明所述的一种把异构数据文件中的数据导入到数据库的方法具有以下优势:
(1)本发明所述的一种把异构数据文件中的数据导入到数据库的方法通过负载均衡算法以及文件的筛选分配能够把短时间内产生的种类多、数量庞大的能耗相关数据文件快速的导入到数据库中。
(2)本发明所述的一种把异构数据文件中的数据导入到数据库的方法以文件形式把能耗数据导入到数据库的方式能够减轻数据库因频繁操作所带来的压力,使数据库在写入能耗相关数据的同时也能够快速的相应其它读操作,从而提升数据库的性能。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例所述的异构数据文件导入数据库的方法流程图;
图2为本发明实施例所述的数据文件导入数据库的方法流程图
图3为本发明实施例所述的数据文件结构图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。
下面将参考附图并结合实施例来详细说明本发明。
如图1,步骤1:首先读取配置信息,并根据配置信息初始化文件搜索器、文件分配器、N个文件队列和N个文件入库任务。一个具体的实施例中,配置信息中定义文件搜索路径为D:/PqssFiles,文件备份路径为D:/Backup,文件失败路径为D:/Failure,需要处理的入库文件类型7种:源电量文件、源负荷文件和统计电量文件、统计负荷文件、告警文件、传感器数据文件以及默认文件,三种文件对应的三种文件类别分别为:DR_E、DR_LD、DA_E、DA_LD、ALARM、DR_SENSOR、DEFATLU。对应的七种文件类型的权重w以及文件队列的最大深度t分为为:DR_E{5,50};DR_LD{4,50}、DA_E{5,50}、DA_LD{4,50}、ALARM{1,100}、DR_SENSOR{2,80}、DEFATLU{3,100}。
每个文件队列的深度是可以有用户定义的,在一个优选的实施例中,每个文件队列的深度是根据该类型数据采集的密度、数量以及文件存储数据的长度来决定。
在创建文件队列和文件入库任务时,一种文件类型对应的创建一个文件队列和一个文件入库任务,文件入库任务只具有读取相应的文件队列的数据权限。
如图2,步骤2:文件搜索器定时轮训数据文件目录,如果不存在数据文件,则休眠100毫秒然后继续轮训;如果存在一个数据文件,检查数据文件无异常后,提交给文件分配器,然后继续搜索数据文件。如数据文件异常,则把异常文件移动到文件失败路径为D:/Failure中并提示告警信息。
步骤3:文件分配器首先根据数据文件Mk名称判断该数据文件对应的数据队列Yk的负载率fk,如果该队列的负载率fk小于该文件队列最大负载率Fk,则把Mk放入到对应的文件队列Yk中,结束文件分配。否则更新全部的文件队列的负荷率{f1,f2,...,fN},更新方法为:其中ti为第i个文件队列中的深度。然后选取{f1,f2,...,fN}中数值最小的ft对应的文件队列Yt,把数据文件Mk放到文件队列Yt中。
步骤4:每个文件入库任务定时轮询对应的文件队列,如文件队列中不存在数据,则休眠100毫秒然后继续轮训;如存在数据,则根据文件路径读取数据文件。
如图3,数据文件采用SQlite数据库文件格式,所有的数据文件的结构包括一张管理表、一张或多张源数据表。
数据文件中的管理表内容包括:源数据表名称、目标数据表名称、操作类型(插入、更新、删除)、优先级。
N个文件入库任务的功能是相同的。文件入库任务的步骤包括:
a.文件入库任务从对应的文件队列中获取数据文件的全路径;
b.文件入库任务读取该数据文件中的管理表数据到管理队列中;管理队列的深度为固定值20,说明源数据表的最大个数为20。
c.文件入库任务从管理队列中获取一条管理信息;
d.文件入库任务根据管理信息中的源数据表名称,读取该数据文件中的源数据表中的数据到数据缓存队列中。数据缓存队列的深度为固定值10000。
e.文件入库任务根据管理信息的操作类型,把数据缓存队列的数据导入到数据库的目标数据表;
f.文件入库任务从管理队列中删除该条管理信息,如果管理队列还有数据,则执行步骤c,否则返回。
步骤5:当文件入任务程把一个数据文件中的数据全部导入到数据库后,如果入库全部成功,则把数据文件压缩后移动到文件备份路径下;而如果数据文件入库过程中出现错误,则把数据文件移动到入库失败路径下,等待对文件的后续操作处理;
文件压缩采用zip格式进行压缩。
特别的,可根据系统数据量以及速度等要求进行多服务的分布式部署,以减轻系统负担,提高入库速度。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种把异构数据文件中的数据导入到数据库的方法,其特征在于:包括以下步骤:
A.获取配置信息,根据配置信息初始化文件搜索器、文件分配器、N个文件队列和N个文件入库任务;
B.文件搜索器在指定路径下搜索数据文件,搜索到数据文件后进行数据文件的有效性检查,然后把有效的数据文件交给文件分配器;
C.文件分配器依据负载均衡算法把数据文件路径分配到相应的文件队列中;
D.将数据均衡文件入库任务定时查询对应文件队列的数据,如果文件队列存在数据,则根据数据文件路径读取数据文件中的数据,并导入到数据库中;
E.如果数据文件入库成功,则压缩文件并移动到的文件备份路径中;如果失败则给出告警信息,并把文件移动到文件失败路径中。
2.根据权利要求1所述的一种把异构数据文件中的数据导入到数据库的方法,其特征在于:所述步骤A的配置信息包括:搜索数据文件的路径、需要入库文件的文件类型描述以及对应文件队列的最大深度、文件备份的路径、文件失败路径。
3.根据权利要求2所述的一种把异构数据文件中的数据导入到数据库的方法,其特征在于:每种所述文件类型创建一个文件队列和一个文件入库任务,为步骤C和步骤D根据文件类型归类入库做准备。
4.根据权利要求3所述的一种把异构数据文件中的数据导入到数据库的方法,其特征在于:所述的文件类型是根据数据文件名称的来划分的。
5.根据权利要求1所述的一种把异构数据文件中的数据导入到数据库的方法,其特征在于:所述步骤B中文件分配器用于对文件队列做周期性的健康检查,当发现故障文件队列时便动态的将它从文件队列群中剔除,以此来保证高可用性。
6.根据权利要求1所述的一种把异构数据文件中的数据导入到数据库的方法,其特征在于:所述步骤B中的数据文件采用SQlite数据库文件格式,其中包括一张管理表和多张源数据表。
7.根据权利要求1所述的一种把异构数据文件中的数据导入到数据库的方法,其特征在于:所述步骤C中负载均衡算法具体运算步骤包括:
C1.为N文件队列{Y1,Y2,...,YN}都分配一个权重{w1,w2,...,wN};同时为文件队列的最大负荷率{F1,F2,...,FN},文件队列的最大负荷率(Fi)等于权重wi*文件队列最大深度Ti;
C2.当数据文件Mk到来后,首先计算Mk对应的文件队列Yk的负荷率fk,如fk小于该文件队列的最大负荷率Fk时,则把Mk放到该文件队列Yk中,结束。否则进入步骤C3;
C3.更新文件队列的负荷率{f1,f2,...,fN},计算方法为:
C4.选取{f1,f2,...,fN}中数值最小的ft对应的文件队列Yt,把数据文件Mk放到文件队列Yt中。
8.根据权利要求1所述的一种把异构数据文件中的数据导入到数据库的方法,其特征在于:所述步骤D具体运行步骤包括:
D1.文件入库任务从对应的文件队列中获取数据文件的路径;
D2.文件入库任务读取该数据文件中的管理表数据到管理队列中;
D3.文件入库任务从管理队列中获取一条管理信息;
D4.文件入库任务根据管理信息中的源数据表名称,获取该数据文件中的源数据表中的数据到数据缓存队列中;
D5.文件入库任务根据管理信息中的源数据表操作类型,把数据缓存队列的数据导入到数据库的目标数据表;
D6.文件入库任务从管理队列中删除该条管理信息,如果管理队列中还有数据,则执行步骤D3,否则返回。
9.根据权利要求8所述的一种把异构数据文件中的数据导入到数据库的方法,其特征在于:所述步骤D2的管理表数据包括:源数据表名称、目标数据表名称、操作类型,所述操作类型包括插入、更新、删除。
10.根据权利要求8所述的一种把异构数据文件中的数据导入到数据库的方法,其特征在于:所述步骤D的文件入库任务每次读取源数据表的数据最多10000条,如果源数据表中的数据大于10000则分多次进行操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011337828.8A CN112328542A (zh) | 2020-11-25 | 2020-11-25 | 一种把异构数据文件中的数据导入到数据库的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011337828.8A CN112328542A (zh) | 2020-11-25 | 2020-11-25 | 一种把异构数据文件中的数据导入到数据库的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112328542A true CN112328542A (zh) | 2021-02-05 |
Family
ID=74308888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011337828.8A Pending CN112328542A (zh) | 2020-11-25 | 2020-11-25 | 一种把异构数据文件中的数据导入到数据库的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112328542A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101256515A (zh) * | 2008-03-11 | 2008-09-03 | 浙江大学 | 多核处理器操作系统负载均衡的实现方法 |
CN103559217A (zh) * | 2013-10-17 | 2014-02-05 | 北京航空航天大学 | 一种面向异构数据库的海量组播数据入库实现方法 |
CN104376082A (zh) * | 2014-11-18 | 2015-02-25 | 中国建设银行股份有限公司 | 一种把数据源文件中的数据导入到数据库中的方法 |
CN109241191A (zh) * | 2018-09-13 | 2019-01-18 | 华东交通大学 | 一种分布式数据源异构同步平台及同步方法 |
CN109685326A (zh) * | 2018-11-30 | 2019-04-26 | 国网冀北电力有限公司经济技术研究院 | 一种基于多源异构数据模式下应用于配电网投资的方法 |
-
2020
- 2020-11-25 CN CN202011337828.8A patent/CN112328542A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101256515A (zh) * | 2008-03-11 | 2008-09-03 | 浙江大学 | 多核处理器操作系统负载均衡的实现方法 |
CN103559217A (zh) * | 2013-10-17 | 2014-02-05 | 北京航空航天大学 | 一种面向异构数据库的海量组播数据入库实现方法 |
CN104376082A (zh) * | 2014-11-18 | 2015-02-25 | 中国建设银行股份有限公司 | 一种把数据源文件中的数据导入到数据库中的方法 |
CN109241191A (zh) * | 2018-09-13 | 2019-01-18 | 华东交通大学 | 一种分布式数据源异构同步平台及同步方法 |
CN109685326A (zh) * | 2018-11-30 | 2019-04-26 | 国网冀北电力有限公司经济技术研究院 | 一种基于多源异构数据模式下应用于配电网投资的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105069703B (zh) | 一种电网海量数据管理方法 | |
US10044575B1 (en) | System for organizing and fast searching of massive amounts of data | |
CN103020204B (zh) | 一种对分布式顺序表进行多维区间查询的方法及其系统 | |
CN108628986A (zh) | 数据查询方法、装置、计算机设备和存储介质 | |
US9223801B2 (en) | Information management method and information management apparatus | |
CN104239377A (zh) | 跨平台的数据检索方法及装置 | |
CN107809467B (zh) | 一种云环境下容器镜像数据的删减方法 | |
CN109656958B (zh) | 数据查询方法以及系统 | |
JP2017037648A (ja) | ハイブリッドデータを保存するためのハイブリッドデータストレージシステム、方法及びプログラム | |
CN102467570A (zh) | 用于分布式数据仓库的连接查询系统和方法 | |
CN107451233A (zh) | 时间属性优先的时空轨迹数据文件在辅助存储设备中的存储方法 | |
Tang et al. | Deferred lightweight indexing for log-structured key-value stores | |
US20080065588A1 (en) | Selectively Logging Query Data Based On Cost | |
CN107491495B (zh) | 空间属性优先的时空轨迹数据文件在辅助存储设备中的存储方法 | |
US11709834B2 (en) | Method and database system for sequentially executing a query and methods for use therein | |
CN109213752A (zh) | 一种基于cim的数据清洗转换方法 | |
CN108009265B (zh) | 一种云计算环境下的空间数据索引方法 | |
CN107193898A (zh) | 基于分级复用的日志数据流的查询共享方法和系统 | |
US20180336248A1 (en) | Distributed in-memory-based complex data processing system and method | |
CN117078048A (zh) | 基于数字孪生的智慧城市资源管理方法及系统 | |
Cao et al. | Leveraging column family to improve multidimensional query performance in HBase | |
CN102004771B (zh) | 基于动态裁剪的移动对象反向近邻查询方法 | |
CN103345527B (zh) | 数据智能统计系统 | |
CN108733781B (zh) | 基于内存计算的集群时态数据索引方法 | |
CN113761079A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210205 |
|
RJ01 | Rejection of invention patent application after publication |