CN112905595A - 一种数据查询方法、装置及计算机可读存储介质 - Google Patents

一种数据查询方法、装置及计算机可读存储介质 Download PDF

Info

Publication number
CN112905595A
CN112905595A CN202110248482.2A CN202110248482A CN112905595A CN 112905595 A CN112905595 A CN 112905595A CN 202110248482 A CN202110248482 A CN 202110248482A CN 112905595 A CN112905595 A CN 112905595A
Authority
CN
China
Prior art keywords
data
query
target
engine
statement
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
Application number
CN202110248482.2A
Other languages
English (en)
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110248482.2A priority Critical patent/CN112905595A/zh
Publication of CN112905595A publication Critical patent/CN112905595A/zh
Pending legal-status Critical Current

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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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/242Query formulation
    • G06F16/2433Query languages
    • 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/24568Data stream processing; Continuous queries
    • 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/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • 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
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Fuzzy Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例公开了一种数据查询方法、装置及计算机可读存储介质,该方法包括:获取客户端提交的数据查询请求;若该数据查询请求携带有目标视图的视图名,则对数据查询请求进行重构处理,得到目标视图对应的至少一个数据表的目标查询语句;利用数据仓库中的元数据信息对目标查询语句进行解析,以确定查询引擎和查询规则,查询引擎为分布式计算引擎或本地计算引擎;利用查询引擎和查询规则从数据仓库中的目标数据库获取数据查询请求的数据查询结果,并将该数据查询结果发送给客户端,该数据仓库包括离线数据和实时数据中的一种或两种。通过本申请,可以实现离线数据和实时数据同步查询处理,降低复杂数据的查询难度,有效提高数据查询的效率。

Description

一种数据查询方法、装置及计算机可读存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据查询方法、装置及计算机可读存储介质。
背景技术
通常,在大数据场景下的实时查询需求涉及实时数据和离线数据的查询以及多维分析,但是目前基于各个数据引擎的多维分析系统中,有的多维分析系统对实时数据的查询分析能力欠缺,有的适用场景比较局限,需要同时获得多张表的数据情况下的表之间的关联能力差,影响到数据查询的效率,增加复杂数据查询的难度。
发明内容
本申请实施例提供一种数据查询方法、装置及计算机可读存储介质,可以实现离线数据和实时数据同步查询处理,降低复杂数据的查询难度,有效提高数据查询的效率。
本申请实施例一方面提供了一种数据查询方法,应用于查询服务器,包括:
获取客户端提交的数据查询请求;
若所述数据查询请求携带有目标视图的视图名,则对所述数据查询请求进行重构处理,得到所述目标视图对应的至少一个数据表的目标查询语句,所述目标查询语句包括所述至少一个数据表的选择语句;
利用数据仓库中的元数据信息对所述目标查询语句进行解析,以确定查询引擎和查询规则,所述查询引擎为分布式计算引擎或本地计算引擎;
利用所述查询引擎和查询规则从所述数据仓库中的目标数据库获取所述数据查询请求的数据查询结果,并将所述数据查询结果发送给所述客户端,所述数据仓库包括离线数据和实时数据中的一种或两种。
本申请实施例一方面提供了一种数据查询装置,包括:
获取模块,用于获取客户端提交的数据查询请求;
重构模块,用于若所述数据查询请求携带有目标视图的视图名,则对所述数据查询请求进行重构处理,得到所述目标视图对应的至少一个数据表的目标查询语句,所述目标查询语句包括所述至少一个数据表的选择语句;
确定模块,用于利用数据仓库中的元数据信息对所述目标查询语句进行解析,以确定查询引擎和查询规则,所述查询引擎为分布式计算引擎或本地计算引擎;
查询模块,用于利用所述查询引擎和查询规则从所述数据仓库中的目标数据库获取所述数据查询请求的数据查询结果,并将所述数据查询结果发送给所述客户端,所述数据仓库包括离线数据和实时数据中的一种或两种。
本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请实施例中的数据查询方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时,执行本申请实施例中的数据查询方法。
相应的,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例中一方面提供的数据查询方法。
在本申请实施例中,通过对客户端提交的携带视图名的数据查询请求进行重构处理,得到视图名对应的目标视图定义中包括的数据表的目标查询语句,在数据查询时通过视图名查询数据,可以降低复杂数据的查询难度,将视图查询映射到数据表的查询,能够实现对底层数据的访问;随后利用数据仓库的元数据信息来解析该目标查询语句,得到不同的查询引擎和查询规则,通过自适应地选用查询引擎,可以提高资源利用效率以及数据查询的效率;再利用查询引擎和查询规则从数据仓库中包括的实时数据或离线数据查询数据,得到最终的数据查询结果,可以实现离线数据的批处理和实时数据流的同步查询,即实现数据的批流一体化处理。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据查询系统的架构图;
图2是本申请实施例提供的另一种数据查询系统的架构图;
图3是本申请实施例提供的一种数据查询方法的流程示意图;
图4是本申请实施例提供的另一种数据查询方法的流程示意图;
图5是本申请实施例提供的一种数据查询装置的结构示意图;
图6是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面先对本申请涉及的关键术语定义进行解释。
数据引擎:即数据库引擎,用于存储、处理和保护数据。利用数据库引擎可控制访问权限并快速处理事务,从而处理大量数据。
物理表:即基本表,是具体存储在某一数据源中的真实的表。
视图:视图是存储在数据库中的SQL语句,是基于物理表创建的一个虚拟表或者说逻辑表,不会实质地存储于数据库中,但可以映射到物理表。其内容由查询定义,和数据库中存储的物理表一样,包含一系列带有名称的列和行数据。行和列数据来定义视图查询引用的表,可以来自当前或其他数据库的一个或多个表,或者其他已经定义好的视图。视图类似于查看底层数据的窗口,可以看到想看的数据,也使得复杂的查询易于理解和使用。
元数据:简单定义是描述数据的数据,即对数据的内容、质量或其他特性的数据描述,它说明了数据的来源、意义等,能用以了解数据的内容、数据格式、数据存储位置等等,例如数据源元数据中涉及的库名、版本、域名、存储元数据中涉及的数据结构、生命周期、存储属性等。
YARN:一个操作系统级别的资源管理和调度的框架,可以对多种计算框架共享集群资源,按需分配。
Spark:一款开源的通用并行计算框架,专为大规模数据处理而设计的快速通用的计算引擎,可以跑在很多集群上,如Spark on YARN Cluster。
SQL:Structured Query Language,结构化查询语言,用于管理关系数据库管理系统,可以从数据库取数据、更新数据,在数据库中创建新表、创建视图、设置表和视图权限等功能。
异构数据源:不同的数据库管理系统之间的数据。
本申请提供的数据查询方法是一种基于视图模型自适应实时查询分析的方法,该方法通过重构数据查询语句中基于视图的查询,将对视图的查询映射到物理表,根据重构后得到的目标查询语句,以最优化的方式制定合适的查询计划以及高效的查询引擎,利用查询计划和查询引擎从包括实时数据和离线数据的数据仓库中获取相应数据作为数据查询结果,可以降低数据查询的复杂度,实现对实时数据流和离线数据的实时多维分析,提高数据查询的效率。
本申请提供的方案属于人工智能基础技术下的云计算和分布式存储技术,同时涉及云基础技术的云计算以及数据库。下面对本申请提供的数据查询方案涉及的技术进行简要阐述。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云基础技术类包括云计算(cloud computing)。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云计算指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(GridComputing)、分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
数据库(Database),简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
数据库管理系统(英语:Database Management System,简称DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、XML(Extensible MarkupLanguage,即可扩展标记语言);或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如SQL(结构化查询语言(Structured QueryLanguage)、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。
可以理解的是,本申请实施例提供的方法可以由计算机设备执行,计算机设备包括但不限于用户终端或服务器。其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
请参见图1,图1是本申请实施例提供的一种数据查询系统的架构图,该数据查询系统包括用户终端101、查询服务器102、数据管理服务器103、数据仓库104以及分布式计算引擎105,具体使用场景为:用户终端101输入数据查询语句,经过查询服务器102、数据管理服务器103、数据仓库104以及分布式计算引擎105联合处理得到数据查询结果。
用户终端101可以是计算机设备,例如台式计算机、笔记本、平板电脑等,用户终端101可以将数据查询请求发送给查询服务器102,还可以接收查询服务器102返回的数据查询结果,作为一种扩展的内容,用户终端101可以自定义视图作为数据查询的来源,同步给数据管理服务器103,以便数据管理服务器103结合该自定义视图存储元数据信息。
查询服务器102主要用于接收用户终端101发送的数据查询请求,和数据管理服务器103进行交互获取元数据信息来辅助解析数据查询请求,在数据查询请求携带视图名的时候,结合元数据将对视图的查询映射到对物理表的查询,此外,在查询数据是异构数据源的情况下,将相应的任务执行请求提交给分布式计算引擎105,并接收分布式计算引擎105拉取数据仓库104中的数据计算得到的数据查询结果,然后将数据查询结果返回给用户终端101,在查询数据是同源数据的情况下,本地计算引擎会和数据仓库104交互,直接获取数据查询结果,并将其返回给用户终端101。
数据管理服务器103主要用于管理元数据信息,可以从数据仓库104中同步元数据,接收用户终端101定义的视图或者根据用户终端101对数据表的历史查询记录预先定义视图,并通过该视图的定义和元数据获取到目标元数据,也可以根据同步的元数据预先生成视图,而不由用户终端101来定义,元数据作为数据查询请求解析的基础,通过相应的应用程序接口(Application Programming Interface,API)和查询服务器102进行交互,接收查询服务器102的请求,将目标元数据同步给数据查询服务器102。
数据仓库104是由多种数据引擎组合而成,属于分布式的服务器集群,主要用于存储实际的表数据、元数据、视图等。在数据查询的过程中,会将元数据实时同步至数据管理服务器103,并且在使用分布式计算引擎105查询数据时,数据仓库104会响应分布式计算引擎105的查询请求,将数据发送给分布式计算引擎105进行聚合处理,另外在使用本地计算引擎计算时,会接收调度SQL的请求,将数据仓库中的数据发送至查询服务器102作为数据查询结果。
分布式计算引擎105也属于分布式的服务器集群,例如Spark(on)Yarn Cluster,主要是进行Spark计算,可以响应查询服务器102的查询请求,适配合适的数据源连接器Connector从数据仓库104中获取数据,在分布式引擎105中进行计算得到聚合的数据查询结果,并将该数据查询结果返回给查询服务器102,进而由查询服务器102发送至用户终端101。
作为一种可选的实施例,查询服务器102和数据管理服务器103所具备的功能可以集成在同一台服务器中,作为查询管理服务器,具备视图服务功能和数据管理功能,针对用户终端101发送的数据查询请求,查询管理服务器响应该请求并将其中的视图名解析出来,执行视图到表的映射,然后加载元数据进行解析,得到相应执行计划,并按照执行计划,利用本地计算引擎或分布式计算引擎105从数据仓库104中获取数据。
在实际过程中,可基于区块链网络来部署该数据查询系统,即可将查询服务器102、数据管理服务器103、数据仓库104、分布式计算引擎105以及用户终端101均部署在区块链网络中,或者将用户终端101部署在区块链网络外,将查询服务器102、数据管理服务器103、数据仓库104、分布式计算引擎105部署在区块链网络内等等。当将查询服务器102、数据管理服务器103、数据仓库104、分布式计算引擎105等服务器部署在区块链网络内,且查询服务器102、数据管理服务器103、数据仓库104、分布式计算引擎105是由多个物理服务器构成的服务器集群或者分布式系统时,每个物理服务器均可作为区块链网络中的节点。其中,此处所提及的区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。其本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块。在本申请所公开的数据查询方法,其中这些数据(如数据查询请求、数据查询结果、数据仓库的元数据信息、视图的视图名等)可保存于区块链上。
进一步地,为便于理解,请参见图2,图2是本申请实施例提供的另一种数据查询系统的架构图,具体包括客户端(Client)201、视图服务(View Server)202、数据管理服务(Meta Manager)203、数据源(Data Source)204以及Spark引擎205。其中,客户端201可以是运行在用户终端101中的进程,其余模块均可以以软件形式集成于服务器中,通过视图服务202响应客户端201提交的数据查询请求,并将数据管理服务203作为辅助工具以对数据查询请求进行解析,按照一定规则解析后生成的执行策略,选用本地计算引擎从数据源204中查询,或者选用Spark引擎205处理得到数据查询结果。
其中,客户端201对应上述图1中的用户终端101,具体可以是能够编译SQL查询语句的计算机设备,包括台式计算机、笔记本、平板电脑等,在此不做限制,主要功能是利用SQL语言的编写规则查询数据,具体来源可以是数据源204中存储的表或者已有的视图,将该SQL语句作为数据查询请求,发送给视图服务202,这样视图服务202结合数据管理服务203、数据源204以及Spark引擎205对该数据查询请求处理,将查询得到的数据返回给客户端201,客户端201接收到视图服务202联合其他模块直接查询得到的数据或聚合后的数据。
视图服务202可以作为进程嵌入上述图1中的查询服务器102中,作为本方案的核心部分,视图服务一方面为业务侧(即客户端201)提供基于SQL的视图,系统使用者(即分析人员)基于视图进行多维聚合分析,另一方面视图服务202借助数据管理服务203中的meta管理服务提供的meta信息,在构建视图时,总是选取最优的底层计算存储引擎执行查询,也就是在数据源204中包括的多个数据引擎中选取查询性能最优异的执行查询操作。视图服务202提供支持的业务视图列表,包括视图名、视图字段等信息。当视图服务202接收客户端201发送的数据查询请求,首先利用视图到表的映射(views2tables)将客户端201发送的SQL语句进行重写,将查询语句中的视图名替换为建立视图的SQL语句,将对视图的查询转换为对基本表的查询,通过将视图拆解为各个基本表之间的关联关系,实现嵌套查询,然后,通过解析重写后的SQL语句(SQL Parser),对SQL语句进行词法分析、语法分析,生成抽象语法树(Abstract Syntax Tree,AST),对重写后的语句以树形结构的表现形式进行进一步分析,接着,结合加载的元数据(Load Meta)遍历抽象语法树,对其进行合法性验证(SQLValidate),当验证通过时,向底层下发数据查询请求进行数据查询,随后,通过对抽象语法树进行逻辑分析生成逻辑计划(Logical Plan),逻辑分析是纯代数的分析过程,按照数据源和关联关系将抽象语法树拆解为有向无环图(Directed Acyclic Graph,DAG),该DAG描述了数据流的方向,其中的每一个节点都是一个算子,描述了SQL操作中的不同动作,但和底层的分布式环境不相关,优化逻辑计划(Optimize)主要包括谓词下推,列裁剪,常量替换与累加,分区替换,其中,分区替换是不同于常规引擎的部分,对于某个表而言,其分区数据可能部分存放于Druid,Clickhouse等较快的引擎中,也有可能存放于Hive等较慢的数据引擎中,在数据完整性的前提下,优先使用快的数据引擎分区数据。对优化后的逻辑计划进行物理分析,将逻辑计划做变换得到物理计划(Physical Plan),此时物理计划和底层的执行环境密切相关,例如如何将数据排序、读取数据量的大小、读取数据的方式、需要启动多少进程执行任务等。物理计划中根据同源数据或异构数据决定了计算引擎(即执行引擎,ExecEngine Selector)的方式是本地计算引擎(In memory)还是分布式计算引擎Spark(UseSpark),在选用本地计算引擎查询数据时,根据DAG和调度的SQL请求(Dispatch SQLRequest)查询数据源204中的某一数据库中的数据,然后将查询到的数据进行合并(MergeResult),直接返回数据查询结果(Create Result Set);在选用Spark引擎205查询数据时,由于异构数据是来自不同数据库的数据,针对不同的数据库,查询的数据语言结构不同,因此需要利用代码生成工具(CodeGen)生成对应数据库的查询代码,并利用代码编译工具(JIT)对其进行编译生成可执行对象,将多个可执行对象提交给Spark引擎205(JobSubmit),Spark引擎205拉取数据源204中的数据得到数据查询结果(Create Result Set)。
数据管理服务203主要提供各数据源的meta信息,包含数据的数据格式,数据分区信息等,元数据服务(Meta Server)通过应用程序接口,例如RESTful API,和视图服务202中的加载元数据模块通信,将存储的元数据发送给视图服务202,以验证重写后的SQL语句。在数据管理服务203中,首先同步数据源204中所有的元数据信息(Meta Sync),然后根据视图定义(View Define)的内容和同步的元数据信息筛选出目标元数据,并将该目标元数据信息存储起来(Meta storage),通过元数据服务,向视图服务202共享目标元数据信息。在数据管理服务203中的视图定义可以由相应的进程根据元数据信息自动生成视图,以备系统使用者基于该视图进行查询,简化查询语句,也可以通过分析用户查询的业务数据的关联关系来预先定义视图,这样有针对性地提供不同的视图。需要说明的是,数据管理服务203可以运行于图1中的数据管理服务器103中,也可以和视图服务102一同运行于查询服务器102中。
数据源204作为底层计算存储引擎(即数据层),对应图1所示的数据仓库104,由多个数据库构成,包括存储离线数据的TDW、存储实时数据的Druid、存储离线文件的File、关系型数据库MySQL、Pivot、实时检索分析平台Hermes、能对海量数据进行查询分析的Clickhouse以及可以基于大量静态数据进行批处理作业的Hive等,这些数据库均可以分布式部署在不同的计算机设备上。数据源204所包括的数据引擎主要用于存储各种表数据,为数据管理服务203以及计算引擎(包括本地计算引擎以及分布式计算引擎)提供原始的数据,具体数据可以由日志和词表两类数据组成,例如广告数据中原始的曝光、点击、效果日志和广告词表、订单词表、资源词表等等,将这些数据分别存储在Hive、Druid、Pivot、Clickhouse等数据库中,在需要对广告数据进行分析时,均可从数据源204中获取到。数据源204将元数据信息同步至数据管理服务203,将Spark引擎205请求的数据通过数据源连接器Connector发送给集群处理平台Spark on Yarn Cluster,还可以和视图服务202中的本地计算引擎进行交互,直接返回数据作为数据查询结果。
Spark引擎205对应图1所示的分布式计算引擎105,主要用于对异构数据进行查询,执行Spark计算,具体形式可以是Spark on Yarn Cluster模式的集群计算,通过适配各数据源连接器,将各数据源的计算结果拉取到Spark集群中,借助Spark引擎具备的查询能力进行聚合计算,生成计算结果。Spark引擎205还可以是Spark on Yarn Client,在此不做限制。
上述系统架构客户端201的数据查询语句携带的视图将数据层的物理表抽象出来,通过视图服务202将视图映射到物理表,与数据管理服务203、数据源204以及Spark引擎205同时运行实现数据的查询,构成基于视图模型的自适应实时查询分析的方法系统,以最优化的方式,实现批流一体化的实时多维查询分析。需要说明的是,该系统架构下的方法可以应用于一些办公系统中的查询,例如格林斯潘自助查询分析系统。
请参见图3,图3是本申请实施例基于图1的数据查询系统提供的一种数据查询方法的流程示意图。该方法可以由上述图1所示的查询服务器102执行。为便于理解,本实施例以该方法由上述查询服务器执行为例进行说明。其中,该数据查询方法至少可以包括以下步骤S301-步骤S304:
步骤S301,获取客户端提交的数据查询请求。
在一种可能的实施例中,客户端即图2所示的系统架构图中的客户端201,对应如图1所示的数据查询系统中的用户终端101,分析人员通过在客户端编写查询数据的SQL语句,编写遵循的具体语言规则如下:SELECT(字段)FROM(表名/视图名),表示从底层数据引擎(如图2所示的数据源204中的数据库)存储的数据表或已有的视图中查询相应字段的数据,在FROM(表名/视图名)之后还可以使用相关的条件字句,例如WHERE、IF等来限定数据选择的标准,对数据进行多个维度的分析。分析人员编写完SQL语句后,通过一些触发操作可以将SQL请求,即数据查询请求发送给视图服务,后端的服务器(如图1所示的查询服务器102)接收到客户端提交的数据查询请求后,会进行相应地处理。站在服务器的角度即获取客户端提交的数据查询请求。由上述可知,数据查询请求可以携带有至少一个视图的视图名或至少一个数据表的表名中的一者或两者,对于数据表中的目标字段可以选择用默认方式“SELECT*”查询底层数据表或视图的所有字段,也可以选用“SELECT(字段)”选择部分字段作为目标字段来查询具体数据,在此不做限制。
步骤S302,若所述数据查询请求携带有目标视图的视图名,对所述数据查询请求进行重构处理,得到所述目标视图对应的至少一个数据表的目标查询语句。
在一种可能的实施例中,视图作为底层数据表的浏览窗口,和物理表有相似的格式,它可以理解为不同的表关联生成的逻辑意义的表(即逻辑表或虚拟表),例如200个表名,300个字段定义下的视图,是由这200张物理表抽象成的大宽表,其包括的字段级别是百级别的。视图名是该虚拟表的表名,在基于视图查询数据时,都是直接引用视图名,而该视图名对应的视图是虚拟表,不能再数据库中找到,因此需要将对视图的查询转换为对基本表的查询,具体操作是在数据查询请求中携带目标视图的视图名时,对该数据查询请求其进行重构。其中,目标视图是在查询数据之前预先定义好的视图,目标查询语句包括至少一个数据表的选择语句,可以通过解析创建视图的语句得到。在视图定义中,可以在数据管理服务上根据从数据仓库中同步的元数据指示的至少两个数据表之间的关联关系预先创建部分可用视图,也可以根据用户查询数据表的频次来创建视图,例如用户每次查询数据都是数据表1至表10中的数据,且次数达到设定阈值,那么在数据管理服务中可以将表1-表10定义到视图view_student中,并以相应的形式告知用户,那么下次查询时即可基于视图view_student查询对应数据,降低了多张数据表在查询语言上编写的复杂度。由上,对于视图定义可以由数据管理服务中分析自动定义或用户终端的人工定义,对视图定义的途径和方式在此不做限定。
创建视图语句的具体格式为:CREATE VIEW(视图名)AS SELECT(字段)FROM(表名或视图名),表示从表中或已存在的视图中获取相应字段的数值作为视图内容,SELECT后的字段以及FROM后的表名或视图名的数量在此均不做限制,因此,创建视图可以基于单表、多表或者源视图。而创建视图中的SELECT(字段)FROM(表名或视图名)即为该视图对应的至少一个数据表的选择语句。由于视图服务提供支持的业务视图列表,包括视图名,视图字段等信息,在接收到数据查询请求后,视图服务若解析出数据查询请求中携带业务视图列表支持的视图名,将其作为目标视图的视图名,并对数据查询请求进行重构处理,也就是根据分析人员编写的SQL进行重写,具体是将视图名替换为建立视图语句中的选择语句。目标查询语句和客户端分析人员编写的SQL形式相同,不同的是,目标查询语句针对的均是底层的物理表的嵌套查询。通过SQL重写,可以将视图的查询翻译为基本表的查询,由后台系统进行底层关联,将来自不同数据源的字段查询出来,有利于SQL语句的有效性验证。
在一种可能的实施例中,数据查询请求包括第一查询语句,即分析人员编写的初始查询语句,当该初始查询语句包括目标视图的视图名,对其进行重构处理,确定出重构之后的目标查询语句,其中,目标视图是指预先定义的视图中的一个或多个,预先定义的视图都有唯一的视图名,确定目标查询语句的步骤可以包括:首先获取记录的目标视图的创建语句,该目标视图的创建语句可以是存储在数据管理服务器中的SQL语句,然后从目标视图的创建语句中获取目标视图对应的至少一个数据表的选择语句,通过解析第一查询语句确定其中携带的目标视图的视图名,随后利用选择语句替换第一查询语句中目标视图的视图名,以得到至少一个数据表的目标查询语句。
举例来说,当第一查询语句针对视图名view_students_info中所有字段的数据进行查询时,view_students_info即为目标视图,具体的查询语句为:SELECT*FROM view_students_info,视图服务接收到数据查询请求中的第一查询语句,解析出查询数据的来源是预先定义的视图,需要对其进行重构处理,首先可以从数据管理服务中获取记录的目标视图的创建语句,具体如下:CREATE VIEW view_students_info AS SELECT id,name,dept_id,age,sex,height,login_date FROM tb_students_info,jd_students_info,由上述创建视图的语句可知该目标视图中的数据是来自两个数据表:tb_students_info以及jd_students_info,字段有id、name、dept_id、age、sex、height、login_date,该目标视图对应的选择语句为:SELECT id,name,dept_id,age,sex,height,login_date FROM tb_students_info,jd_students_info。然后将解析出来的目标视图的视图名用选择语句替换掉,构成目标查询语句:SELECT*FROM(SELECT id,name,dept_id,age,sex,height,login_date FROM tb_students_info,jd_students_info)这样的一个嵌套查询语句,最终的查询内容的列数据默认为该目标视图定义的每个字段对应的数据,行数据即为所有字段对应的数据,可以发现,目标查询语句都是针对至少一个数据表的查询语句。需要说明的是,如果数据查询请求中的第一查询语句不涉及对视图的查询,那么对数据查询请求不会进行重构处理,即将分析人员编写的初始查询语句作为目标查询语句使用。
由上可知,在使用视图查询数据时,业务使用者不需要知道数据源在哪个数据库,只需关注业务逻辑,简化了用户理解系统的难度,且用户不需要了解基本表的结构,也接触不到物理表中的数据,有利于数据库的安全,此外,客户端不用关注表的来源,也就不用针对不同数据库的编写不同数据语言的查询语句,而是可以统一使用SQL创建基于视图的查询语句,进而可以利用视图查看所需的数据。这样在面对复杂业务数据的查询时,可以大大降低客户端的编写查询语言的难度和冗余度。
步骤S303,利用数据仓库中的元数据信息对所述目标查询语句进行解析,以确定查询引擎和查询规则,所述查询引擎为分布式计算引擎或本地计算引擎。
在一种可能的实施例中,数据仓库对应图2系统架构图中的数据源204,是由多个不同查询性能的数据库组合而成,数据仓库中的元数据信息包含数据的数据格式,数据分区信息等,利用元数据信息对目标查询语句进行解析,包括SQL解析、SQL有效性验证、生成逻辑执行计划、优化逻辑执行计划、生成物理执行计划。具体的解析方式包括词法解析、语法解析、语义解析,其中语义解析包括逻辑分析和物理分析,分别生成逻辑执行计划和物理执行计划,物理执行计划即查询规则,和底层数据引擎关联,可以理解为怎么做,具体到详细的步骤以及所需的资源等,所以在查询规则中也就指示了查询引擎的种类为本地计算引擎还是分布式计算引擎,其中,本地计算引擎是非分布式的计算引擎,利用本地内存进行计算或对表做关联操作,而分布式计算引擎,例如,Spark引擎一般是涉及集群运算的计算引擎。
步骤S304,利用所述查询引擎和查询规则从所述数据仓库中的目标数据库获取所述数据查询请求的数据查询结果,并将所述数据查询结果发送给所述客户端,所述数据仓库包括离线数据和实时数据中的一种或两种。
在一种可能的实施例中,目标数据库是根据查询规则从数据仓库中指定的数据库,特别是针对分区数据,该数据库和查询的数据具备较高的适配度,在查询性能有较优异的表现。由于数据仓库的多种数据库在功能上侧重不同,从大类上划分,可以将数据仓库中包括的数据库划分为离线数据库和实时数据库,离线数据库专攻海量离线数据的处理分析,实时数据库则适用于实时数据分析,针对实时数据提供多维、交互式查询等功能,实现万级千亿级数据的秒级统计分析。在数据查询中涉及离线数据和实时数据时,可以同时从大数据实时流和历史离线数据中提取数据进行多维分析,实现批流一体化的查询分析。利用查询规则指示的查询引擎,从目标数据库获取到数据查询分析请求中各数据表包括的字段对应的数据作为数据查询结果,返回给客户端,若在客户端基于视图查询,则查看的数据可以为字段在百级别的大宽表。
在利用查询引擎和查询规则对数据进行查询的过程中,若查询引擎为分布式计算引擎,例如Spark on Yarn Cluster,首先利用代码生成工具和查询规则生成数据仓库中的目标数据库中每个数据库的查询代码,具体是代码生成工具CodeGen将DAG进行转换成相应数据引擎的查询代码,即针对不同数据语言有不同的查询代码。然后利用代码编译工具JIT对查询代码进行编译,得到每个数据库的可执行对象,利用该代码编译工具可以生成可执行Objective,即可执行对象,接着对每个数据库对应的查询代码生成的可执行对象进行提交(Job Submit),以指示分布式引擎利用可执行对象从对应的数据库中获取数据,最后利用分布式计算引擎对获取的数据进行聚合处理,得到数据查询请求的数据查询结果。上述根据DAG生成查询代码是一个动态编译的过程,可以使得查询数据更加灵活,且Spark集群环境的稳定可靠也保证了数据查询的性能。
综上所述,本申请实施例至少包括以下优点:
本申请实施例提供的方案是基于视图的多维分析计算方法,通过对携带视图名的数据查询请求进行重构处理,将视图映射到物理表,从而实现数据的查询分析,对不同的业务使用方可以提供不同的视图,通过构建视图,屏蔽了针对大量数据表的复杂查询语句,避免了用户针对不同数据引擎编写不同数据查询语言,降低了业务使用难度,特别适合复杂业务场景;根据重构后的查询语句对数据查询过程中,将该查询语句验证、解析得到的查询规则和查询引擎,合理利用计算资源进行数据查询,使用分布式计算引擎查询数据保证了数据查询的实时性、高可用以及可靠性。
请参见图4,图4是本申请实施例基于图1的数据查询系统提供的另一种数据查询方法的流程示意图。该方法可以由上述图1所示的查询服务器102执行。为便于理解,本实施例以该方法由上述查询服务器102执行为例进行说明。其中,该数据查询方法至少可以包括以下步骤S401-步骤S406:
步骤S401,获取客户端提交的数据查询请求。
步骤S402,对所述数据查询请求进行重构处理,得到所述至少一个数据表的目标查询语句。
以上步骤的具体实现方式可参见上述图3对应实施例中的步骤S301-步骤S302,这里不再进行赘述。
步骤S403,根据所述目标查询语句和数据仓库中的元数据信息确定有向无环图,所述有向无环图用于指示数据查询的逻辑执行规则。
在一种可能的实施例中,在执行此步骤之前,还包括对目标查询语句进行相应处理,具体内容包括:从数据管理服务器中获取数据仓库中的元数据信息,这里获取的元数据信息主要是用于对目标查询语句解析处理得到的语法结构表示树,如抽象语法树AST进行验证,可以通过遍历AST实现,若验证通过,则触发执行根据目标查询语句和数据仓库中的元数据信息确定有向无环图的步骤。若验证不通过,系统会进行报错处理,以提示分析人员对定义的查询语句进行正确性检验和更改处理。上述语法结构表示树的每一个节点即代表了SQL的一个语法规则,整个树表示对应查询语句的语法结构,是程序的一种中间表现形式,这种结构的重要特性是等价变换,在做分析元数据和优化查询时十分有用。验证通过后确定有向无环图DAG的过程则是生成逻辑执行计划的过程,而有向无环图则指示了数据查询的逻辑执行规则,每一个节点都表示一个逻辑算子,DAG和AST的关系可以视为对AST进行逻辑分析得到的。数据仓库中的元数据信息是根据视图定义中的相关信息,例如视图定义中的表名筛选之后的元数据信息。由于元数据信息包括数据的格式、分区信息、数据存放地址等,因此可以根据元数据信息确定至少两个数据表之间的关联(join)关系,包括左关联、右关联、内部关联等形式,这样将表进行关联,可以同时获取多个数据表的数据,提高数据查询的效率。在获取到关联关系后,就可以利用目标查询语句、元数据信息以及关联关系确定有向无环图,即逻辑执行计划,通过AST基本分析出提交了一个什么样的语句,其中关联了什么表,这些表的基本结构是怎样的,其中又使用了什么函数等等。
步骤S404,对所述有向无环图进行调整处理,以确定查询规则,所述调整处理包括谓词下推、列裁剪、常量替换与累加以及分区替换中的一种或多种;
在一种可能的实施例中,虽然有向无环图可以转换为物理执行计划在计算引擎中直接执行,但可能得到的并不是最优的,很多冗余或低效的写法会带来执行效率的问题,因此需要对DAG进行优化,主要是针对绑定元数据后的AST中具体的操作节点进行优化,包括基于规则的优化和基于代价的优化,在此步骤中可以利用基于规则的优化。这里的规则大部分是基于直观或经验得到的启发式规则,遍历抽象语法树的模式符合规则时等价转换进行优化,例如列裁剪可以过滤掉查询不需要使用到的列,谓词下推可以将过滤尽可能地下沉到数据源端,将过滤Filter算子直接下推到Join算子之前,也就是先将数据过滤,在进行Join,这样可以大大减少Join算子处理的数据量,从而加快计算速度,常量累加可以实现计算比如1+2的常量,常量替换中将SELECT*FROM table WHERE i=1AND j=i+2转换成SELECT*FROM table WHERE i=1AND j=3。除此之外,分区替换则是不同于常规数据引擎的部分,对于某个表而言,其分区数据可能部分存放于Druid,Clickhouse等较快的数据引擎中,也有可能存放于Hive等较慢的数据引擎中,在数据完整性的前提下,优先使用较快的数据引擎分区数据,也就是用较快的数据引擎替换较慢的数据引擎,这样根据查询性能可以筛选出表现优异的数据库,因此,分区替换也影响着下述目标数据库的构成。可以理解的是,上述分区替换也可以视为基于代价的优化,即在所有执行路径的代价中挑选代价最小的执行路径,在对有向无环图进行优化处理之后,并不能被识别和执行,而是需要将优化后的逻辑执行计划翻译成物理执行计划,即查询规则,使得系统能够对其进行处理,查询到数据。
步骤S405,若所述目标视图对应至少两个数据表,则根据所述至少两个数据表之间的同源或异构关系确定查询引擎。
在一种可能的实施例中,每个数据表都是数据查询请求中待查询的数据表,可以作为视图中数据的来源。在生成物理执行计划的过程中,需要选择合理的执行引擎(即查询引擎),由此有以下选择策略:若至少两个数据表之间为同源关系,则将本地计算引擎作为查询引擎,若至少两个数据表之间为异构关系,则将分布式计算引擎作为查询引擎。简单来说就是对于同源数据的查询,可选用本地计算引擎,对于异构数据源采用分布式计算引擎,例如Spark引擎进行计算。由于同源关系的数据都在同一个数据库中,调用本地计算引擎来查询的开销会比Spark集群计算引擎的开销更小,例如查询的数据表都为MySQL中的基本表,那么本地计算引擎就可以访问MySQL进行查询,利用本地内存做关联操作等;异构关系的数据来自不同数据库,且相应数据库的数据语言结构不同,利用集群计算统一调度效率更高。相对于单一的引擎,对于数据量越大,关联越多的场景,分布式计算引擎能够取得更好的查询性能。
在一种可能的实施例中,若目标视图对应一个数据表,则由于不涉及数据仓库中不同数据库的数据查询,因此可以直接确定查询引擎为本地计算引擎。
步骤S406,利用所述查询引擎和查询规则从所述数据仓库中的目标数据库获取所述数据查询请求的数据查询结果,并将所述数据查询结果发送给所述客户端,所述数据库包括离线数据和实时数据中的一种或两种。
在一种可能的实施例中,目标数据库的确定过程可以包括如下步骤:若至少一个数据表中存在第一数据表的分区数据存储数据仓库的至少两个数据库中,则根据查询性能从至少两个数据库中确定第一数据库,在对逻辑执行计划进行优化的过程中包括分区数据的替换,第一数据表即为分区数据存储在多个数据引擎中的数据表,这样需要选取查询性能最好的数据库作为第一数据库来拉取数据,可以提高查询速度,减小查询开销。查询性能的衡量可以从多方面,这里主要是查询数据本身的快慢,由查询数据引起的问题可能会导致响应或查询时间太长而无法识别或返回数据。可以基于数据仓库的不同数据库建立一个查询性能排名表,如果多个数据库中都有所需的分区数据,则选择该多个数据库在表中排名最靠前的那个数据库进行查询,例如,第一数据表中的同一数据分布存储在6个不同的数据库中,分别是A、B、C、D、E、F,这6个数据库在查询性能排名表中的排序由高到低分别是B、D、E、A、C、F,在这种情况下,第一数据表的分区数据选取查询性能最高的数据库B进行查询。
此外,针对除第一数据表之外的数据表,其所在的数据库是唯一确定的,因此将其作为第二数据库,在查询数据的过程中,特别是这样的异构数据源,需要将该第一数据库和该第二数据库作为目标数据库。利用分布式计算引擎时,根据查询规则可以和对应的目标数据库进行交互,获取到数据查询结果,并将其返回给客户端。
综上所述,本申请实施例至少包括以下优点:
在基于视图查询数据时,将数据查询请求中携带视图名的查询语句进行重写,得到目标查询语句,同时借助数据管理服务提供的元数据信息对目标查询语句进行解析,得到指示逻辑执行规则的有向无环图,并对其进行优化,在优化过程中除了常规的处理以提升数据查询的效率,还在构建视图时,总是选取最优的底层计算存储引擎执行查询,即通过分区替换对视图解析进行优化,择优选择代价最少的分区数据,从而保障了整体查询性能。另外,根据数据的同源和异构关系自适应选择执行引擎,以最优的查询规则和执行引擎,提高数据表之间的关联能力,实现离线数据的批处理和实时数据流处理的查询分析。
请参见图5,是本申请实施例提供的一种数据查询装置的结构示意图,该数据查询装置可以是运行于图1所示的查询管理服务器102中的一个计算机程序(包括程序代码),例如数据查询装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。该数据查询装置50包括:获取模块501、重构模块502、解析模块503、查询模块504,其中:
获取模块501,用于获取客户端提交的数据查询请求;
重构模块502,用于若所述数据查询请求携带有目标视图的视图名,则对所述数据查询请求进行重构处理,得到所述目标视图对应的至少一个数据表的目标查询语句,所述目标查询语句包括所述至少一个数据表的选择语句;
解析模块503,用于利用数据仓库中的元数据信息对所述目标查询语句进行解析,以确定查询引擎和查询规则,所述查询引擎为分布式计算引擎或本地计算引擎;
查询模块504,用于利用所述查询引擎和查询规则从所述数据仓库中的目标数据库获取所述数据查询请求的数据查询结果,并将所述数据查询结果发送给所述客户端,所述数据仓库包括离线数据和实时数据中的一种或两种。
在一实施例中,解析模块503具体用于:根据所述目标查询语句和数据仓库中的元数据信息确定有向无环图,所述有向无环图用于指示数据查询的逻辑执行规则;对所述有向无环图进行调整处理,以确定查询规则,所述调整处理包括谓词下推、列裁剪、常量替换与累加以及分区替换中的一种或多种;若所述目标视图对应至少两个数据表,则根据所述至少两个数据表之间的同源或异构关系确定查询引擎。
在一实施例中,解析模块503具体用于:根据数据仓库中的元数据信息确定所述至少两个数据表之间的关联关系;利用所述目标查询语句、所述元数据信息以及所述关联关系确定有向无环图。
在一实施例中,数据查询装置还包括确定模块505、组合模块506,其中:
确定模块505,用于若所述至少一个数据表中存在第一数据表的分区数据存储于所述数据仓库的至少两个数据库中,则根据查询性能从所述至少两个数据库中确定第一数据库;
获取模块501,用于获取所述至少一个数据表中除所述第一数据表之外的数据表所在的第二数据库;
组合模块506,用于将所述第一数据库和所述第二数据库作为目标数据库。
在一实施例中,解析模块503具体用于:若所述至少两个数据表之间为同源关系,则将本地计算引擎作为查询引擎;若所述至少两个数据表之间为异构关系,则将分布式计算引擎作为查询引擎。
在一实施例中,查询模块504具体用于:若所述查询引擎为所述分布式计算引擎,利用代码生成工具和查询规则生成所述数据仓库中的目标数据库中每个数据库的查询代码;利用代码编译工具对所述查询代码进行编译,得到所述每个数据库的可执行对象;将所述可执行对象提交给所述分布式计算引擎,以指示所述分布式引擎利用所述可执行对象从对应的数据库中获取数据;利用所述分布式计算引擎对获取的数据进行聚合处理,得到所述数据查询请求的数据查询结果。
在一实施例中,数据查询装置还包括验证模块507,其中:
获取模块501,用于从数据管理服务器中获取数据仓库中的元数据信息;
解析模块503,用于对所述目标查询语句进行解析处理,得到语法结构表示树;
验证模块507,用于利用所述元数据信息对所述语法结构表示树进行验证,若验证通过,则触发执行所述根据所述目标查询语句和数据仓库中的元数据信息确定有向无环图的步骤。
在一实施例中,重构模块502具体用于:获取记录的所述目标视图的创建语句;从所述目标视图的创建语句中获取所述目标视图对应的至少一个数据表的选择语句;通过解析所述第一查询语句确定所述第一查询语句中所述目标视图的视图名;利用所述选择语句替换所述第一查询语句中所述目标视图的视图名,以得到所述至少一个数据表的目标查询语句。
可以理解的是,本申请实施例所描述的数据查询装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述以及有益效果,此处不再赘述。
请参见图6,是本申请实施例提供的一种计算机设备的结构示意图,该计算机设备60可以包括处理器601、存储器602、网络接口603和至少一个通信总线604。其中,处理器601用于调度计算机程序,可以包括中央处理器、控制器、微处理器;存储器602用于存储计算机程序,可以包括高速随机存取存储器,非易失性存储器,例如磁盘存储器件、闪存器件;网络接口603提供数据通信功能,通信总线604负责连接各个通信元件。该计算机设备60对应于前文所述的查询服务器。
其中,处理器601可以用于调用存储器中的计算机程序,以执行如下操作:
获取客户端提交的数据查询请求;
若所述数据查询请求携带有目标视图的视图名,对所述数据查询请求进行重构处理,得到所述目标视图对应的至少一个数据表的目标查询语句,所述目标查询语句包括所述至少一个数据表的选择语句;
利用数据仓库中的元数据信息对所述目标查询语句进行解析,以确定查询引擎和查询规则,所述查询引擎为分布式计算引擎或本地计算引擎;
利用所述查询引擎和查询规则从所述数据仓库中的目标数据库获取所述数据查询请求的数据查询结果,并将所述数据查询结果发送给所述客户端,所述数据仓库包括离线数据和实时数据中的一种或两种。
在一实施例中,处理器601具体用于:根据所述目标查询语句和数据仓库中的元数据信息确定有向无环图,所述有向无环图用于指示数据查询的逻辑执行规则;对所述有向无环图进行调整处理,以确定查询规则,所述调整处理包括谓词下推、列裁剪、常量替换与累加以及分区替换中的一种或多种;若所述目标视图对应至少两个数据表,则根据所述至少两个数据表之间的同源或异构关系确定查询引擎。
在一实施例中,处理器601具体用于:根据数据仓库中的元数据信息确定所述至少两个数据表之间的关联关系;利用所述目标查询语句、所述元数据信息以及所述关联关系确定有向无环图。
在一实施例中,处理器601还用于:若所述至少一个数据表中存在第一数据表的分区数据存储于所述数据仓库的至少两个数据库中,则根据查询性能从所述至少两个数据库中确定第一数据库;获取所述至少一个数据表中除所述第一数据表之外的数据表所在的第二数据库;将所述第一数据库和所述第二数据库作为目标数据库。
在一实施例中,处理器601具体用于:若所述至少两个数据表之间为同源关系,则将本地计算引擎作为查询引擎;若所述至少两个数据表之间为异构关系,则将分布式计算引擎作为查询引擎。
在一实施例中,处理器601具体用于:若所述查询引擎为所述分布式计算引擎,利用代码生成工具和查询规则生成所述数据仓库中的目标数据库中每个数据库的查询代码;利用代码编译工具对所述查询代码进行编译,得到所述每个数据库的可执行对象;将所述可执行对象提交给所述分布式计算引擎,以指示所述分布式引擎利用所述可执行对象从对应的数据库中获取数据;利用所述分布式计算引擎对获取的数据进行聚合处理,得到所述数据查询请求的数据查询结果。
在一实施例中,处理器601还用于:从数据管理服务器中获取数据仓库中的元数据信息;对所述目标查询语句进行解析处理,得到语法结构表示树;利用所述元数据信息对所述语法结构表示树进行验证,若验证通过,则触发执行所述根据所述目标查询语句和数据仓库中的元数据信息确定有向无环图的步骤。
在一实施例中,处理器601具体用于:获取记录的所述目标视图的创建语句;从所述目标视图的创建语句中获取所述目标视图对应的至少一个数据表的选择语句;通过解析所述第一查询语句确定所述第一查询语句中所述目标视图的视图名;利用所述选择语句替换所述第一查询语句中所述目标视图的视图名,以得到所述至少一个数据表的目标查询语句。
具体实现中,本申请实施例中所描述的处理器601、存储器602及网络接口603可执行本申请实施例提供的一种数据查询方法中所描述的计算机设备的实现方式,也可执行本申请实施例提供的一种数据查询装置中所描述的实现方式以及有益效果,在此不再赘述。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如本申请实施例所述的数据查询方法。其具体实现方式可参考前文描述,此处不再赘述。
本申请实施例还提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,处理器执行所述计算机指令,使得所述计算机设备执行如本申请实施例所述的数据查询方法。其具体实现方式可参考前文描述,此处不再赘述。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random AccessMemory,RAM)、磁盘或光盘等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种数据查询方法,其特征在于,应用于查询服务器,所述方法包括:
获取客户端提交的数据查询请求;
若所述数据查询请求携带有目标视图的视图名,对所述数据查询请求进行重构处理,得到所述目标视图对应的至少一个数据表的目标查询语句,所述目标查询语句包括所述至少一个数据表的选择语句;
利用数据仓库中的元数据信息对所述目标查询语句进行解析,以确定查询引擎和查询规则,所述查询引擎为分布式计算引擎或本地计算引擎;
利用所述查询引擎和查询规则从所述数据仓库中的目标数据库获取所述数据查询请求的数据查询结果,并将所述数据查询结果发送给所述客户端,所述数据仓库包括离线数据和实时数据中的一种或两种。
2.如权利要求1所述的方法,其特征在于,所述利用数据仓库中的元数据信息对所述目标查询语句进行解析,以确定查询引擎和查询规则,包括:
根据所述目标查询语句和数据仓库中的元数据信息确定有向无环图,所述有向无环图用于指示数据查询的逻辑执行规则;
对所述有向无环图进行调整处理,以确定查询规则,所述调整处理包括谓词下推、列裁剪、常量替换与累加以及分区替换中的一种或多种;
若所述目标视图对应至少两个数据表,则根据所述至少两个数据表之间的同源或异构关系确定查询引擎。
3.如权利要求2所述的方法,其特征在于,所述根据所述目标查询语句和数据仓库中的元数据信息确定有向无环图,包括:
根据数据仓库中的元数据信息确定所述至少两个数据表之间的关联关系;
利用所述目标查询语句、所述元数据信息以及所述关联关系确定有向无环图。
4.如权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
若所述至少一个数据表中存在第一数据表的分区数据存储于所述数据仓库的至少两个数据库中,则根据查询性能从所述至少两个数据库中确定第一数据库;
获取所述至少一个数据表中除所述第一数据表之外的数据表所在的第二数据库;
将所述第一数据库和所述第二数据库作为目标数据库。
5.如权利要求2所述的方法,其特征在于,所述根据所述至少两个数据表之间的同源或异构关系确定查询引擎,包括:
若所述至少两个数据表之间为同源关系,则将本地计算引擎作为查询引擎;
若所述至少两个数据表之间为异构关系,则将分布式计算引擎作为查询引擎。
6.如权利要求1所述的方法,其特征在于,所述利用所述查询引擎和查询规则从所述数据仓库中的目标数据库获取所述数据查询请求的数据查询结果,包括:
若所述查询引擎为所述分布式计算引擎,利用代码生成工具和查询规则生成所述数据仓库中的目标数据库中每个数据库的查询代码;
利用代码编译工具对所述查询代码进行编译,得到所述每个数据库的可执行对象;
将所述可执行对象提交给所述分布式计算引擎,以指示所述分布式引擎利用所述可执行对象从对应的数据库中获取数据;
利用所述分布式计算引擎对获取的数据进行聚合处理,得到所述数据查询请求的数据查询结果。
7.如权利要求2所述的方法,其特征在于,所述根据所述目标查询语句和数据仓库中的元数据信息确定有向无环图之前,还包括:
从数据管理服务器中获取数据仓库中的元数据信息;
对所述目标查询语句进行解析处理,得到语法结构表示树;
利用所述元数据信息对所述语法结构表示树进行验证,若验证通过,则触发执行所述根据所述目标查询语句和数据仓库中的元数据信息确定有向无环图的步骤。
8.如权利要求1所述的方法,其特征在于,所述数据查询请求包括第一查询语句,所述第一查询语句包括目标视图的视图名,所述对所述数据查询请求进行重构处理,得到所述目标视图对应的至少一个数据表的目标查询语句,包括:
获取记录的所述目标视图的创建语句;
从所述目标视图的创建语句中获取所述目标视图对应的至少一个数据表的选择语句;
通过解析所述第一查询语句确定所述第一查询语句中所述目标视图的视图名;
利用所述选择语句替换所述第一查询语句中所述目标视图的视图名,以得到所述至少一个数据表的目标查询语句。
9.一种数据查询装置,其特征在于,包括:
获取模块,用于获取客户端提交的数据查询请求;
重构模块,用于若所述数据查询请求携带有目标视图的视图名,则对所述数据查询请求进行重构处理,得到所述目标视图对应的至少一个数据表的目标查询语句,所述目标查询语句包括所述至少一个数据表的选择语句;
确定模块,用于利用数据仓库中的元数据信息对所述目标查询语句进行解析,以确定查询引擎和查询规则,所述查询引擎为分布式计算引擎或本地计算引擎;
查询模块,用于利用所述查询引擎和查询规则从所述数据仓库中的目标数据库获取所述数据查询请求的数据查询结果,并将所述数据查询结果发送给所述客户端,所述数据仓库包括离线数据和实时数据中的一种或两种。
10.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行,用以执行如权利要求1-8任一项所述的数据查询方法。
CN202110248482.2A 2021-03-05 2021-03-05 一种数据查询方法、装置及计算机可读存储介质 Pending CN112905595A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110248482.2A CN112905595A (zh) 2021-03-05 2021-03-05 一种数据查询方法、装置及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110248482.2A CN112905595A (zh) 2021-03-05 2021-03-05 一种数据查询方法、装置及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN112905595A true CN112905595A (zh) 2021-06-04

Family

ID=76108263

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110248482.2A Pending CN112905595A (zh) 2021-03-05 2021-03-05 一种数据查询方法、装置及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112905595A (zh)

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113392114A (zh) * 2021-07-29 2021-09-14 浩鲸云计算科技股份有限公司 一种基于业务对象的智能关系管理和智能数据融合的方法
CN113553332A (zh) * 2021-09-22 2021-10-26 深圳时空云科技有限公司 去中心化的数据存储访问方法与装置
CN113553340A (zh) * 2021-07-23 2021-10-26 咪咕文化科技有限公司 用户查询方法、装置、电子设备及计算机可读存储介质
CN113590746A (zh) * 2021-07-01 2021-11-02 中国国家铁路集团有限公司 一种数据仓库全面检索信息的方法、装置、设备和介质
CN113626464A (zh) * 2021-08-02 2021-11-09 浪潮云信息技术股份公司 基于ClickHouse数据库内存数据的查询支持方法及系统
CN113704306A (zh) * 2021-08-31 2021-11-26 上海观安信息技术股份有限公司 数据库的数据处理方法、装置、存储介质及电子设备
CN113742346A (zh) * 2021-09-06 2021-12-03 川投信息产业集团有限公司 资产大数据平台架构优化方法
CN113779094A (zh) * 2021-11-09 2021-12-10 通号通信信息集团有限公司 基于批流一体的数据处理方法、装置、计算机设备和介质
CN113807105A (zh) * 2021-07-22 2021-12-17 中国测绘科学研究院 一种法语地名机器翻译方法
CN113821533A (zh) * 2021-09-30 2021-12-21 北京鲸鹳科技有限公司 数据查询的方法、装置、设备以及存储介质
CN113918577A (zh) * 2021-12-15 2022-01-11 北京新唐思创教育科技有限公司 数据表识别方法、装置、电子设备及存储介质
CN113986908A (zh) * 2021-12-24 2022-01-28 昆仑智汇数据科技(北京)有限公司 一种工业设备数据的处理方法、装置及设备
CN114036184A (zh) * 2022-01-11 2022-02-11 杭州涂鸦信息技术有限公司 联邦分布式查询方法、系统及计算机可读存储介质
CN114490762A (zh) * 2022-01-20 2022-05-13 北京宇信科技集团股份有限公司 用于决策引擎的数据源取数方法、装置、介质和设备
CN114490882A (zh) * 2022-04-15 2022-05-13 北京快立方科技有限公司 一种异构数据库数据同步分析方法
CN114549042A (zh) * 2022-01-10 2022-05-27 北京元年科技股份有限公司 成本分摊方法及系统
CN114647716A (zh) * 2022-05-13 2022-06-21 天津南大通用数据技术股份有限公司 一种泛化数据仓库
CN114692208A (zh) * 2022-05-31 2022-07-01 中建电子商务有限责任公司 一种数据查询服务权限的处理方法
CN114756569A (zh) * 2022-03-25 2022-07-15 北京友友天宇系统技术有限公司 结构化查询语句的多层解析方法、计算机设备及存储介质
CN114969044A (zh) * 2022-05-30 2022-08-30 北京火山引擎科技有限公司 一种基于数据湖的物化列创建方法以及数据查询方法
CN115114325A (zh) * 2022-06-24 2022-09-27 腾讯科技(深圳)有限公司 数据查询方法、装置、电子设备以及存储介质
CN115712673A (zh) * 2022-11-29 2023-02-24 电子科技大学长三角研究院(衢州) 一种加快数据从openGauss加载到DataFrame的方法
CN116383238A (zh) * 2023-06-06 2023-07-04 湖南红普创新科技发展有限公司 基于图结构的数据虚拟化系统、方法、装置、设备及介质
CN116578585A (zh) * 2023-07-13 2023-08-11 北京原点数安科技有限公司 数据查询方法、装置、电子设备及存储介质
CN116662414A (zh) * 2023-07-27 2023-08-29 腾讯科技(深圳)有限公司 数据处理方法、装置、设备、存储介质及程序产品
CN116775276A (zh) * 2023-05-10 2023-09-19 阿里巴巴达摩院(杭州)科技有限公司 分布式计算方法、装置、设备及存储介质
CN117725086A (zh) * 2024-02-06 2024-03-19 中科云谷科技有限公司 大数据服务系统
CN113672683B (zh) * 2021-08-19 2024-03-29 上海沄熹科技有限公司 基于Spark SQL的分布式数据库元数据同步装置及方法
WO2024092926A1 (zh) * 2022-10-31 2024-05-10 蚂蚁区块链科技(上海)有限公司 生成数据表的方法及装置
CN118051543A (zh) * 2024-04-16 2024-05-17 宁德时代新能源科技股份有限公司 电池数据的查询方法、系统、电子设备和存储介质

Cited By (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113590746A (zh) * 2021-07-01 2021-11-02 中国国家铁路集团有限公司 一种数据仓库全面检索信息的方法、装置、设备和介质
CN113807105B (zh) * 2021-07-22 2023-07-21 中国测绘科学研究院 一种法语地名机器翻译方法
CN113807105A (zh) * 2021-07-22 2021-12-17 中国测绘科学研究院 一种法语地名机器翻译方法
CN113553340A (zh) * 2021-07-23 2021-10-26 咪咕文化科技有限公司 用户查询方法、装置、电子设备及计算机可读存储介质
CN113392114A (zh) * 2021-07-29 2021-09-14 浩鲸云计算科技股份有限公司 一种基于业务对象的智能关系管理和智能数据融合的方法
CN113626464A (zh) * 2021-08-02 2021-11-09 浪潮云信息技术股份公司 基于ClickHouse数据库内存数据的查询支持方法及系统
CN113672683B (zh) * 2021-08-19 2024-03-29 上海沄熹科技有限公司 基于Spark SQL的分布式数据库元数据同步装置及方法
CN113704306B (zh) * 2021-08-31 2024-01-30 上海观安信息技术股份有限公司 数据库的数据处理方法、装置、存储介质及电子设备
CN113704306A (zh) * 2021-08-31 2021-11-26 上海观安信息技术股份有限公司 数据库的数据处理方法、装置、存储介质及电子设备
CN113742346A (zh) * 2021-09-06 2021-12-03 川投信息产业集团有限公司 资产大数据平台架构优化方法
CN113553332B (zh) * 2021-09-22 2022-01-25 深圳时空云科技有限公司 去中心化的数据存储访问方法与装置
CN113553332A (zh) * 2021-09-22 2021-10-26 深圳时空云科技有限公司 去中心化的数据存储访问方法与装置
CN113821533A (zh) * 2021-09-30 2021-12-21 北京鲸鹳科技有限公司 数据查询的方法、装置、设备以及存储介质
CN113821533B (zh) * 2021-09-30 2023-09-08 北京鲸鹳科技有限公司 数据查询的方法、装置、设备以及存储介质
CN113779094A (zh) * 2021-11-09 2021-12-10 通号通信信息集团有限公司 基于批流一体的数据处理方法、装置、计算机设备和介质
CN113918577A (zh) * 2021-12-15 2022-01-11 北京新唐思创教育科技有限公司 数据表识别方法、装置、电子设备及存储介质
CN113986908A (zh) * 2021-12-24 2022-01-28 昆仑智汇数据科技(北京)有限公司 一种工业设备数据的处理方法、装置及设备
CN114549042A (zh) * 2022-01-10 2022-05-27 北京元年科技股份有限公司 成本分摊方法及系统
CN114036184A (zh) * 2022-01-11 2022-02-11 杭州涂鸦信息技术有限公司 联邦分布式查询方法、系统及计算机可读存储介质
CN114490762A (zh) * 2022-01-20 2022-05-13 北京宇信科技集团股份有限公司 用于决策引擎的数据源取数方法、装置、介质和设备
CN114490762B (zh) * 2022-01-20 2022-11-22 北京宇信科技集团股份有限公司 用于决策引擎的数据源取数方法、装置、介质和设备
CN114756569A (zh) * 2022-03-25 2022-07-15 北京友友天宇系统技术有限公司 结构化查询语句的多层解析方法、计算机设备及存储介质
CN114490882A (zh) * 2022-04-15 2022-05-13 北京快立方科技有限公司 一种异构数据库数据同步分析方法
CN114647716A (zh) * 2022-05-13 2022-06-21 天津南大通用数据技术股份有限公司 一种泛化数据仓库
CN114969044A (zh) * 2022-05-30 2022-08-30 北京火山引擎科技有限公司 一种基于数据湖的物化列创建方法以及数据查询方法
CN114692208B (zh) * 2022-05-31 2022-09-27 中建电子商务有限责任公司 一种数据查询服务权限的处理方法
CN114692208A (zh) * 2022-05-31 2022-07-01 中建电子商务有限责任公司 一种数据查询服务权限的处理方法
CN115114325A (zh) * 2022-06-24 2022-09-27 腾讯科技(深圳)有限公司 数据查询方法、装置、电子设备以及存储介质
CN115114325B (zh) * 2022-06-24 2023-04-18 腾讯科技(深圳)有限公司 数据查询方法、装置、电子设备以及存储介质
WO2024092926A1 (zh) * 2022-10-31 2024-05-10 蚂蚁区块链科技(上海)有限公司 生成数据表的方法及装置
CN115712673A (zh) * 2022-11-29 2023-02-24 电子科技大学长三角研究院(衢州) 一种加快数据从openGauss加载到DataFrame的方法
CN116775276A (zh) * 2023-05-10 2023-09-19 阿里巴巴达摩院(杭州)科技有限公司 分布式计算方法、装置、设备及存储介质
CN116383238B (zh) * 2023-06-06 2023-08-29 湖南红普创新科技发展有限公司 基于图结构的数据虚拟化系统、方法、装置、设备及介质
CN116383238A (zh) * 2023-06-06 2023-07-04 湖南红普创新科技发展有限公司 基于图结构的数据虚拟化系统、方法、装置、设备及介质
CN116578585A (zh) * 2023-07-13 2023-08-11 北京原点数安科技有限公司 数据查询方法、装置、电子设备及存储介质
CN116578585B (zh) * 2023-07-13 2023-09-19 北京原点数安科技有限公司 数据查询方法、装置、电子设备及存储介质
CN116662414A (zh) * 2023-07-27 2023-08-29 腾讯科技(深圳)有限公司 数据处理方法、装置、设备、存储介质及程序产品
CN117725086A (zh) * 2024-02-06 2024-03-19 中科云谷科技有限公司 大数据服务系统
CN117725086B (zh) * 2024-02-06 2024-05-07 中科云谷科技有限公司 大数据服务系统
CN118051543A (zh) * 2024-04-16 2024-05-17 宁德时代新能源科技股份有限公司 电池数据的查询方法、系统、电子设备和存储介质

Similar Documents

Publication Publication Date Title
CN112905595A (zh) 一种数据查询方法、装置及计算机可读存储介质
Logothetis et al. Stateful bulk processing for incremental analytics
Zhou et al. SCOPE: parallel databases meet MapReduce
Padhy Big data processing with Hadoop-MapReduce in cloud systems
US8903841B2 (en) System and method of massively parallel data processing
Bu et al. Scaling datalog for machine learning on big data
Aluko et al. Big SQL systems: an experimental evaluation
Sinthong et al. Aframe: Extending dataframes for large-scale modern data analysis
Bidoit et al. Processing XML queries and updates on map/reduce clusters
CN113297057A (zh) 内存分析方法、装置及系统
Gousios et al. A platform for software engineering research
Yuan et al. VDB-MR: MapReduce-based distributed data integration using virtual database
CN117421302A (zh) 一种数据处理方法及相关设备
Gombos et al. P-Spar (k) ql: SPARQL evaluation method on Spark GraphX with parallel query plan
Sinthong et al. AFrame: Extending DataFrames for large-scale modern data analysis (Extended Version)
US20240012817A1 (en) Fingerprints for database queries
Kaseb et al. Distributed query optimization strategies for cloud environment
Sarkar et al. MapReduce: A comprehensive study on applications, scope and challenges
Dong Extending starfish to support the growing hadoop ecosystem
Li Distributed architecture design of big data platform
Castillo-García et al. Design of a Dynamic Horizontal Fragmentation Method for Multimedia Databases
Kvet et al. Enhancing Analytical Select Statements Using Reference Aliases
Georgoulakis Misegiannis Multi-objective query optimization for massively parallel processing in Cloud Computing
Dai et al. An asynchronous traversal engine for graph-based rich metadata management
Hong et al. Evaluating Presto and SparkSQL with TPC-DS

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40051257

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination