CN105279279B - 从低速数据源加载压缩数据文件的方法及装置 - Google Patents
从低速数据源加载压缩数据文件的方法及装置 Download PDFInfo
- Publication number
- CN105279279B CN105279279B CN201510785760.2A CN201510785760A CN105279279B CN 105279279 B CN105279279 B CN 105279279B CN 201510785760 A CN201510785760 A CN 201510785760A CN 105279279 B CN105279279 B CN 105279279B
- Authority
- CN
- China
- Prior art keywords
- file
- data
- low speed
- compression
- data source
- 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
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/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明提供了一种从低速数据源加载压缩数据文件的方法,所述方法包括:接收客户端发送的控制文件;解析所述控制文件,获取控制文件中的数据来源和数据类型;判断控制文件中是否包括低速数据源的压缩数据文件;在控制文件中包括低速数据源的压缩数据文件时,读取并缓存所述低速数据源的压缩数据文件。实现了在读取压缩格式数据文件时预读数据,并放入缓存,从而在连续的若干次读取数据的操作中,只需在第一次操作中真正从数据源读取文件内容,显著减少了对低速数据源的I/O次数,用高速的内存操作加以替代,极大地提升了性能。
Description
技术领域
本发明属于集群数据库领域,尤其是涉及一种从低速数据源加载压缩数据文件的方法及装置。
背景技术
集群数据库使用大量计算机节点提供高性能、大数据量的数据库服务。集群数据库的加载工具负责高性能地向集群数据库中加载大量数据。通过两台或者多台数据库服务器,提供透明的服务,集群向客户端提供的服务与单机系统向客户端提供的服务,从通讯协议上保持二进制兼容。在进行数据更新时,数据库客户端发出数据更新请求后,要等集群的每个节点全部更新后,才给客户端返回结果。
集群数据库的加载工具负责高性能地向集群数据库中加载大量数据。一个典型的集群数据库加载工具会解析用户所写的控制文件,确定待加载数据的来源、位置、类型等参数信息,然后读取数据文件,最后将数据文件中包含的数据加载进集群数据库。被加载的数据有各种不同的来源和格式,包括:数据来自不同的数据源,如本地文件系统、FTP服务、HDFS文件系统等;数据文件有各种压缩格式,如gzip格式、snappy格式、无压缩格式等。
发明内容
本发明实施例提供了一种从低速数据源加载压缩数据文件的方法及装置,以实现从低速数据源快速加载压缩数据文件的目的。
第一方面,本发明实施例提供了一种从低速数据源加载压缩数据文件的方法,所述方法包括:
接收客户端发送的控制文件;
解析所述控制文件,获取控制文件中的数据来源和数据类型;
判断控制文件中是否包括低速数据源的压缩数据文件;
在控制文件中是否包括低速数据源的压缩数据文件时,读取并缓存所述低速数据源的压缩数据文件。
进一步的,在读取并缓存低速数据源的压缩数据文件后,包括:
解压缩所述压缩数据文件,在集群数据库中加载解压缩后的数据值。
进一步的,所述解压缩所述压缩数据文件,加载解压缩后的数据值集群数据库,包括:
在已缓存的数据量少于需要读取的数据量时,解压缩所述压缩数据文件;
将解压缩后的数据添加至缓存结尾;
判断所述压缩数据文件是否已经读取完成,在完成后,清除所述解压缩缓存。
更进一步的,在接收客户端发送的控制文件之前,还包括:
加载数据文件工具,所述数据文件工具用于解析所述控制文件,获取控制文件中的数据来源和数据类型。
第二方面,本发明实施例提供了一种从低速数据源加载压缩数据文件的装置,所述装置包括:
控制文件接收模块,用于接收客户端发送的控制文件;
控制文件解析模块,用于解析所述控制文件,获取控制文件中的数据来源和数据类型;
判断模块,用于判断控制文件中是否包括低速数据源的压缩数据文件;
读取和缓存模块,用于在控制文件中是否包括低速数据源的压缩数据文件时,读取并缓存所述低速数据源的压缩数据文件。
进一步的,所述装置还包括:
加载模块,用于解压缩所述压缩数据文件,在集群数据库中加载解压缩后的数据值。
进一步的,所述加载模块用于:
在已缓存的数据量少于需要读取的数据量时,解压缩所述压缩数据文件;
将解压缩后的数据添加至缓存结尾;
判断所述压缩数据文件是否已经读取完成,在完成后,清除所述解压缩缓存。
进一步的,所述装置还包括:
工具加载模块,用于加载数据文件工具,所述数据文件工具用于解析所述控制文件,获取控制文件中的数据来源和数据类型。
采用本发明实施例所提供的技术方案,通过解析所述控制文件,获取控制文件中的数据来源和数据类型;判断控制文件中是否包括低速数据源的压缩数据文件;在控制文件中是否包括低速数据源的压缩数据文件时,读取并缓存所述低速数据源的压缩数据文件。实现了在读取压缩格式数据文件时预读数据,并放入缓存,从而在连续的若干次读取数据的操作中,只需在第一次操作中真正从数据源读取文件内容,显著减少了对低速数据源的I/O次数,用高速的内存操作加以替代,极大地提升了性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一实施例提供的从低速数据源加载压缩数据文件的方法的流程示意图;
图2是本发明第一实施例提供的从低速数据源加载压缩数据文件的方法中集群数据库加载工具的示意图;
图3是本发明第一实施例提供的从低速数据源加载压缩数据文件的方法中集群数据库加载工具的示意图;
图4是本发明第一实施例提供的从低速数据源加载压缩数据文件的方法中低速数据源读取和加载压缩格式数据文件示意图;
图5是本发明第一实施例提供的从低速数据源加载压缩数据文件的方法中预读缓存模块示例图;
图6是现有技术中从低速数据源加载压缩数据文件的方法的过程示意图表;
图7是本发明第一实施例提供的从低速数据源加载压缩数据文件的方法中从低速数据源读取和加载压缩格式数据文件的过程示意图;
图8是本发明第一实施例提供的从低速数据源加载压缩数据文件的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明第一实施例提供的从低速数据源加载压缩数据文件的方法的流程示意图,所述方法依靠相应的装置来实现。所述装置可由软件/硬件实现,并一般集成于集群数据库中。图2是本发明第一实施例提供的从低速数据源加载压缩数据文件的方法中集群数据库加载工具的示意图;图3是本发明第一实施例提供的从低速数据源加载压缩数据文件的方法中集群数据库加载工具的示意图;图4是本发明第一实施例提供的从低速数据源加载压缩数据文件的方法中低速数据源读取和加载压缩格式数据文件示意图;图5是本发明第一实施例提供的从低速数据源加载压缩数据文件的方法中预读缓存模块示例图;图6是现有技术中从低速数据源加载压缩数据文件的方法的过程示意图表;图7是本发明第一实施例提供的从低速数据源加载压缩数据文件的方法中从低速数据源读取和加载压缩格式数据文件的过程示意图。
参见图1、图2、图3、图4、图5、图6和图7,所述从低速数据源加载压缩数据文件的方法,包括:
步骤S101,接收客户端发送的控制文件。
用户可以对集群数据库中的数据进行增加、删除和修改。对集群数据库中的数据进行上述操作时,都需要使用集群数据库对应的客户端软件来实现彼此通信和信息交互。在用户需要对集群数据库中的数据进行操作时,用户在客户端进行操作,并通过客户端将控制文件发送到集群数据库。
步骤S102,解析所述控制文件,获取控制文件中的数据来源和数据类型。
通过步骤S101获取到客户端发送的控制文件。对控制文件中进行解析,获取所述控制文件中的数据来源和数据类型。
步骤S103,判断控制文件中是否包括低速数据源的压缩数据文件。
根据步骤S102获取所述控制文件中的数据来源和数据类型,判断控制文件中是否包括低速数据源的压缩数据文件。示例性的,判断控制文件中的数据来源是否来自低速数据源,如本地文件系统、FTP服务、HDFS文件系统等;数据文件是否为各种压缩格式,如gzip格式、snappy格式、无压缩格式等。
步骤S104,在控制文件中包括低速数据源的压缩数据文件时,读取并缓存所述低速数据源的压缩数据文件。
在控制文件中中包括低速数据源的压缩数据文件时,从低速的数据源(如HDFS文件系统),读取压缩格式(如gzip格式)的数据文件,并缓存所述数据文件。
本实施例实现了在读取压缩格式数据文件时预读数据,并放入缓存,从而在连续的若干次读取数据的操作中,只需在第一次操作中真正从数据源读取文件内容,显著减少了对低速数据源的I/O次数,用高速的内存操作加以替代,极大地提升了性能。
在本实施例的一个优选方案中,在读取并缓存低速数据源的压缩数据文件后,增加如下步骤:解压缩所述压缩数据文件,在集群数据库中加载解压缩后的数据值。将从低速数据源获取的压缩数据文件解压缩,解压缩后的数据文件可以直接加载到集群数据库中,实现对集群数据库中对数据修改和增加的目的。所述解压缩所述压缩数据文件,加载解压缩后的数据值集群数据库,可以具体包括:在已缓存的数据量少于需要读取的数据量时,解压缩所述压缩数据文件;将解压缩后的数据添加至缓存结尾;判断所述压缩数据文件是否已经读取完成,在完成后,清除所述解压缩缓存。参考图5和图6,如图5所示,假设用户希望进行从低速数据源上加载的压缩格式文件大小为32K,解压缩后数据量为57K。文件包含4段数据。每次预读数据量设定为16K。如果没有预读,需要读取8次数据,即分别读取4个数据段的元数据和压缩数据后才能完成读取和加载。但采用上述方法,预只需要对数据源读取2次数据,缓存的状态变化过程如图6所示。
在本实施例的一个优选方案中,在接收客户端发送的数据文件之前,增加如下步骤:加载数据文件工具,用以解析数据文件中的数据。所述数据文件工具是单独开发的一个插件,可在集群数据库中运行,可以通过数据文件工具,解析数据文件中的数据和其它内容。通过加载数据文件工具,为集群数据库提供了相应的解析数据文件中的数据和其它内容的功能。
图8示出本发明第二实施例。
图8是本发明第二实施例提供的集群数据库的数据加载装置的结构示意图。
由图8可以看出,所述的集群数据库的数据加载装置包括:控制文件接收模块210、控制文件解析模块220、判断模块230和读取和缓存模块240。
其中,所述控制文件接收模块210,用于接收客户端发送的控制文件;
所述控制文件解析模块220,用于解析所述控制文件,获取控制文件中的数据来源和数据类型;
所述判断模块230,用于判断控制文件中是否包括低速数据源的压缩数据文件;
所述读取和缓存模块240,用于在控制文件中是否包括低速数据源的压缩数据文件时,读取并缓存所述低速数据源的压缩数据文件。
进一步的,所述从低速数据源加载压缩数据文件装置还包括:加载模块250
其中,所述加载模块250,用于解压缩所述压缩数据文件,在集群数据库中加载解压缩后的数据值。
进一步的,加载模块250用于:
在已缓存的数据量少于需要读取的数据量时,解压缩所述压缩数据文件;
将解压缩后的数据添加至缓存结尾;
判断所述压缩数据文件是否已经读取完成,在完成后,清除所述解压缩缓存。
进一步的,所述从低速数据源加载压缩数据文件的还包括:文件工具加载模块260
其中,所述文件工具加载模块260,用于加载数据文件工具,所述数据文件工具用于解析所述控制文件,获取控制文件中的数据来源和数据类型。
上述从低速数据源加载压缩数据文件的装置,能够执行从低速数据源加载压缩数据文件的方法,具备方法执行的功能和有益效果。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (4)
1.一种从低速数据源加载压缩数据文件的方法,其特征在于,所述方法包括:
接收客户端发送的控制文件;
解析所述控制文件,获取控制文件中的数据来源和数据类型;
判断控制文件中是否包括低速数据源的压缩数据文件;
在控制文件中包括低速数据源的压缩数据文件时,读取并缓存所述低速数据源的压缩数据文件;
解压缩所述压缩数据文件,在集群数据库中加载解压缩后的数据值;
所述解压缩所述压缩数据文件,在集群数据库中加载解压缩后的数据值,包括:
在已缓存的数据量少于需要读取的数据量时,解压缩所述压缩数据文件;
将解压缩后的数据添加至缓存结尾;
判断所述压缩数据文件是否已经读取完成,在完成后,清除所述缓存。
2.根据权利要求1所述的方法,其特征在于,在接收客户端发送的控制文件之前,还包括:
加载数据文件工具,所述数据文件工具用于解析所述控制文件,获取控制文件中的数据来源和数据类型。
3.一种从低速数据源加载压缩数据文件的装置,其特征在于,所述装置包括:
控制文件接收模块,用于接收客户端发送的控制文件;
控制文件解析模块,用于解析所述控制文件,获取控制文件中的数据来源和数据类型;
判断模块,用于判断控制文件中是否包括低速数据源的压缩数据文件;
读取和缓存模块,用于在控制文件中是否包括低速数据源的压缩数据文件时,读取并缓存所述低速数据源的压缩数据文件;
加载模块,用于解压缩所述压缩数据文件,在集群数据库中加载解压缩后的数据值;
所述加载模块用于:
在已缓存的数据量少于需要读取的数据量时,解压缩所述压缩数据文件;
将解压缩后的数据添加至缓存结尾;
判断所述压缩数据文件是否已经读取完成,在完成后,清除所述缓存。
4.根据权利要求3所述的装置,其特征在于,所述装置还包括:
工具加载模块,用于加载数据文件工具,所述数据文件工具用于解析所述控制文件,获取控制文件中的数据来源和数据类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510785760.2A CN105279279B (zh) | 2015-11-16 | 2015-11-16 | 从低速数据源加载压缩数据文件的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510785760.2A CN105279279B (zh) | 2015-11-16 | 2015-11-16 | 从低速数据源加载压缩数据文件的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105279279A CN105279279A (zh) | 2016-01-27 |
CN105279279B true CN105279279B (zh) | 2019-01-25 |
Family
ID=55148293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510785760.2A Active CN105279279B (zh) | 2015-11-16 | 2015-11-16 | 从低速数据源加载压缩数据文件的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105279279B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110522441B (zh) * | 2019-08-01 | 2022-03-08 | 北京今科医疗科技有限公司 | 一种心电数据处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104484472A (zh) * | 2014-12-31 | 2015-04-01 | 天津南大通用数据技术股份有限公司 | 一种混合多种异构数据源的数据库集群及实现方法 |
CN104598840A (zh) * | 2015-02-04 | 2015-05-06 | 新余兴邦信息产业有限公司 | 基于Http协议的多数据源的数据处理方法及系统 |
CN104685475A (zh) * | 2012-08-31 | 2015-06-03 | 惠普发展公司,有限责任合伙企业 | 选择在数据备份或恢复操作中要使用的资源 |
CN104794026A (zh) * | 2015-04-29 | 2015-07-22 | 上海新炬网络信息技术有限公司 | 一种集群实例多数据源绑定的故障转移方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8756329B2 (en) * | 2010-09-15 | 2014-06-17 | Oracle International Corporation | System and method for parallel multiplexing between servers in a cluster |
-
2015
- 2015-11-16 CN CN201510785760.2A patent/CN105279279B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104685475A (zh) * | 2012-08-31 | 2015-06-03 | 惠普发展公司,有限责任合伙企业 | 选择在数据备份或恢复操作中要使用的资源 |
CN104484472A (zh) * | 2014-12-31 | 2015-04-01 | 天津南大通用数据技术股份有限公司 | 一种混合多种异构数据源的数据库集群及实现方法 |
CN104598840A (zh) * | 2015-02-04 | 2015-05-06 | 新余兴邦信息产业有限公司 | 基于Http协议的多数据源的数据处理方法及系统 |
CN104794026A (zh) * | 2015-04-29 | 2015-07-22 | 上海新炬网络信息技术有限公司 | 一种集群实例多数据源绑定的故障转移方法 |
Non-Patent Citations (1)
Title |
---|
"基于区分服务(DiffServ)的IP QoS控制策略研究";许莹;《中国优秀硕士学位论文全文数据库 信息科技辑》;20040915;论文正文第4章 |
Also Published As
Publication number | Publication date |
---|---|
CN105279279A (zh) | 2016-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108037961A (zh) | 一种应用程序配置方法、装置、服务器和存储介质 | |
JP2011520189A (ja) | ステートレスなプロトコルを介したドキュメントの同期 | |
CN102902763B (zh) | 关联、检索信息处理数据和处理信息任务的方法及装置 | |
KR20150125012A (ko) | 저장된 데이터 유닛들의 동작 관리 | |
CN106547911B (zh) | 一种海量小文件的存取方法和系统 | |
CN103853714A (zh) | 一种数据处理方法和装置 | |
CN103678603A (zh) | 多源异构数据高效汇聚存取架构系统 | |
KR20150125010A (ko) | 저장된 데이터 유닛들의 동작 관리 | |
CN106407172B (zh) | 一种基于xml的报表生成方法 | |
CN109062502A (zh) | 一种数据压缩方法、装置、设备及计算机可读存储介质 | |
US8589454B2 (en) | Computer data file merging based on file metadata | |
CN111104258A (zh) | MongoDB数据库的备份方法、装置及电子设备 | |
CN105630630B (zh) | 数据热备份方法及系统 | |
CN103885721A (zh) | 一种在键-值系统中的数据存储或读取方法、装置 | |
CN107423321B (zh) | 适用大批量小文件云存储的方法及其装置 | |
CN111159265A (zh) | 一种etl数据迁移方法和系统 | |
CN105279279B (zh) | 从低速数据源加载压缩数据文件的方法及装置 | |
AU2020274505A1 (en) | Blockchain cache system | |
CN115080515A (zh) | 基于区块链的系统文件共享方法及系统 | |
US20150026143A1 (en) | Data handling | |
CN104636327A (zh) | 一种基于增量计算的分布式流式数据系统 | |
KR20150126667A (ko) | 저장된 데이터 유닛들의 동작 관리 | |
CN104063377A (zh) | 信息处理方法和使用其的电子设备 | |
CN105808451A (zh) | 一种数据缓存方法以及相关装置 | |
KR102226379B1 (ko) | 일종의 시스템 펌웨어의 버닝 스피드 향상 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |