CN107391555B - 一种面向Spark-Sql检索的元数据实时更新方法 - Google Patents

一种面向Spark-Sql检索的元数据实时更新方法 Download PDF

Info

Publication number
CN107391555B
CN107391555B CN201710422553.XA CN201710422553A CN107391555B CN 107391555 B CN107391555 B CN 107391555B CN 201710422553 A CN201710422553 A CN 201710422553A CN 107391555 B CN107391555 B CN 107391555B
Authority
CN
China
Prior art keywords
metadata
file metadata
file
spark sql
spark
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
Application number
CN201710422553.XA
Other languages
English (en)
Other versions
CN107391555A (zh
Inventor
李斌斌
王树鹏
王振宇
张磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Information Engineering of CAS
Original Assignee
Institute of Information Engineering of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Information Engineering of CAS filed Critical Institute of Information Engineering of CAS
Priority to CN201710422553.XA priority Critical patent/CN107391555B/zh
Publication of CN107391555A publication Critical patent/CN107391555A/zh
Application granted granted Critical
Publication of CN107391555B publication Critical patent/CN107391555B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

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)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种面向Spark‑Sql检索的元数据实时更新方法。该方法在Spark Sql进行检索时,会将使用的元数据进行缓存,将被检索的数据块文件元数据以集合的形式缓存于内存中;当获得文件元数据的增量信息时,将首先检查该增量信息所属的表的检索元数据是否存在于缓存之中,若存在,则将增量的文件元数据增加至缓存的该表文件元数据的集合之中,由此完成Spark Sql检索元数据的增量更新。本发明还提出了对Spark Sql检索元数据增加情况的处理方法,可以实时的对检索元数据的增加情况进行处理,提高检索结果的实时性。本发明可以避免对检索元数据进行经常性的全量更新,以减少更新元数据时的时间和资源开销。

Description

一种面向Spark-Sql检索的元数据实时更新方法
技术领域
本发明涉及一种面向Spark Sql检索的元数据实时更新方法,可提高Spark Sql检索海量数据时的结果实时性及运行性能,属于大数据处理领域。
背景技术
随着计算机技术的不断发展和信息化程度的不断提高,数据量迅速增长,面向海量数据存储及应用也随之蓬勃发展。如,在网络安全上,使用大数据技术分析网络攻击行为;在电子商务上,使用大数据技术分析用户购物喜好或最受青睐的商品。大数据技术在建设节约型社会,提高生成效率等方面起到了积极的推动作用。
在海量数据检索应用中,Apache基金会的分布式检索框架Spark Sql提供了同Hive的HiveQL接口,其具有较高的效率及可用性,作为一种优秀的大数据检索方法,在该领域被广泛的使用。Spark Sql中对检索中使用过的元数据进行了缓存,该缓存有效的提高了对相同数据进行多次查询时的效率,但也存在问题。当检索使用的元数据发生变化时,Spark Sql框架会将原缓存全部弃用,重新加载全量的检索元数据,这在海量数据规模下会造成较大的时间和资源开销。在元数据经常变换的业务场景下,频繁更新检索元数据造成了Spark Sql出现性能瓶颈,是使用Spark Sql进行检索的一个关键问题。随着数据量的不断增加和大数据技术的不断发展,Spark Sql的原生元数据更新方法出现性能瓶颈,其效率直接的影响了业务应用。
发明内容
为了解决上述Spark Sql使用中所出现的关键问题,本发明的目的是提供一种面向SparkSql检索的元数据实时更新方法,能够有效的降低Spark Sql检索进行元数据更新时的资源开销和时间开销,提高Spark Sql检索时的效率和实时性。
本发明采用的技术方案如下:
一种面向Spark Sql检索的元数据实时更新方法,包括以下步骤:
1)在Spark Sql进行检索时,将被检索的数据块的文件元数据以集合的形式进行缓存;
2)当获得文件元数据的增量信息时,检查该增量信息所属的表的文件元数据是否存在于缓存之中,若存在,则将增量信息中的文件元数据增加至缓存的文件元数据的集合之中,从而完成Spark Sql检索的文件元数据的增量更新。
进一步地,步骤2)获得文件元数据的增量信息的方法是:在Spark Sql框架启动时,同时启动一个附属的Http服务,用于监听和接收有关Spark Sql文件元数据增加的请求,该请求中附带新增的文件元数据的信息。
进一步地,当该Http服务接收到增加Spark Sql文件元数据的Http请求后,从接收到的请求中解析出所要新增的文件元数据的信息。
进一步地,在数据文件的加载过程中,记录加载行为对文件元数据所造成的变换。
进一步地,在加载结束后,对文件元数据是否变化进行判断,若判断导致文件元数据出现了变化,则向所述Http服务发送相应的增加Spark Sql文件元数据的请求,并附带上所记录的文件元数据的变化情况,以使被检索数据的文件元数据能够在数据文件加载过程中进行实时增量更新。
本发明的有益效果如下:
本发明的主要创新点是提出了一种面向Spark Sql检索的元数据实时更新方法,该方法能够在数据文件加载过程中对Spark Sql检索的元数据进行实时的增量更新,以提高Spark Sql检索结果的实时性,并避免Spark Sql由于检索元数据全量更新所带来的引发的性能瓶颈,提高了响应速度,符合当下大数据检索实际需求,在大数据处理领域具有很强的实用性和应用范围,具有很广泛的应用前景。
附图说明
图1为面向Spark Sql的检索元数据增量更新流程图;
图2为响应Spark Sql检索元数据增加请求的Http服务流程图;
图3为加载数据中实时更新检索元数据的流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步说明。
本发明提供的面向Spark Sql检索的元数据实时更新方法,可以提高Spark Sql检索数据的结果的实时性,并有效的降低元数据更新时的时间和资源开销,具体包括以下内容。
本发明的第一方面,给出了面向Spark Sql的检索元数据增量更新的方法,可以避免对检索元数据进行经常性的全量更新,以减少更新元数据时的时间和资源开销。在SparkSql进行检索时,会将使用的元数据进行缓存,将被检索的数据块文件元数据以集合的形式缓存于内存中。当获得文件元数据的增量信息时,将首先检查该增量信息所属的表的文件元数据是否存在于缓存之中(其中“表”是指逻辑上的关系,是一个主题的信息集合),若存在,则将增量的文件元数据增加至缓存的该表文件元数据的集合之中,由此完成Spark Sql检索元数据的增量更新。
本发明的第二个方面,给出了对Spark Sql检索元数据增加情况的处理方法,可以实时的对检索元数据的增加情况进行处理,提高检索结果的实时性。该方法会在Spark Sql框架启动时,同时启动一个附属的Http服务。该Http服务的目的是监听有关Spark Sql文件元数据增加的请求,所接收到的请求中将会附带上新增的文件元数据的信息。当该Http服务接收到增加Spark Sql元数据的Http请求后,会从接收到的请求中解析出所要新增的检索文件元数据的信息,并将该信息应用到本发明第一方面所述的Spark Sql检索元数据的增量更新方法的实现之中。
本发明的第三部分,提出了一种在进行被检索数据加载过程中的实时更新SparkSql检索元数据的方法,该方法可以避免因加载过程中检索元数据低实时性问题,并避免加载时的Spark Sql的检索元数据频繁变换所导致的元数据更新性能瓶颈。在加载相关程序进行数据块的加载更新中,将记录加载行为对数据文件元数据所造成的变化(其中“变化”是指文件数量的增加和可能出现的文件名称的改变)。在加载结束后,将对文件元数据是否变化进行判断。若判断导致文件元数据出现了变化,则向本发明第二部分所述的Http服务发送相应的增加Spark Sql中检索元数据的请求,并附带上所记录的文件元数据变化情况,以达到被检索数据的文件元数据能够在数据文件加载过程中实时增量更新的目的。
图1给出了面向Spark Sql的检索元数据增量更新的流程。在一实施例中,具体步骤如下:
步骤101:在Spark Sql中接收到新增的检索文件元数据信息。
步骤102:根据得到的新增检索文件元数据信息中的表名等信息,读取Spark Sql中存在的检索元数据缓存,判断该增量信息所属的表的检索元数据是否存在于缓存之中,若确实存在,则进入步骤103,否则退出该流程。
步骤103:将新增的文件元数据增加到相应表的文件元数据缓存集合之中,完成Spark Sql检索元数据的增量更新。
图2给出了相应对Spark Sql检索元数据增加请求的方法。在一实施例中,具体步骤如下:
步骤201:在Spark Sql框架启动时,同时启动一个附属的Http服务,该Http服务将监听有关文件元数据新增的请求。
步骤202:步骤201中所述的Http服务接收到对Spark Sql文件元数据增量更新的请求。将新增的文件元数据信息由Http请求中解析得到,之后将该新增文件元数据信息应用于图一所述的Spark Sql检索元数据增量更新流程中,完成对Spark Sql的文件元数据增量更新。
图3给出了在加载数据过程中能够实时更新Spark Sql检索元数据的方法。在一实施例中,具体步骤如下:
步骤301:在相关加载程序进行数据文件的加载过程中,对文件元数据的变化情况进行记录。
步骤302:在相关加载程序对数据文件加载完成后,判断加载过程是否对数据文件的文件元数据产生了改变(文件数量的增加或部分文件名称的改变),若确实对数据的文件元数据有所改变,则进入步骤303;若文件元数据没有改变,则退出该流程。
步骤303:向图2所表示的Spark Sql所属的监听文件元数据新增情况的Http服务发送相应的新增数据文件元数据的请求,并根据约定附带上步骤301中所记录的具体文件元数据新增信息。
本实施例对上述方法进行了实验测试:
实验环境:100台服务器,数据规模5PB;
实验结果:当新增数据需要更新元数据时,原生元数据更新方式耗时3分钟,实时更新元数据方式耗时小于300毫秒。
应该注意到并理解,在不脱离后附的权利要求所要求的本发明的精神和范围的情况下,能够对上述详细描述的本发明做出各种修改和改进。因此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。本发明的保护范围应以权利要求书所述为准。

Claims (2)

1.一种面向Spark Sql检索的元数据实时增量更新方法,其特征在于,包括以下步骤:
1)在Spark Sql进行检索时,将被检索的数据块的文件元数据以集合的形式进行缓存;
2)获得文件元数据的增量信息,包括:
在Spark Sql框架启动时,同时启动一个附属的Http服务,用于监听和接收有关SparkSql文件元数据增加的请求,该请求中附带新增的文件元数据的信息;当该Http服务接收到增加Spark Sql文件元数据的Http请求后,从接收到的请求中解析出所要新增的文件元数据的信息;
在数据文件的加载过程中,记录加载行为对文件元数据所造成的变换;在加载结束后,对文件元数据是否变化进行判断,若判断导致文件元数据出现了变化,则向所述Http服务发送相应的增加Spark Sql文件元数据的请求,并附带上所记录的文件元数据的变化情况,以使被检索数据的文件元数据能够在数据文件加载过程中进行实时增量更新;
3)当获得文件元数据的增量信息时,检查该增量信息所属的表的文件元数据是否存在于缓存之中,若存在,则将增量信息中的文件元数据增加至缓存的文件元数据的集合之中,从而完成Spark Sql检索的文件元数据的增量更新。
2.一种使用Spark Sql进行检索的方法,其特征在于,在数据文件加载过程中,采用权利要求1所述的方法对Spark Sql检索的元数据进行实时的增量更新,用以提高Spark Sql检索结果的实时性和响应速度。
CN201710422553.XA 2017-06-07 2017-06-07 一种面向Spark-Sql检索的元数据实时更新方法 Active CN107391555B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710422553.XA CN107391555B (zh) 2017-06-07 2017-06-07 一种面向Spark-Sql检索的元数据实时更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710422553.XA CN107391555B (zh) 2017-06-07 2017-06-07 一种面向Spark-Sql检索的元数据实时更新方法

Publications (2)

Publication Number Publication Date
CN107391555A CN107391555A (zh) 2017-11-24
CN107391555B true CN107391555B (zh) 2020-08-04

Family

ID=60332267

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710422553.XA Active CN107391555B (zh) 2017-06-07 2017-06-07 一种面向Spark-Sql检索的元数据实时更新方法

Country Status (1)

Country Link
CN (1) CN107391555B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108710640B (zh) * 2018-04-17 2021-11-12 东南大学 一种提高Spark SQL的查询效率的方法
CN113296687A (zh) * 2020-06-10 2021-08-24 阿里巴巴集团控股有限公司 数据处理方法、装置、计算设备和介质
CN111736907B (zh) * 2020-06-16 2022-08-02 湖南省星岳天璇科技有限公司 一种自适应低延迟内存计算引擎的数据分析方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104679898A (zh) * 2015-03-18 2015-06-03 成都汇智远景科技有限公司 一种大数据访问方法
CN105550293A (zh) * 2015-12-11 2016-05-04 深圳市华讯方舟软件技术有限公司 一种基于Spark-SQL大数据处理平台的后台刷新方法
CN105574093A (zh) * 2015-12-10 2016-05-11 深圳市华讯方舟软件技术有限公司 一种在基于HDFS的spark-sql大数据处理系统上建立索引的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8799413B2 (en) * 2010-05-03 2014-08-05 Panzura, Inc. Distributing data for a distributed filesystem across multiple cloud storage systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104679898A (zh) * 2015-03-18 2015-06-03 成都汇智远景科技有限公司 一种大数据访问方法
CN105574093A (zh) * 2015-12-10 2016-05-11 深圳市华讯方舟软件技术有限公司 一种在基于HDFS的spark-sql大数据处理系统上建立索引的方法
CN105550293A (zh) * 2015-12-11 2016-05-04 深圳市华讯方舟软件技术有限公司 一种基于Spark-SQL大数据处理平台的后台刷新方法

Also Published As

Publication number Publication date
CN107391555A (zh) 2017-11-24

Similar Documents

Publication Publication Date Title
CN100543750C (zh) 一种基于web应用的矩阵式数据缓存方法及装置
CN108256115B (zh) 一种面向SparkSql的HDFS小文件实时合并实现方法
CN102184222B (zh) 一种在大数据量存储中快速检索的方法
JP5494454B2 (ja) 検索結果生成方法、検索結果生成プログラムおよび検索システム
CN107391555B (zh) 一种面向Spark-Sql检索的元数据实时更新方法
US8041893B1 (en) System and method for managing large filesystem-based caches
CN109981659B (zh) 基于数据去重技术的网络资源预取方法以及系统
CN105279240A (zh) 客户端起源信息关联感知的元数据预取方法及系统
CN104794228A (zh) 一种搜索结果提供方法及装置
CN104239377A (zh) 跨平台的数据检索方法及装置
TW201329890A (zh) 店鋪訪問資料處理方法及系統
WO2015119871A1 (en) Trend response management
CN103020175B (zh) 一种获取聚合数据的方法和装置
CN111046041B (zh) 数据处理方法和装置、存储介质及处理器
US20190057124A1 (en) Key Ticketing System with Lock-Free Concurrency and Versioning
CN110647542B (zh) 一种数据获取方法和装置
Singh et al. Enhancing the performance of web proxy server through cluster based prefetching techniques
CN115269631A (zh) 数据查询方法、数据查询系统、设备及存储介质
Zhang et al. Recovering SQLite data from fragmented flash pages
CN109992708B (zh) 一种元数据查询的方法、装置、设备以及存储介质
Chen et al. Optimization research and application of enterprise website based on web service
CN102333123A (zh) 文件存储方法、设备、查找方法、设备和网络设备
CN102004800A (zh) Pdm系统中数据的查询方法及装置
Hou et al. Pacaca: mining object correlations and parallelism for enhancing user experience with cloud storage
CN110334073A (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
GR01 Patent grant
GR01 Patent grant