CN103034735B - 一种大数据分布式文件导出方法 - Google Patents
一种大数据分布式文件导出方法 Download PDFInfo
- Publication number
- CN103034735B CN103034735B CN201210575868.5A CN201210575868A CN103034735B CN 103034735 B CN103034735 B CN 103034735B CN 201210575868 A CN201210575868 A CN 201210575868A CN 103034735 B CN103034735 B CN 103034735B
- Authority
- CN
- China
- Prior art keywords
- server
- data
- data retrieval
- file
- inquiry
- 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 33
- 238000005192 partition Methods 0.000 claims description 3
- 238000012790 confirmation Methods 0.000 claims description 2
- 238000009795 derivation Methods 0.000 description 12
- 239000000203 mixture Substances 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种大数据分布式文件导出方法,包括以下步骤:查询服务器根据预定的条件,将源查询语句分拆解析成若干个子查询语句,分发给多个数据检索服务器;接收到子查询语句的数据检索服务器,进行并行查询;数据检索服务器将子检索结果并行写入子文件;文件合并服务器根据预定条件,抓取子文件并将子文件进行合并,然后导出。本发明采用分布式方式导出大量数据,可以保证数据的完整及正确性,并且可以支持横向扩展,从而快速安全地导出大批量数据到文件中。
Description
技术领域
本发明涉及一种大数据分布式文件导出方法,属于数据处理技术领域。
背景技术
云存储系统是在云计算(cloud computing)概念上延伸和发展出来的一个新的概念,是指通过集群应用、网格技术或分布式文件系统等技术,将网络中大量不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的数据服务系统。当云计算系统运算和处理的核心是大量数据的存储和管理时,云计算系统中也需要配置大量的存储设备,那么云计算系统就转变成为一个云存储系统,所以云存储系统是一个以数据存储和管理为核心的云计算系统。
云存储系统使存储完全虚拟化,这样可以大大简化应用的环节,从而为客户节省建设成本,并且向客户提供了更稳定的存储性能以及更强大的共享功能,云存储系统中的存储设备对使用者完全透明,任何地方在被授权的情况下都可以通过网络与云存储系统进行连接。
在传统的大数据文件导出方法中,首先是查询一批数据后写入文件中,查询一批数据使用的时间取决于数据库的数据量大小、SQL复杂程度及时间条件的跨度。写入文件也是一个比较耗时的过程,并且没有办法在云存储系统的基础上把几个服务器的数据合并到一个文件中,如果要合并云存储系统的数据则需要在程序中进行查询合并,这样的效率会更慢,导出一个上百万条数据的文件耗时很长。
所以,基于云存储系统的大数据导出需求应运而生。但是,目前的大数据文件导出方法还是传统的单服务器分步骤进行,目前还没有可以保证数据完整及正确性的分布式数据文件导出机制。
图4为传统的数据文件导出过程示意图。如图4所示,传统的查询和写入文件是串行模式,用户请求服务器查询数据,会根据服务器压力、数据库的数据量及查询语句的复杂程度决定本次操作的速度,等所有工作进行完成后,下载到用户指定的位置。
在申请号为200910166485.0的中国发明专利申请中,公开了一种数据导出的方法和装置,所述方法包括:接收待导出数据的导出条件和导出配置信息,所述导出配置信息包括单个任务的最大线程数和每个线程的单次记录数;根据所述导出条件、最大线程数和单次记录数生成导出任务;依据所述导出任务对所述待导出数据进行导出。所述方法及装置避免了在大数据量情况下,单线程操作的响应时间过长的问题,提高了大数据量的导出效率。
发明内容
本发明所要解决的技术问题在于提供一种大数据分布式文件导出方法。
为实现上述的发明目的,本发明采用以下技术方案:
一种大数据分布式文件导出方法,用于由查询服务器、作为云存储服务器的多个数据检索服务器、文件合并服务器相互连接形成的查询系统,包括以下步骤:
S1:拆解查询语句步骤
所述查询服务器根据预定的条件,将源查询语句分拆解析成若干个子查询语句,分发给所述多个数据检索服务器;
S2:分布式云存储查询步骤
接收到所述子查询语句的所述数据检索服务器,进行并行查询;
S3:写入文件步骤
所述数据检索服务器将子检索结果并行写入子文件;
S4:合并文件并导出的步骤
所述文件合并服务器根据所述预定条件,抓取所述子文件并将所述子文件进行合并,然后导出。
所述查询解析服务器将所述子查询语句发送给所述数据检索服务器,同时向队列服务器发送注册消息,注册状态。
所述数据检索服务器在完成数据检索后,把数据写成文件,并通知所述队列服务器。
检查消息状态,在确认所有所述数据检索服务器完成文件的写入时,通知文件合并服务器抓取文件;
在确认未全部完成时,通知错误处理服务器,由错误处理服务器通知队列服务器出错信息,并向所述查询解析服务器发出重发请求,返回步骤S1。
本发明所提供的大数据分布式文件导出方法采用分布式方式导出大量数据,可以保证数据的完整及正确性,并且可以支持横向扩展,从而快速安全地导出大批量数据到文件中。
附图说明
图1为本发明所提供的大数据分布式文件导出方法的概略过程示意图;
图2为本发明所提供的大数据分布式文件导出方法的详细过程示意图;
图3为本发明所提供的大数据分布式文件导出方法的流程图;
图4为传统的数据文件导出过程示意图。
具体实施方式
下面结合附图说明本发明的技术方案。在此以云存储服务器为例进行说明。
如图1所示,本发明所提供的一种大数据分布式文件导出方法,主要包括以下步骤:
S1:拆解查询语句步骤
查询服务器根据时间条件或其他预定的条件,先把查询语句分拆解析成若干个子查询语句,之后根据各个云存储服务器的压力情况,把子查询语句分发给压力相对小的云存储服务器上。
S2:分布式数据查询步骤
接收到子查询语句的云存储服务器,根据子查询语句进行查询,实现并行查询。
S3:写入文件步骤
各个云存储服务器将查询结果并行写入子文件,发送给文件合并服务器。
S4:合并文件并导出的步骤
文件合并服务器根据前述拆解时的预定条件,将各个子文件进行合并,然后导出,完成导出请求。
下面结合图2和图3进行详细说明。
查询解析服务器接收到文件导出请求后,执行下述步骤:
S1:拆解查询语句步骤。在这一步骤中,查询解析服务器根据预定规则对查询请求(源查询语句)进行拆解。查询解析服务器将拆解后的查询请求(子查询语句)发送给各个数据检索服务器,同时向队列服务器发送注册消息,注册信息中包含组标识和请求机器标识、数据检索服务器标识。队列服务器根据注册信息生成身份认证标识。身份认证标识包含组标识、请求机器标识、数据检索服务器标识、请求文件标识和随机标识。其中组标识是表示用于查询同一个源查询语句的多个身份认证标识;请求机器标识表示发出子查询语句的查询解析服务器;数据检索服务器标识表示收到并执行该子查询语句的数据检索服务器。
通常大数据的导出,是用户需要某个特定时间段内的所有数据,例如,开始时间是2011-01-01,结束时间是2012-12-13,导出该时间段内的所有数据,如果直接查找2011-01-01至2012-12-13之间的数据,因为时间跨度大,一次性检索数据多所以会很慢才能完成数据获取。
而在本实施例中,会根据预先设定的拆解规则自动将2011-01-01至2012-12-13拆分成7天为一个单元的多个小跨度条件如:2011-01-01至2011-01-01,2011-01-08至2011-01-14等等一直拆解到最后一个时间,如果最后一个单元未满七天则以实际时间为准。
可以理解,拆解规则除了是时间拆解之外,也可以是其他的拆解条件,例如将某部门的检索任务拆解为多个子部门或多个部门成员,例如将所有学校拆解为各个小学,将各小学分别拆解为一年级、二年级、三年级等。也可以是将按查询条件的属性进行拆解,例如将职员分为1970年出生的员工、1971年出生的员工和1972年出生的员工等等。
S2:分布式数据查询步骤。在此步骤中,数据检索服务器根据拆解后的子查询语句进行检索,并且在检索完成后,向队列服务器注册状态。
查询解析服务器通过分布式程序把每个查询分发到多台数据检索服务器上进行数据检索。这样就会把应该一个数据检索服务器承担的压力分解给多台数据检索服务器分担,检索时速度会显著提升。在本实施例中,每台数据检索服务器最多只承担7天的数据检索,比承担2011-01-01到2012-12-13这2年的数据检索任务,减少了很多压力,速度就提高了近100倍。
如图2所示,如果某个数据检索服务器出现错误,未成完成检索,则注册状态为未完成;负责检查消息状态是否是全部完成的状态检查服务器发现未完成状态,就会向错误处理服务器发出没有全部完成的消息。错误处理服务器向查询解析服务器发出重新发送请求。查询解析服务器收到重新发送请求后,根据请求的内容向相应的数据检索服务器重新发出出错的子查询语句的请求。重新发送请求中包含出错的数据检索服务器标识、组标识和请求机器标识。
S3:写入文件步骤。数据检索完成后,系统会在每台数据检索服务器上把数据写成文件,并向队列服务器注册状态为全部完成。
状态检查服务器检查消息状态,在确认全部完成全部文件的写入时通知文件合并服务器抓取文件;在确认未全部完成时通知错误处理服务器,由错误处理服务器通知队列服务器出错信息,并向查询解析服务器发出重发请求,返回步骤S1。
S4:合并文件并导出的步骤。等所有数据文件写入完成后,会交由合并文件服务器。合并文件服务器收到状态检查服务器的消息,根据消息中的组标识和数据检索服务器标识,向相应的数据检索服务器去抓取该组标识下的所有文件并在服务器端合并所有文件,之后供用户下载。合并文件服务器合并所有的子文件为一个目标文件,最后下载目标文件到用户的指定位置。
因为检索、文件写入等操作都是分布式的,所以此发明的文件导出速度快,并且具有很好的可扩展性。
因为原先属于一个查询的数据被分解成多个,并同步执行,如何保证数据正确性,如何保证数据完整性,就成为重要的问题。为此,本发明利用注册队列机制保证数据完整性,利用错误处理机制保证数据正确性,利用唯一身份标识中的数据检索服务器标识来保证横向扩展多台服务时数据不会错乱,横向扩展还可以保证在很大的数据量的基础上做文件导出。
查询解析器发送请求给云服务器(数据检索服务器)进行数据检索的同时也会发送一个注册消息,把请求注册进队列服务,注册信息就作为从请求开始一直到执行结束时的唯一身份认证,中间处理时可以根据该身份认证去实时监控请求状态,如果出现异常,错误处理服务会重新发送错误的请求重新执行,这样就可以保证在分布式导出数据时不会因为某一个服务出现故障而使导出操作整个失败,就可以保证数据的完整性。
所有子检索执行完成后,队列服务器会发送消息告诉文件合并服务,同时把同一个查询拆分的所有子检索信息发送给文件合并服务,文件合并时会统一抓取一个源查询分解的所有子检索,同时按照顺序合并所有子检索,就可以保证数据的正确性。
如果某一个身份认证的请求重新发送的次数超过系统定义的次数,系统会给管理员发送一个警报消息,并把异常请求存储到异常信息队列中,并停止该异常请求的查询任务,从而结束查询任务。
本发明具有以下优点:
1.自动根据时间条件拆解查询语句,自动化解析。
2.拆解完后的查询语句会把各自的数据写入文件,分布式进行。
3.服务器端进行文件合并,也就是云端操作。
4.导出上百万条数据到文件中只需几秒左右。
本发明所述方法中,分解完查询后可以分布在不同服务器上进行文件写入,之后统一合并。由于属于分布式查询合并文件,所以可以在云存储系统的基础上合并几个服务器上的数据,就会把压力分摊。
本发明使快速的分布式导出云存储数据得以实现,并且可以支持横向扩展,可以快速安全地导出大批量数据到文件中。
上面对本发明所提供的大数据分布式文件导出方法进行了详细的说明。对本领域的一般技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。
Claims (7)
1.一种大数据分布式文件导出方法,用于由查询服务器、多个数据检索服务器、文件合并服务器相互连接形成的查询系统,其特征在于包括以下步骤:
S1:所述查询服务器根据预定条件,将源查询语句分拆解析成若干个子查询语句,分发给所述多个数据检索服务器,同时向队列服务器发送注册消息;其中,所述注册消息中包含数据检索服务器标识,所述数据检索服务器标识表示收到并执行子查询语句的数据检索服务器;利用所述数据检索服务器标识来保证横向扩展多台服务时数据不会错乱;
S2:接收到所述子查询语句的所述数据检索服务器,进行并行查询;
S3:所述数据检索服务器将子检索结果并行写入子文件;
S4:所述文件合并服务器根据所述预定条件,抓取所述子文件并将所述子文件进行合并,然后导出;其中,利用注册队列机制保证数据完整性,利用错误处理机制保证数据正确性。
2.如权利要求1所述的大数据分布式文件导出方法,其特征在于:
所述注册消息中还包含组标识和请求机器标识;其中,
所述组标识是表示用于查询同一个源查询语句的多个身份认证标识;所述请求机器标识表示发出子查询语句的查询服务器。
3.如权利要求1所述的大数据分布式文件导出方法,其特征在于:
所述数据检索服务器在完成数据检索后,把数据写入文件,并向所述队列服务器注册状态。
4.如权利要求1或3所述的大数据分布式文件导出方法,其特征在于:
状态检查服务器检查消息状态,在确认所有所述数据检索服务器完成文件的写入时,通知文件合并服务器抓取文件;
在确认未全部完成时,通知错误处理服务器,由错误处理服务器向所述查询服务器发出重发请求,返回步骤S1。
5.如权利要求4所述的大数据分布式文件导出方法,其特征在于:
合并文件服务器收到所述状态检查服务器的消息,向相应的数据检索服务器去抓取组标识下的所有文件并在服务器端合并所有文件。
6.如权利要求5所述的大数据分布式文件导出方法,其特征在于:
所述状态检查服务器的消息中包含组标识和数据检索服务器标识。
7.如权利要求1所述的大数据分布式文件导出方法,其特征在于:
所述查询服务器发送请求给所述数据检索服务器进行数据检索的同时,也发送注册消息给所述队列服务器,将所述注册消息作为从请求开始一直到执行结束时的唯一身份认证,并根据所述注册消息去实时监控所述请求的状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210575868.5A CN103034735B (zh) | 2012-12-26 | 2012-12-26 | 一种大数据分布式文件导出方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210575868.5A CN103034735B (zh) | 2012-12-26 | 2012-12-26 | 一种大数据分布式文件导出方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103034735A CN103034735A (zh) | 2013-04-10 |
CN103034735B true CN103034735B (zh) | 2017-02-08 |
Family
ID=48021629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210575868.5A Active CN103034735B (zh) | 2012-12-26 | 2012-12-26 | 一种大数据分布式文件导出方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103034735B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106407231A (zh) * | 2015-08-03 | 2017-02-15 | 天脉聚源(北京)科技有限公司 | 一种数据多线程导出方法及系统 |
CN107220254A (zh) * | 2016-03-22 | 2017-09-29 | 阿里巴巴集团控股有限公司 | 组装文件的方法及装置 |
CN105930407B (zh) * | 2016-04-18 | 2019-05-17 | 北京思特奇信息技术股份有限公司 | 一种分布式数据库跨库关联查询方法及系统 |
CN106101195B (zh) * | 2016-05-31 | 2020-03-13 | 北京奇艺世纪科技有限公司 | 一种数据分发方法及装置 |
CN106096435A (zh) * | 2016-05-31 | 2016-11-09 | 北京联合大学 | 基于好友互助方式的智能手机敏感数据保护系统和方法 |
CN106126545A (zh) * | 2016-06-15 | 2016-11-16 | 北京智能管家科技有限公司 | 分布式的裂变查询方法及装置 |
CN106534247B (zh) * | 2016-09-18 | 2019-05-21 | 东软集团股份有限公司 | 表单下载的方法和装置 |
CN106776829A (zh) * | 2016-11-28 | 2017-05-31 | 成都广达新网科技股份有限公司 | 一种数据导出系统及其工作方法 |
CN107784085B (zh) * | 2017-09-30 | 2021-04-13 | 平安科技(深圳)有限公司 | 一种数据列表的导出方法及其终端 |
CN107798111B (zh) * | 2017-11-01 | 2021-04-06 | 四川长虹电器股份有限公司 | 一种分布式环境中大批量导出数据的方法 |
CN108234349A (zh) * | 2017-12-22 | 2018-06-29 | 中国联合网络通信集团有限公司 | 提高soa系统健壮性的方法和装置 |
CN109299157B (zh) * | 2018-08-27 | 2021-11-23 | 杭州安恒信息技术股份有限公司 | 一种分布式大单表的数据导出方法及装置 |
CN109298941A (zh) * | 2018-09-28 | 2019-02-01 | 阿里巴巴集团控股有限公司 | 一种文件生成方法和装置 |
CN109474931B (zh) * | 2018-12-31 | 2021-07-20 | 国义招标股份有限公司 | 对移动互联网的移动终端进行多级身份认证的方法及系统 |
CN111967229A (zh) * | 2020-09-01 | 2020-11-20 | 申建常 | 一种高效标签式数据分析方法及分析系统 |
CN112181301A (zh) * | 2020-09-27 | 2021-01-05 | 北京金山云网络技术有限公司 | 云硬盘的数据导出方法、装置以及服务端设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996067B (zh) * | 2009-08-19 | 2014-07-16 | 阿里巴巴集团控股有限公司 | 一种数据导出的方法和装置 |
CN102737016B (zh) * | 2011-03-30 | 2014-07-16 | 中国银联股份有限公司 | 基于并行处理的信息文件生成系统及方法 |
CN102521406B (zh) * | 2011-12-26 | 2014-06-25 | 中国科学院计算技术研究所 | 海量结构化数据复杂查询任务的分布式查询方法和系统 |
-
2012
- 2012-12-26 CN CN201210575868.5A patent/CN103034735B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN103034735A (zh) | 2013-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103034735B (zh) | 一种大数据分布式文件导出方法 | |
US11188397B2 (en) | Mobile application for an information technology (IT) and security operations application | |
CN108459939B (zh) | 一种日志收集方法、装置、终端设备及存储介质 | |
WO2022088804A1 (zh) | 消息推送方法、装置、电子设备及存储介质 | |
CN102375837B (zh) | 数据采集系统和方法 | |
US11036608B2 (en) | Identifying differences in resource usage across different versions of a software application | |
CN106537350A (zh) | 用于处理数据处理系统中的数据质量异常的方法 | |
US11573955B1 (en) | Data-determinant query terms | |
CN106682036A (zh) | 一种数据交换系统及其交换方法 | |
CN105956481A (zh) | 一种数据处理方法及其装置 | |
RU2607991C2 (ru) | Способ и система технического осмотра и соответствующий им машиночитаемый носитель данных | |
US20120072589A1 (en) | Information Processing Apparatus and Method of Operating the Same | |
CN107704369A (zh) | 一种操作日志的记录方法、电子设备、存储介质、系统 | |
CN111930489A (zh) | 一种任务调度方法、装置、设备及存储介质 | |
CN114756629B (zh) | 基于sql的多源异构数据交互分析引擎及方法 | |
WO2022156542A1 (zh) | 数据访问方法、系统和存储介质 | |
CN105069029B (zh) | 一种实时etl系统及方法 | |
CN113407600A (zh) | 一种动态实时同步多源大表数据的增强实时计算方法 | |
US20080270483A1 (en) | Storage Management System | |
CN107038050A (zh) | 一种基于虚拟服务器的游戏配置加载方法 | |
CN109800081A (zh) | 一种大数据任务的管理方法及相关设备 | |
KR20100132752A (ko) | 데이터베이스 분산을 통한 서비스 성능 향상을 위한 질의 데이터 분산 처리시스템 | |
CN116167858A (zh) | 业务处理方法、装置、系统及电子设备 | |
CN112579552A (zh) | 日志存储及调用方法、装置及系统 | |
CN114793244A (zh) | 一种区块链的资源处理方法、装置、设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |