CN110019497B - 一种数据读取方法及装置 - Google Patents
一种数据读取方法及装置 Download PDFInfo
- Publication number
- CN110019497B CN110019497B CN201710667508.0A CN201710667508A CN110019497B CN 110019497 B CN110019497 B CN 110019497B CN 201710667508 A CN201710667508 A CN 201710667508A CN 110019497 B CN110019497 B CN 110019497B
- Authority
- CN
- China
- Prior art keywords
- file
- metadata
- reading
- loaded
- path information
- 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
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/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
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据读取方法及装置,涉及计算机技术领域,主要目的在于提高数据的读取速度,减少主线程的内存消耗,本发明的主要技术方案为:获取需要加载的文件列表,所述文件列表中记录有需要加载的文件在元数据中对应的路径信息;根据所述路径信息从所述元数据中加载所述文件列表中对应的文件内容;对所述文件内容进行数据处理,得到与所述元数据中相同数据结构的文件内容,生成数据读取结果。本发明主要用于数据的读取。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据读取方法及装置。
背景技术
随着信息全球化的大数据时代的到来,来自多媒体、互联网的海量数据开始向各个行业蔓延,传统的数据库技术在处理海量数据,尤其是非结构内容数据时存在瓶颈,对这些大数据的处理和分析已经成为一个重要且紧迫的需求。
大数据处理平台经历了最初的Hadoop和Hbase,以及后来发展起来的基于SQL的Hive、Spark等,而目前应用较广的是Spark SQL,Spark SQL是Spark的一个组件,作为Apache Spark大数据框架的一部分,主要用于结构化数据的处理以及对Spark数据执行类SQL的查询,通过Spark SQL,可以针对不同格式的数据执行ETL操作(如JSON,Parquet,数据库),然后完成特定的查询操作。
然而,在通过上述的Spark SQL中运行的SQL读取数据时,需要将整张数据表中所有的元数据读取至分布式系统的主线程,整个数据读取过程速度非常慢,而且对主线程的内存消耗很大。
发明内容
有鉴于此,本发明提供一种数据读取方法及装置,主要目的在于提高数据的读取速度,减少主线程的内存消耗。
为了解决上述问题,本发明主要提供如下技术方案:
一方面,本发明实施例提供了一种数据读取方法,包括:
获取需要加载的文件列表,所述文件列表中记录有需要加载的文件在元数据中对应的路径信息;
根据所述路径信息从所述元数据中加载所述文件列表中对应的文件内容;
对所述文件内容进行数据处理,得到与所述元数据中相同数据结构的文件内容,生成数据读取结果。
进一步地,所述获取需要加载的文件列表包括:
启动hive服务器的读取任务;
根据所述读取任务读取需要加载的文件在元数据中对应的路径信息,生成文件列表。
进一步地,所述根据所述读取任务读取需要加载的文件在元数据中对应的路径信息,生成文件列表包括:
根据用户传入的预设查询语句获取需要加载的文件;
通过执行所述读取任务的虚拟字段,获取需要加载的文件在元数据中对应的路径信息;
将所述路径信息以表格的形式存储至hive服务器,生成所述文件列表。
进一步地,所述根据所述路径信息从所述元数据中加载所述文件列表中对应的文件内容包括:
通过Spark SQL解析所述路径信息,从所述元数据中加载所述文件列表中对应的文件内容。
进一步地,所述对所述文件内容进行数据处理,得到与所述元数据中相同数据结构的文件内容,生成数据读取结果包括:
通过Spark SQL解析所述预设查询语句,得到过滤条件;
根据所述过滤条件对所述文件内容进行过滤,得到与所述元数据中相同数据结构的文件内容,生成数据读取结果。
为了实现上述目的,根据本发明的另一方面,提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的数据读取方法。
为了实现上述目的,根据本发明的另一方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述的数据读取方法。
另一方面,本发明实施例还提供了一种数据读取装置,包括:
获取单元,用于获取需要加载的文件列表,所述文件列表中记录有需要加载的文件在元数据中对应的路径信息;
加载单元,用于根据所述路径信息从所述元数据中加载所述文件列表中对应的文件内容;
处理单元,用于对所述文件内容进行数据处理,得到与所述元数据中相同数据结构的文件内容,生成数据读取结果。
进一步地,所述获取单元包括:
启动模块,用于启动hive服务器的读取任务;
读取模块,用于根据所述读取任务读取需要加载的文件在元数据中对应的路径信息,生成文件列表。
进一步地,所述读取模块,具体用于根据用户传入的预设查询语句获取需要加载的文件;
所述读取模块,具体还用于通过执行所述读取任务的虚拟字段,获取需要加载的文件在元数据中对应的路径信息;
所述读取模块,具体还用于将所述路径信息以表格的形式存储至hive服务器,生成所述文件列表。
进一步地所述加载单元,还用于通过Spark SQL解析所述路径信息,从所述元数据中加载所述文件列表中对应的文件内容。
进一步地,所述处理单元包括:
解析模块,用于通过Spark SQL解析所述预设查询语句,得到过滤条件;
过滤模块,用于根据所述过滤条件对所述文件内容进行过滤,得到与所述元数据中相同数据结构的文件内容,生成数据读取结果。
借由上述技术方案,本发明实施例提供的技术方案至少具有下列优点:
本发明实施例提供的一种数据读取方法及装置,通过获取需要加载的文件列表,该过程无需将整张表中所有的元数据读取至分布式系统的主线程,因此分布式系统的主线程无需占用大量内存,使得整体运行速度大幅提高,读取速度很快,相比于现有技术中通过Spark SQL中运行的SQL直接进行数据读取的方式,本发明实施例的数据读取方法只需读取文件的路径信息,避免了加载整张表中所有元数据到主线程的内存开销,保证了程序的正常运行,进而大大加快了数据读取的速度。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例提供的一种数据读取方法流程图;
图2为本发明实施例提供的另一种数据读取方法流程图;
图3为本发明实施例提供的一种数据读取装置的组成框图;
图4为本发明实施例提供的另一种数据读取装置的组成框图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种数据读取方法,如图1所示,该方法并非直接通过分布式系统的主线程中获取需要加载的文件内容,而是预先将需要加载的文件内容配置在文件列表中,进而文件列表中的路径信息从元数据中加载需要读取的数据内容,进而提高数据的读取速度,减少主线程的内存消耗,对此本发明实施例提供以下具体步骤:
101、获取需要加载的文件列表。
其中,文件列表中记录有需要加载的文件在元数据中对应的路径信息,这里的路径信息具体可以为需要加载文件在元数据中存储的位置信息,例如,需要记载的文件wyp对应的路径信息为:/home/wyp/wyp.txt。
由于文件资源的管理需要分布在每台机器上系统工作,每个节点负责不同资源的监控、状态汇报以及任务管理,对于不同节点也需要从元数据中读取不同的文件数据,这里的元数据中存储有分布式系统需要读取的文件数据。
现有技术中,当分布式系统的主线程在接收到文件读取任务后,会将需要加载文件对应的文件内容部分读取至主线程,进而主线程在对不同节点的文件进行分发以及调控,然而,这样会使得整个读取过程很慢,也使得主线程内存消耗较大。
对于本发明实施例,通过将需要记载的文件在元数据中的路径信息预先存储至文件列表中,能够方便后续文件内容的读取,而该文件列表中只记录文件对应的路径信息,不会对主线程内存造成过大的负担。
102、根据所述路径信息从所述元数据中加载所述文件列表中对应的文件内容。
具体地,通过路径信息可以找到需要加载文件在元数据中的位置信息,进一步读取该文件内容,例如,采用SQL语言读取的方式来加载文件内容,还可以通过其他读取方式来加载文件内容,本发明实施例不进行限定。
103、对所述文件内容进行数据处理,得到与所述元数据中相同数据结构的文件内容,生成数据读取结果。
对于通过步骤102从元数据中加载文件列表中对应的文件内容可能与元数据中的数据并非相同的数据格式或者数据类型,本发明实施例通过对文件内容进行数据处理,进而得到与元数据中相同数据结构的读取结果,这里的数据处理方式可以为数据过滤或者其他处理方式。
针对本发明的实施例提供了一种数据读取方法,通过获取需要加载的文件列表,该过程无需将整张表中所有的元数据读取至分布式系统的主线程,因此分布式系统的主线程无需占用大量内存,使得整体运行速度大幅提高,读取速度很快,相比于现有技术中通过Spark SQL中运行的SQL直接进行数据读取的方式,本发明实施例的数据读取方法只需读取文件的路径信息,避免了加载整张表中所有元数据到主线程的内存开销,保证了程序的正常运行,进而大大加快了数据读取的速度。
以下为了更加详细地说明本发明提出的一种数据读取方法,特别是在Spark分布式系统平台中,基于hive数据仓库来获取需要加载的文件列表的方式,本发明实施例还提供了另一种数据读取方法,如图2所示,该方法的具体的步骤包括:
201、启动hive服务器的读取任务。
其中,hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。
需要说明的是,这里的读取任务无需读取文件的内容,只需要读取文件的名称,因此,整个读取任务的速度非常快,同时通过启动hive服务器,无需分布式系统的主线程来读取文件内容,不会对主线程的内存造成过大的负担。
202、根据所述读取任务读取需要加载的文件在元数据中对应的路径信息,生成文件列表。
对于本发明实施例,需要加载的文件是通过预设查询语句获取的,若用户需要查询某一文件类型,这里的预设查询语句对应为查询类型对应的文件,若用户需要查询某一时间的文件,这里的预设查询语句对应为查询时间对应的文件。
具体地,根据用户传入的查询语句读取元数据,读取需要加载的文件在元数据中的路径信息,这里的元数据为对数据以及信息资源的描述性信息,然后通过执行读取任务的虚拟字段来获取需要加载文件对应的路径信息,对于本发明实施例中的hive服务器,可以使用INPUT_FILE_NAME虚拟字段来读取文件的路径信息,进一步将路径信息以表格的形式存储至hive服务器,生成文件列表。
203、通过Spark SQL解析所述路径信息,从所述元数据中加载所述文件列表中对应的文件内容。
由于路径信息为需要加载文件在元数据中的位置信息,通过Spark SQL解析路径信息,找到需要加载文件在元数据中的位置,这里的Spark SQL为Spark中处理结构化数据的模块,可以从元数据中加载数据,进一步从元数据中加载文件列表中对应的文件内容。
本发明实施例通过Spark SQL中运行的SQL解析路径信息,进而从元数据中加载文件列表中对应的文件内容,无需将整张数据表中所有的元数据读取至分布式系统的主线程,提高了数据读取速度,同时不会对主线程造成过大负担。
204、通过Spark SQL解析所述预设查询语句,得到过滤条件。
由于预设查询语句中不仅可以包含文件类型或者文件时间等一些文件筛选条件,为了保证读取的数据结果与元数据中数据结构相同,这里的预设查询语句中还可以包含对文件内容的过滤条件,如对文件内容中重复的内容进行过滤或者对文件内容中某一字段内容的删除,本发明实施例对预设查询语句不进行限定。
205、根据所述过滤条件对所述文件内容进行过滤,得到与所述元数据中相同数据结构的文件内容,生成数据读取结果。
对于本发明实施例,根据步骤204解析的过滤条件,利用Spark SQL的语句解析能力对文件内容进行过滤,从数据层面得到与元数据数据结构相同的文件内容,生成数据结果。
对于本发明实施例,具体的应用场景可以包括但不局限于下述实现方式,当需要将100g容量的文件数据分发到10个节点服务器中时,首先启动hive服务器的读取任务,根据用户传入的预设查询条件读取需要加载的文件在元数据中的路径信息,通过hive服务器的虚拟字段获取需要加载文件在元数据中的路径信息,生成文件列表,然后通过Spark SQL解析路径信息,加载文件列表中对应的文件内容到每台节点服务器内存,进一步在服务器内存中通过Spark SQL的语句解析能力解析预设查询语句,得到过滤条件,对内存中的文件内容进行过滤,得到与元数据中数据结构相同的文件内容,生成数据读取结果。
针对本发明实施例提供了另一种数据读取方法,通过获取需要加载的文件列表,该过程无需将整张表中所有的元数据读取至分布式系统的主线程,因此分布式系统的主线程无需占用大量内存,使得整体运行速度大幅提高,读取速度很快,相比于现有技术中通过Spark SQL中运行的SQL直接进行数据读取的方式,本发明实施例的数据读取方法只需读取文件的路径信息,避免了加载整张表中所有元数据到主线程的内存开销,保证了程序的正常运行,进而大大加快了数据读取的速度。
另外,上述数据读取方法,通过hive来取代分布式中主线程的位置,只需读取需要加载文件的路径信息,无需加载所有文件内容,能够减少主线程内存的较好,提升分布式系统的性能。
为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的数据读取方法。
为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述的数据读取方法。
进一步的,作为对上述图1及图2所示方法的实现,本发明另一实施例还提供了一种数据读取装置。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。该装置用于提高数据的读取速度,减少主线程的内存消耗,具体如图3所示,该装置包括:
获取单元31,可以用于获取需要加载的文件列表,所述文件列表中记录有需要加载的文件在元数据中对应的路径信息;
加载单元32,可以用于根据所述路径信息从所述元数据中加载所述文件列表中对应的文件内容;
处理单元33,可以用于对所述文件内容进行数据处理,得到与所述元数据中相同数据结构的文件内容,生成数据读取结果。
进一步的,如图4所示,所述获取单元包括:
启动模块311,可以用于启动hive服务器的读取任务;
读取模块312,可以用于根据所述读取任务读取需要加载的文件在元数据中对应的路径信息,生成文件列表。
进一步地,所述读取模块312,具体可以用于根据用户传入的预设查询语句获取需要加载的文件;
所述读取模块312,具体还可以用于通过执行所述读取任务的虚拟字段,获取需要加载的文件在元数据中对应的路径信息;
所述读取模块312,具体还可以用于将所述路径信息以表格的形式存储至hive服务器,生成所述文件列表。
进一步地,所述加载单元32,还可以用于通过Spark SQL解析所述路径信息,从所述元数据中加载所述文件列表中对应的文件内容。
进一步地,所述处理单元33包括:
解析模块331,可以用于通过Spark SQL解析所述预设查询语句,得到过滤条件;
过滤模块332,可以用于根据所述过滤条件对所述文件内容进行过滤,得到与所述元数据中相同数据结构的文件内容,生成数据读取结果。
综上所述,本发明实施例所采用的一种数据读取方法及装置,通过获取需要加载的文件列表,该过程无需将整张表中所有的元数据读取至分布式系统的主线程,因此分布式系统的主线程无需占用大量内存,使得整体运行速度大幅提高,读取速度很快,相比于现有技术中通过Spark SQL中运行的SQL直接进行数据读取的方式,本发明实施例的数据读取方法只需读取文件的路径信息,避免了加载整张表中所有元数据到主线程的内存开销,保证了程序的正常运行,进而大大加快了数据读取的速度。
所述数据读取装置包括处理器和存储器,上述获取单元、加载单元和处理单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来提高数据的读取速度,减少主线程的内存消耗。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述数据读取方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述数据读取方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
一种数据读取方法,包括:获取需要加载的文件列表,所述文件列表中记录有需要加载的文件在元数据中对应的路径信息;根据所述路径信息从所述元数据中加载所述文件列表中对应的文件内容;对所述文件内容进行数据处理,得到与所述元数据中相同数据结构的文件内容,生成数据读取结果。
进一步地,所述获取需要加载的文件列表包括:启动hive服务器的读取任务;根据所述读取任务读取需要加载的文件在元数据中对应的路径信息,生成文件列表。
进一步地,所述根据所述读取任务读取需要加载的文件在元数据中对应的路径信息,生成文件列表包括:根据用户传入的预设查询语句获取需要加载的文件;通过执行所述读取任务的虚拟字段,获取需要加载的文件在元数据中对应的路径信息;将所述路径信息以表格的形式存储至hive服务器,生成所述文件列表。
进一步地,所述根据所述路径信息从所述元数据中加载所述文件列表中对应的文件内容包括:通过Spark SQL解析所述路径信息,从所述元数据中加载所述文件列表中对应的文件内容。
进一步地,所述对所述文件内容进行数据处理,得到与所述元数据中相同数据结构的文件内容,生成数据读取结果包括:通过Spark SQL解析所述预设查询语句,得到过滤条件;根据所述过滤条件对所述文件内容进行过滤,得到与所述元数据中相同数据结构的文件内容,生成数据读取结果。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:获取需要加载的文件列表,所述文件列表中记录有需要加载的文件在元数据中对应的路径信息;根据所述路径信息从所述元数据中加载所述文件列表中对应的文件内容;对所述文件内容进行数据处理,得到与所述元数据中相同数据结构的文件内容,生成数据读取结果。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (9)
1.一种数据读取方法,其特征在于,包括:
获取需要加载的文件列表,所述文件列表中记录有需要加载的文件在元数据中对应的路径信息;
根据所述路径信息从所述元数据中加载所述文件列表中对应的文件内容;
对所述文件内容进行数据处理,得到与所述元数据中相同数据结构的文件内容,生成数据读取结果,具体为,通过Spark SQL解析预设查询语句,得到过滤条件;根据所述过滤条件对所述文件内容进行过滤,得到与所述元数据中相同数据结构的文件内容,生成数据读取结果。
2.根据权利要求1所述的方法,其特征在于,所述获取需要加载的文件列表包括:
启动hive服务器的读取任务;
根据所述读取任务读取需要加载的文件在元数据中对应的路径信息,生成文件列表。
3.根据权利要求2所述的方法,其特征在于,所述根据所述读取任务读取需要加载的文件在元数据中对应的路径信息,生成文件列表包括:
根据用户传入的预设查询语句获取需要加载的文件;
通过执行所述读取任务的虚拟字段,获取需要加载的文件在元数据中对应的路径信息;
将所述路径信息以表格的形式存储至hive服务器,生成所述文件列表。
4.根据权利要求3所述的方法,其特征在于,所述根据所述路径信息从所述元数据中加载所述文件列表中对应的文件内容包括:
通过Spark SQL解析所述路径信息,从所述元数据中加载所述文件列表中对应的文件内容。
5.一种数据读取装置,其特征在于,包括:
获取单元,用于获取需要加载的文件列表,所述文件列表中记录有需要加载的文件在元数据中对应的路径信息;
加载单元,用于根据所述路径信息从所述元数据中加载所述文件列表中对应的文件内容;
处理单元,用于对所述文件内容进行数据处理,得到与所述元数据中相同数据结构的文件内容,生成数据读取结果;
所述处理单元包括:
解析模块,用于通过Spark SQL解析预设查询语句,得到过滤条件;
过滤模块,用于根据所述过滤条件对所述文件内容进行过滤,得到与所述元数据中相同数据结构的文件内容,生成数据读取结果。
6.根据权利要求5所述的装置,其特征在于,所述获取单元包括:
启动模块,用于启动hive服务器的读取任务;
读取模块,用于根据所述读取任务读取需要加载的文件在元数据中对应的路径信息,生成文件列表。
7.根据权利要求6所述的装置,其特征在于,
所述读取模块,具体用于根据用户传入的预设查询语句获取需要加载的文件;
所述读取模块,具体还用于通过执行所述读取任务的虚拟字段,获取需要加载的文件在元数据中对应的路径信息;
所述读取模块,具体还用于将所述路径信息以表格的形式存储至hive服务器,生成所述文件列表。
8.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至权利要求4中任意一项所述的数据读取方法。
9.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至权利要求4中任意一项所述的数据读取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710667508.0A CN110019497B (zh) | 2017-08-07 | 2017-08-07 | 一种数据读取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710667508.0A CN110019497B (zh) | 2017-08-07 | 2017-08-07 | 一种数据读取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110019497A CN110019497A (zh) | 2019-07-16 |
CN110019497B true CN110019497B (zh) | 2021-06-08 |
Family
ID=67186049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710667508.0A Active CN110019497B (zh) | 2017-08-07 | 2017-08-07 | 一种数据读取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110019497B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112416311A (zh) * | 2019-08-22 | 2021-02-26 | 北京国双科技有限公司 | 数据处理方法和装置、存储介质及处理器 |
CN113934752B (zh) * | 2021-12-17 | 2022-06-03 | 中证信用增进股份有限公司 | 基于Spark组件的数据处理方法、装置、设备及介质 |
CN117573699B (zh) * | 2023-10-30 | 2024-09-27 | 中科驭数(北京)科技有限公司 | 一种基于数据处理单元读取列式存储文件的加速方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105045607A (zh) * | 2015-09-02 | 2015-11-11 | 广东创我科技发展有限公司 | 一种实现多种大数据计算框架统一接口的方法 |
CN106682064A (zh) * | 2016-11-03 | 2017-05-17 | 用友网络科技股份有限公司 | 企业报表的取数装置和取数方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593147B (zh) * | 2013-11-07 | 2016-08-17 | 华为技术有限公司 | 一种数据读取的方法及装置 |
CN104408190B (zh) * | 2014-12-15 | 2018-06-26 | 北京国双科技有限公司 | 基于Spark的数据处理方法及装置 |
CN105574093B (zh) * | 2015-12-10 | 2019-09-10 | 深圳市华讯方舟软件技术有限公司 | 一种在基于HDFS的spark-sql大数据处理系统上建立索引的方法 |
CN105550318B (zh) * | 2015-12-15 | 2017-12-26 | 深圳市华讯方舟软件技术有限公司 | 一种基于Spark大数据处理平台的查询方法 |
CN106933928B (zh) * | 2015-12-31 | 2019-12-10 | 北京国双科技有限公司 | 基于外部数据文件的任务存储方法及装置 |
-
2017
- 2017-08-07 CN CN201710667508.0A patent/CN110019497B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105045607A (zh) * | 2015-09-02 | 2015-11-11 | 广东创我科技发展有限公司 | 一种实现多种大数据计算框架统一接口的方法 |
CN106682064A (zh) * | 2016-11-03 | 2017-05-17 | 用友网络科技股份有限公司 | 企业报表的取数装置和取数方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110019497A (zh) | 2019-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102157925B1 (ko) | 데이터 질의 방법 및 장치 | |
CN106202235B (zh) | 一种数据处理方法及装置 | |
CN106681891A (zh) | 一种Java应用系统中调整日志级别的方法及装置 | |
CN111241073B (zh) | 一种数据质量检查方法及装置 | |
CN110908641B (zh) | 基于可视化的流计算平台、方法、设备和存储介质 | |
CN110019497B (zh) | 一种数据读取方法及装置 | |
CN106648839B (zh) | 数据处理的方法和装置 | |
CN106648567B (zh) | 数据获取方法及装置 | |
CN114218278A (zh) | http接口的数据表字段查询方法及系统 | |
CN114297204A (zh) | 一种异构数据源的数据存储、检索方法及装置 | |
CN107301097B (zh) | 一种调用java对象、java对象的引用地址信息的存储方法及装置 | |
CN111125087B (zh) | 数据的存储方法及装置 | |
CN113342806A (zh) | 大数据处理方法、装置、存储介质及处理器 | |
CN107291524B (zh) | 一种远程命令的处理方法和装置 | |
CN112597105A (zh) | 文件关联对象的处理方法、服务端设备及存储介质 | |
CN113297245A (zh) | 获取执行信息的方法及装置 | |
CN112527792A (zh) | 一种数据存储方法、装置、设备和存储介质 | |
CN108228604B (zh) | 基于内存对象的模型构建方法、信息查询方法及装置 | |
CN111435327A (zh) | 一种日志记录的处理方法、装置及系统 | |
CN110968763A (zh) | 数据处理的方法及装置 | |
CN106557469B (zh) | 一种处理数据仓库中数据的方法及装置 | |
CN115016737A (zh) | 一种基于Spark合并hive小文件的方法及系统 | |
CN109710833B (zh) | 用于确定内容节点的方法与设备 | |
CN108228145A (zh) | 混合型应用程序的数据处理方法、系统及移动设备 | |
CN108121719B (zh) | 一种实现数据抽取转换加载etl的方法及装置 |
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 | ||
CB02 | Change of applicant information |
Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: Beijing Guoshuang Technology Co.,Ltd. Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A Applicant before: Beijing Guoshuang Technology Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |