CN105550351A - 旅客行程数据即席查询系统及方法 - Google Patents

旅客行程数据即席查询系统及方法 Download PDF

Info

Publication number
CN105550351A
CN105550351A CN201511000442.7A CN201511000442A CN105550351A CN 105550351 A CN105550351 A CN 105550351A CN 201511000442 A CN201511000442 A CN 201511000442A CN 105550351 A CN105550351 A CN 105550351A
Authority
CN
China
Prior art keywords
data
passenger
partition table
run
length data
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.)
Granted
Application number
CN201511000442.7A
Other languages
English (en)
Other versions
CN105550351B (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.)
China Travelsky Technology Co Ltd
China Travelsky Holding Co
Original Assignee
China Travelsky Technology 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 China Travelsky Technology Co Ltd filed Critical China Travelsky Technology Co Ltd
Priority to CN201511000442.7A priority Critical patent/CN105550351B/zh
Publication of CN105550351A publication Critical patent/CN105550351A/zh
Application granted granted Critical
Publication of CN105550351B publication Critical patent/CN105550351B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/2438Embedded query 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/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/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism

Abstract

本发明公开了一种旅客行程数据即席查询系统,系统包括:数据接收调度模块、数据存储模块、查询引擎模块和应用接口模块,其中,数据存储模块,用于作为分布式文件系统存储旅客行程数据;查询引擎模块,用于创建分区表和压缩分区表,与数据存储模块进行耦合,基于分区表和/或压缩分区表完成旅客行程数据的查询;其中,数据存储模块采用开源分布式文件系统,查询引擎模块采用Impala。通过本发明,解决了在传统关系型数据仓库上进行单表旅客行程海量数据需要秒级返回查询结果的要求下,系统不能同时满足的即席查询、细粒度、多维度的技术问题。

Description

旅客行程数据即席查询系统及方法
技术领域
本发明涉及数据处理技术,尤其涉及一种旅客行程数据即席查询系统及方法。
背景技术
开源分布式文件系统(HadoopDistributedFileSystem,HDFS)是一个开源分布式系统基础架构,由Apache基金会所开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供存储,而MapReduce为海量的数据提供计算。
Impala是一种开源准实时分布式大数据查询组件,可提供对标准SQL数据查询语句的解析,并按照解析结果从HDFS进行数据的获取。
即席查询是指用户根据自己的需求,灵活的选择查询条件,系统能够根据用户的选择生成相应的统计报表。即席查询与普通应用查询最大的不同是普通的应用查询是定制开发的,而即席查询是由用户自定义查询条件的。
在民航领域中,航空公司、机场、代理人、民航局、审计署、公检法等各行业内外的组织和个人对旅客行程的数据均有大量的统计分析需求。
为了能将旅客行程相关数据充分利用,首先需要将旅客出行各环节中的分散信息进行清洗和整合,为每一位旅客的每次出行,建立详细的行程记录并存储在一张数据表中。四年多的旅客行程数据,总记录数可达15亿条,单表占用近500G存储空间,字段数70多个,而且数据量还会以每天300至400M的规模增加,伴随着中国民航的发展,每日数据量还将以10%-15%的速度按年递增。而在对这种覆盖多年历史的时间范围内,单表细粒度化的旅客行程海量数据上,对其查询使用主要体现出以下几个特点:
a.查询条件不确定:由于旅客行程数据统计需求多样化,查询条件不能预估,用户在提交查询条件时,呈现出典型的即席查询的特征。
b.查询数据粒度细:用户对旅客行程数据进行查询时,常常要求获得全部时间范围中最细粒度的返回结果,极端要求下可能是15亿条记录中的一条记录。
c.查询维度多:旅客一次出行的行程数据包含了旅客本身的身份、航空公司、代理人等多维度多角度的信息,目前已有70多种维度,未来将扩充至上百种维度。因此,用户常需要一次性获取几十到几百种的维度信息,以全方位对行程记录进行评价分析。
d.可扩展性与低成本:旅客行程的数据量在不断的增长,数据维度也在不断的增加,在低成本的要求下能做到几十台服务器集群的线性扩展。
现有传统关系型数据仓库在这样的单表海量数据情况下,不能很好的同时解决以上四个问题,由于不可能预料到所有查询的条件、返回的数据粒度和维度,关系表无论怎样优化,都可能会造成执行某些查询时,数据返回时间过长,进而达到不同用户的秒级返回结果的交互性使用要求。
随着大数据时代的到来,通过低成本开源软件自主构建查询系统,从数据中实时、高效地分析和挖掘出有价值的信息,已经逐渐成为处理海量数据的一种有效方式。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种旅客行程数据即席查询系统及方法。
为达到上述目的,本发明实施例的技术方案是这样实现的:
一种旅客行程数据即席查询系统,所述系统包括:数据接收调度模块、数据存储模块、查询引擎模块和应用接口模块,其中,
数据接收调度模块,用于调用所述查询引擎模块创建分区表和压缩分区表;以及,用于接收旅客行程数据,调用所述数据存储模块并将所述旅客行程数据加载入数据存储模块,并通过调用查询引擎模块将旅客行程数据加载入所述分区表,再从所述分区表中读出直接加载入所述压缩分区表;
数据存储模块,用于作为分布式文件系统存储旅客行程数据;
查询引擎模块,用于创建分区表和压缩分区表,与所述数据存储模块进行耦合,基于所述分区表和/或压缩分区表完成旅客行程数据的查询;
应用接口模块,用于为前端应用提供接口,以及调用查询引擎模块进行旅客行程数据的查询;
其中,数据存储模块采用开源分布式文件系统HDFS,所述查询引擎模块采用Impala。
其中,所述分区表配置的元数据类型,包括:分区字段、数据文件中字段间隔符号、存储格式、数据在所述HDFS上的位置;所述压缩分区表配置的元数据类型,包括:分区字段、数据文件中字段间隔符号、压缩格式。
其中,所述数据接收调度模块,具体用于:
根据旅客行程数据的格式特征,调用查询引擎模块创建分区表和压缩分区表,其中,采取按日分区的策略;
旅客行程数据定时自动传送到数据接收调度模块所在服务器的固定位置后,在判断数据到达时,通过调用数据存储模块的客户端程序,将旅客行程数据加载入数据存储模块的特定位置;
通过调用查询引擎模块的客户端程序,将旅客行程数据加载入所述分区表,然后再从所述分区表中读出直接加载入所述压缩分区表。
其中,所述HDFS包括名字节点NameNode和数据节点DataNode;
所述HDFS的名字节点,用于记录旅客行程数据的位置、大小、在各数据节点中存储的位置;
所述HDFS的各个数据节点,用于将所述旅客行程数据的数据文件以文件块的形式存储,文件块的大小由配置参数指定,同时配置每个文件块的冗余份数,并自动复制到其他数据节点上。
其中,所述查询引擎模块采用的Impala包括三个组件:ImpalaDaemon(Impala守护进程)、ImpalaStatestore(Impala模式存储)、ImpalaCatalogService(Impala目录服务);
所述ImpalaDaemon,以Impalaed进程存在,包括查询计划器、查询协调器和查询执行器,所述查询计划器接收由所述应用接口模块提交的SQL查询请求,并基于所述分区表或压缩分区表的元数据对所述SQL查询请求进行解析,生成执行计划;查询协调器把多个执行计划分配到各个查询执行器并行执行,以从所述HDFS的各数据节点上获取旅客行程数据并返回;
所述ImpalaStatestore,以Statestored进程存在,用于收集分布在HDFS集群中各个节点的CPU/内存/网络资源,完成一次查询中多个任务分片的调度;以及,用于把所述ImpalaCatalogService对于所述分区表和/或压缩分区表中元数据的更新推送到各个Impalad进程;
所述ImpalaCatalogService,以Catalog进程存在,用于接收针对所述分区表和/或压缩分区表中元数据的查询和更新操作,同时把更新结果发送给所述Statestored进程并通过其推送到各个Impalaed进程。
其中,所述应用接口模块包含:命令行接口、网页接口、以及基于驱动服务器的接口。
其中,所述旅客行程数据以航空公司航班控制管理系统中成行的旅客订座记录(PNR,PassengerNameRecord)的旅客数据为基准,结合使用航空公司电子票系统的旅客订票数据,以及使用航空公司离港系统的旅客数据;所述旅客行程数据的数据粒度达到旅客航段级。
一种旅客行程数据即席查询方法,所述方法包括:
数据接收调度模块调用查询引擎模块创建分区表和压缩分区表;
数据接收调度模块接收旅客行程数据,调用数据存储模块并将所述旅客行程数据加载入数据存储模块,并通过调用查询引擎模块将旅客行程数据加载入所述分区表,再从所述分区表中读出直接加载入所述压缩分区表;
数据存储模块作为分布式文件系统存储所述旅客行程数据;
应用接口模块为前端应用提供接口,调用查询引擎模块进行查询;
查询引擎模块与所述数据存储模块进行耦合,基于所述分区表和/或压缩分区表完成旅客行程数据的查询;
其中,数据存储模块采用开源分布式文件系统HDFS,所述查询引擎模块采用Impala。
其中,所述分区表配置的元数据类型,包括:分区字段、数据文件中字段间隔符号、存储格式、数据在所述HDFS上的位置;所述压缩分区表配置的元数据类型,包括:分区字段、数据文件中字段间隔符号、压缩格式。
其中:所述数据接收调度模块根据旅客行程数据的格式特征,调用查询引擎模块采取按日分区的策略创建分区表和压缩分区表;
旅客行程数据定时自动传送到所述数据接收调度模块所在服务器的固定位置后,所述数据接收调度模块在判断数据到达时,通过调用数据存储模块的客户端程序,将旅客行程数据加载入所述数据存储模块的特定位置;
通过调用所述查询引擎模块的客户端程序,将所述旅客行程数据加载入所述分区表,然后再从所述分区表中读出直接加载入所述压缩分区表。
其中,所述HDFS包括名字节点NameNode和数据节点DataNode;
所述数据存储模块作为分布式文件系统存储所述旅客行程数据包括:
所述HDFS的名字节点记录旅客行程数据的位置、大小、在各数据节点中存储的位置;
所述HDFS的各个数据节点将所述旅客行程数据的数据文件以文件块的形式存储,文件块的大小由配置参数指定,同时配置每个文件块的冗余份数,并自动复制到其他数据节点上。
其中,所述查询引擎模块采用的Impala包括三个组件:ImpalaDaemon(Impala守护进程)、ImpalaStatestore(Impala模式存储)、ImpalaCatalogService(Impala目录服务);
所述基于所述分区表和/或压缩分区表完成旅客行程数据的查询,包括:
所述ImpalaDaemon以Impalaed进程存在,包括查询计划器、查询协调器和查询执行器,所述查询计划器接收由所述应用接口模块提交的SQL查询请求,并基于所述分区表或压缩分区表的元数据对所述SQL查询请求进行解析,生成执行计划;查询协调器把多个执行计划分配到各个查询执行器并行执行,以从所述HDFS的各数据节点上获取旅客行程数据并返回;
所述ImpalaStatestore以Statestored进程存在,收集分布在HDFS集群中各个节点的CPU/内存/网络资源,完成一次查询中多个任务分片的调度;以及,用于把所述ImpalaCatalogService对于所述分区表和/或压缩分区表中元数据的更新推送到各个Impalad进程;
所述ImpalaCatalogService,以Catalog进程存在,接收针对所述分区表和/或压缩分区表中元数据的查询和更新操作,同时把更新结果发送给所述Statestored进程并通过其推送到各个Impalaed进程。
其中,所述应用接口模块包含:命令行接口、网页接口、以及基于驱动服务器的接口;
所述命令行接口通过shell命令行的形式对查询引擎模块进行调用;
所述基于驱动服务器的接口通过在应用中载入相应的开发包对查询引擎模块进行可编程式的调用。
其中,所述旅客行程数据以航空公司航班控制管理系统中成行的旅客订座记录(PNR,PassengerNameRecord)的旅客数据为基准,结合使用航空公司电子票系统的旅客订票数据,以及使用航空公司离港系统的旅客数据;所述旅客行程数据的数据粒度达到旅客航段级。
本发明实施例,提供了一种基于开源软件HDFS和Impala的民航旅客行程数据的即席查询方法,并实现了一个民航旅客行程海量数据即席查询系统,解决了在传统关系型数据仓库上进行单表旅客行程海量数据需要秒级返回查询结果的要求下,系统不能同时满足的即席查询、细粒度、多维度的技术问题。同时,本发明实施例也可以用来满足其他类民航业务的海量数据即席查询需求。本发明实施例充分利用了现有免费开源软件HDFS和Impala的分布式、低成本、可线性扩展以及多项有针对性的优化数据仓库查询等功能特点。
附图说明
在附图(其不一定是按比例绘制的)中,相似的附图标记可在不同的视图中描述相似的部件。具有不同字母后缀的相似附图标记可表示相似部件的不同示例。附图以示例而非限制的方式大体示出了本文中所讨论的各个实施例。
图1为本发明实施例旅客行程数据即席查询系统的组成结构示意图;
图2为本发明实施例数据接收调度模块的工作流程示意图;
图3为本发明实施例数据存储模块的实施部署架构图;
图4为本发明实施例查询引擎模块架构示意图;
图5-1至图5-3为本发明实施例查询引擎模块(Impala)处理数据查询的流程图;
图6为本发明实施例应用接口模块的结构及工作示意图;
图7为本发明实施例旅客行程数据即席查询方法的流程示意图。
具体实施方式
本发明实施例提供了一种基于开源软件HDFS和Impala的旅客行程数据即席查询系统及方法。
本发明实施例的核心在于能够支持海量旅客行程数据的即席查询应用模式,所以在数据存储上采用了HDFS来存储数据,HDFS具有高容错性的特点,可部署在低廉的硬件上,能够提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序。在查询引擎上采用了开源组件Impala,Impala能够很好的与HDFS整合在一起,它能提供一个适合实时查询的多节点、可扩展的查询引擎和类标准SQL语法的解析器,并针对大数据特点在文件格式、压缩方法和SQL解析上做了大量的优化工作。
本发明实施例总体思路是:依据数据的流动方向,利用分层设计的思想,自下而上,将模块内的功能高度集中,并使各模块间功能充分解耦,从而降低系统整体开发和运维上的复杂性。
如图1所示,本发明实施例旅客行程数据即席查询系统具体包括以下几个模块:数据存储模块、查询引擎模块、应用接口模块、数据接收调度模块。
数据接收调度模块主要用于:在查询引擎模块上自动创建分区表和压缩分区表;自动接收整合后的旅客行程数据,对数据进行格式检查,通过调用数据存储模块,将旅客行程数据自动加载入数据存储模块;以及,通过调用查询引擎模块将旅客行程数据加载入所述分区表,再从所述分区表中读出直接加载入所述压缩分区表,以更新所述分区表与所述压缩分区表中的元数据。
数据存储模块主要用于:作为分布式文件系统存储旅客行程数据,采用多节点备份机制自动检测和恢复存储硬件的故障,提供高容错性;以流的方式提供给上层应用进行数据集读取,提高系统对海量数据的吞吐量。本发明实施例的数据存储模块选用HDFS,其所选用的HDFS主要由以下两个组件完成上述功能:名字节点(NameNode)、数据节点(DataNode)。
查询引擎模块主要用于:与数据存储模块进行很好的耦合,整合非结构化、半结构化和结构化数据的存储和分析,提供统一的元数据访问和管理接口,使离线和即席查询共享存储、统一计算,创建分区表和压缩分区表,基于所述分区表和/或压缩分区表完成旅客行程数据的查询。本发明实施例的查询引擎模块采用Impala。对实时性查询需求,能够有效的采用列存储或行列混合存储,采用查询谓词下推、高效压缩技术、预先计算(块级别的统计数据和物化视图)、高效索引、并行查询等技术。本发明实施例查询引擎模块采用的Impala,主要由以下三个组件完成上述功能:ImpalaDaemon(Impala守护进程)、ImpalaStatestore(Impala模式存储)、ImpalaCatalogService(Impala目录服务)。
应用接口模块主要用于为前端应用提供丰富的接口,例如:CLI、hwi、JDBC、ODBC等,以便能够调用查询引擎模块进行查询。
如图2所示,数据接收调度模块的工作流程可以包括如下步骤:
步骤1,手动初始化分区表及压缩分区表:首先根据旅客行程数据的格式特征,手工调用查询引擎模块创建一个分区表,由于旅客行程数据时按日发送,这里采取按日分区的策略。为了加快返回数据的时间,还要利用Impala的功能特性创建一个压缩分区表,数据最终要根据该压缩分区表查询获取。
其中,在所述分区表配置关键信息,即配置分区表的元数据类型,包括:分区字段、数据文件中字段间隔符号、存储格式、数据在所述HDFS上的位置;在所述压缩分区表配置关键信息,即配置压缩分区表的元数据类型,包括:分区字段、数据文件中字段间隔符号、压缩格式等。
例如,分区表和压缩分区表的创建初始化如下:
分区表配置的关键信息(即元数据类型),可以包括:指定分区字段(PARTITIONEDBY(dtSTRING))、指定数据文件中字段间隔符号(ROWFORMATDELIMITEDFIELDSTERMINATEDBY'\001')、指定存储格式(STOREDASTEXTFILE)、指定数据在HDFS上的位置(LOCATION'/user/adhoc/file/perdayadd')。
压缩分区表配置的关键信息(即元数据类型),可以包括:指定分区字段(PARTITIONEDBY(dtSTRING))、指定数据文件中字段间隔符号(ROWFORMATDELIMITEDFIELDSTERMINATEDBY'\001')、指定表存储为压缩格式(STOREDASPARQUETFILE)等。
实际上,查询引擎模块可以根据实际查询需求,基于分区表或者压缩分区表进行查询。如果基于压缩分区表进行查询,由于数据经过压缩,查询过程耗时更短,数据返回时间更短。
步骤2,每日旅客行程数据传送至固定位置:每日旅客行程数据经过外部系统整合好后,会自动传送到数据接收调度模块所在服务器的固定位置。
步骤3,判断数据是否到达,如果是(Y),则继续步骤4,如果否(N),则返回步骤2。这里,数据调度模块通过自动的轮询程序,发现传送过来的旅客行程数据后,将其转换到对应的本地文件目录中。
步骤4,调用数据存储模块上传数据:通过调用数据存储模块的客户端程序,将旅客行程数据加载入数据存储模块,如果后续计划为每日旅客行程数据创建一个分区,那么可以先按照日期时间来创建相应的文件夹,再将旅客行程数据放入该文件夹中。
步骤5,调用查询引擎模块向分区表和压缩分区表加载数据:旅客行程数据放入数据存储模块的特定位置后,数据接收调度模块通过调用查询引擎模块的客户端程序,将旅客行程数据加载入步骤1中的分区表,然后再从分区表中读出直接加载入压缩分区表。
例如,关于每日传输文件的要求如下
外部系统整合好的每日旅客行程数据,在向本发明实施例的系统发送时,具体实施过程包含两个文件:每日旅客行程数据的数据文件(lksjday-YYYYMMDD.zip)及传输完成标识文件(lksjday-YYYYMMDD.flag)。每日旅客行程数据要采用压缩格式,以节约系统带宽,提升传输效率,传输完成标识文件是为了能让调度系统自动识别出标识对应的数据文件已经传输完成可进行下一步动作,而且传输完成标识文件中还包含了相关数据的具体生成日期,该日期与数据内容中旅客行程起飞日期应是一致的。
例如,每日旅客行程数据内容详细说明如下
旅客行程数据的数据来源:以航空公司航班控制管理系统中成行的旅客订座记录(PNR,PassengerNameRecord)航段(包含预订但未成行的旅客航段,但不包含未起飞航段)的旅客数据为基准、结合了使用航空公司电子票系统的旅客订票数据,以及使用航空公司离港系统的旅客数据。
旅客行程数据的数据粒度:每日加载的旅客行程数据粒度达到旅客航段级,即:旅客行程数据中每条旅客行程记录代表旅客一次成行航段在订座、电子票、离港等系统发生的情况。
旅客行程数据的数据内容包含:常客信息、承运信息、订座信息、行李信息、航班信息、价格信息、客票信息、旅客服务信息、渠道支付信息、特殊旅客信息、值机信息、其他12大主题信息,具体76个数据字段。
如图3所示,为数据存储模块的实施部署架构图。其中,数据存储模块采用HDFS实现,是主从结构,一个HDFS集群包括一个NameNode和一些DataNode,NameNode是一个管理文件命名空间和调节客户端访问文件的主服务器,通常一个DataNode就是一台机器,用来管理对应节点的数据存储。HDFS对外开放文件命名空间并允许用户数据以文件形式存储,NameNode完成对文件系统元数据的记录工作。
例如,数据存储模块采用的HDFS,其部署可以使用以下集群配置环境
名字节点(Namenode)配置如下:
服务器数量:1
单台服务器cpu核数:2*XeonE5-2640V2(4线程/8C)
单台服务器内存大小:128G
数据节点(Datanode)配置如下:
服务器数量:6
单台服务器cpu核数:2*XeonE5-2640V2(4线程/8C)
单台服务器内存大小:64G
集群网络环境:10GB万兆网络
例如,生产环境下数据存储模块采用的HDFS的数据存储规模如下
数据范围:20100101至20140830
数据规模:510G
数据条数:15亿
其中,数据存储模块采用HDFS时数据处理流程如下:旅客行程数据从数据接收调度模块上传到HDFS后,HDFS会通过名字节点记录该数据的位置、大小、在各数据节点中存储的位置,上传的数据文件会以文件块的形式存储在HDFS的数据节点上,文件块的大小由配置参数指定,同时,HDFS还会按照系统的配置参数,配置每个文件块的冗余份数,并自动复制到其他数据节点上。
当旅客行程数据被查询引擎模块从所述HDFS上读取时,HDFS首先会从名字节点上元数据库中的记录找到读取文件所在的数据节点,然后再以数据流的方式返回给查询引擎。
例如,使用HDFS应用前端上传数据的方法如下:
hadoopfs-copyFromLocal-f本地文件路径HDFS路径'/目标文件名'例如,查看HDFS上一天的旅客行程数据分布情况如下:
[etluserr720m7-appETL]$hadoopfs-stat%b-%g-%n-%o-%r-%u-%y/user/adhoc/data/pir2_base_ics/dt=20141130/perdaydata.dat
返回结果可以为:
425433710-supergroup-perdaydata.dat-134217728-3-adhoc-2014-12-0104:02:28
上述旅客行程数据分布情况和返回结果表示20141130这天的旅客行程数据总大小为425M,相应的数据文件被分成134M大小的文件块进行存储,每个文件块将保存三份。
如图4所示,为通过Impala实现的查询引擎模块架构示意图。实施部署中,查询引擎模块(Impala)包含三个核心组件,各组件功能介绍如下:
ImpalaDaemon:在查询引擎启动后,以一个名为Impalaed的进程存在,分布在HDFS集群上的每个节点上;由前端和后端组成,前端是一个由Java开发的组件查询计划器(QueryPlanner),主要用于基于分区表或压缩分区表的元数据解析SQL查询请求并生成执行计划。后端主要由C++开发的两个组件:一个是查询协调器(QueryCoordinator),用于协调客户端提交的查询执行计划,给其他Impalaed分配任务,收集其他Impalaed的执行结果进行汇总并返回给客户端;另一个是查询执行器(QueryExecutor),用于执行其他Impalaed给其分配的任务,执行任务包括对本节点的HDFS里面的数据扫描(Scan)、过滤(Filter)操作,内存中的结合(Join)、聚合(Aggregation)操作等。
ImpalaStatestore:查询引擎启动后,以一个名为Statestored的进程存在,HDFS集群中只有一个,用于收集分布在HDFS集群中各个节点的CPU/内存/网络等资源,完成一次查询中多个任务分片的调度。同时,这个进程还负责把目录服务(catalogservice)中元数据的更新推送到各个Impalad进程,使得元数据的更新操作能快速反应到各个Impalaed进程。
ImpalaCatalogService:查询引擎启动后,以一个名为Catalog的进程存在,HDFS集群中只有一个,用于接收元数据查询和更新操作,同时把更新结果发送给Statestored进程并通过其推送到各个Impalaed进程。
如图5-1至5-3所示,为查询引擎模块(Impala)处理数据查询的流程图。查询引擎模块(Impala)处理数据查询的流程包括:如图5-1所示的Impala节点接收查询请求、如图5-2所示的查询计划执行与分配、如图5-3所示的查询结果汇总与返回。具体地,Impala节点查询计划器接收由应用接口模块提交的SQL查询(SQLODBC),并对SQL进行解析,生成执行计划,然后查询协调器把多个执行计划分配到各个节点(查询执行器)并行执行从HDFS上各节点获取数据,在执行前做相应的初始化工作,保证SQL执行过程中数据在各节点间以流的方式进行传输,最终结果以流的方式返回给应用接口模块,并完成元数据存储和更新操作。
查询引擎三个组件协作从压缩分区表中获取数据的过程说明如下:ImpalaDaemon组件会部署在所有安装Impala集群的节点上,应用接口模块从任意一个装有ImpalaDaemon组件的节点上执行查询,查询效果都是一样的。ImpalaDaemon组件中的查询计划器负责接收应用接口模块提交的SQL查询请求,并对SQL查询请求进行解析。SQL查询请求中会明确指定需要从哪个分区表或压缩分区表中获取数据。而该分区表或压缩分区表的数据存储在HDFS的哪些节点和目录中、是否压缩、压缩格式是什么、是否分区、分区字段是什么等信息都是通过元数据来记录的,查询计划器只有通过这些元数据才能将SQL查询请求解析生成正确且最优的执行计划。而每个节点上ImpalaDaemon组件的元数据是通过ImpalaStatestore和ImpalaCatalogService两个组件协作维护并推送给ImpalaDaemon组件的,上文已有说明,这里不再赘述。生成的执行计划中包含了对应各个节点的子执行计划。由ImpalaDaemon组件的查询协调器把这些子执行计划分配到各节点的ImpalaDaemon组件的查询执行器上并行执行,获取各数据节点上旅客行程数据,然后各节点返回数据给查询协调器汇总,由查询协调器将汇总后的查询结果返回给应用接口模块。
例如,通过调用查询引擎模块进行每日数据的加载过程如下
数据接收调度模块在上述步骤5中需要调用查询引擎模块进行每日旅客行程数据的加载,其关键执行方法如下所示:
首先,加载分区表:
echo"useimpala;ALTERTABLE分区表名ADDIFNOTEXISTSPARTITION(dt='分区时间');exit;"|impala-shell
其次,从分区表中加载数据至压缩表:
echo"useimpala;setPARQUET_COMPRESSION_CODEC=snappy;
insertoverwritetable压缩表名partition(dt='分区时间')
select
thedate,
indvl_nbr_18…..
from分区表名wheredt='分区时间';exit;"|impala-shell
例如,应用查询引擎模块进行数据即席查询验证过程如下
对典型场景的即席查询测试,时间范围20100101至20140830,数据规模15亿条记录,由下表1可以看到查询结果返回时间均在秒级别,性能明显优于数据仓库。应用查询引擎模块即席查询典型场景返回时间如下表1所示。
表1
例如,对其他类民航数据的查询使用说明如下
通过应用查询引擎模块,查询以航空公司航班控制和收益管理系统数据为基准,结合了航空公司离港系统的月航班航段级数据,即:每条记录代表已飞航班航段的各项维度和指标,承运时间的粒度为按月。2010至今近五年的月航班航段级数据、40维度字段,数据规模80万条,查询结果返回时间均在30秒以内。
如图6所示,应用接口模块主要包含:命令行接口、网页接口、以及基于驱动服务器的(ODBC和JDBC)接口。其中,命令行接口可以通过shell命令行的形式对查询引擎模块(编译器、协调器、执行器)进行调用,而JDBC和ODBC则可以通过在应用中载入相应的开发包对查询引擎模块进行可编程式的调用。下面将通过两个例子来说明使用应用接口模块调用查询引擎模块的过程。
例如,可以使用shell命令调用查询引擎模块查询如下:
[adhocpdn36c16g~]$impala-shell------首先,登陆impalashell
StartingImpalaShellwithoutKerberosauthentication
Connectedtopdn36c16g:21000
[pdn36c16g:21000]>useimpala;------其次,切换数据库
Query:useimpala
[pdn36c16g:21000]>showtables;------再次,登陆impalashell
Query:showtables
+-----------------------------+
|name|
+-----------------------------+
|pir2_base_all_impala|
|pir2_base_all_impala_snappy|
+-----------------------------+
Returned2row(s)in0.02s
[pdn36c16g:21000]>selectsubstr(tkt_tkg_dt,1,6)ascolumn1,count(tkt_nbr)ascolumn2,count(distinct(tkt_nbr))ascolumn3fromimpala.pir2_base_ics_snappy_viewwheredt>'20140101'andtkt_tkg_dt>='20140101'andtkt_tkg_dt<='20141128'groupbysubstr(tkt_tkg_dt,1,6)orderbysubstr(tkt_tkg_dt,1,6)limit500offset0
例如,使用JDBC调用查询引擎模块进行查询如下:
Class.forName("org.apache.hadoop.hive.jdbc.HiveDriver");
Connectioncon=DriverManager.getConnection("jdbc:hive://192.168.0.95:10000/default","","");
Statementstmt=con.createStatement();
Stringsql="showtables'"+tableName+"'";
System.out.println("Running:"+sql);
res=stmt.executeQuery(sql);
if(res.next()){
System.out.println(res.getString(1));
}
本发明实施例还提供了一种旅客行程数据即席查询方法,如图7所示,所述方法可以包括如下步骤:
步骤701:数据接收调度模块调用查询引擎模块创建分区表和压缩分区表;
步骤702:数据接收调度模块接收旅客行程数据,调用数据存储模块并将所述旅客行程数据加载入数据存储模块,并通过调用查询引擎模块将旅客行程数据加载入所述分区表,再从所述分区表中读出直接加载入所述压缩分区表,以更新所述分区表与所述压缩分区表中的元数据;
步骤703:数据存储模块作为分布式文件系统存储所述旅客行程数据;
步骤704:应用接口模块为前端应用提供接口,调用查询引擎模块进行查询;
步骤705:查询引擎模块与所述数据存储模块进行耦合,基于所述分区表和/或压缩分区表完成旅客行程数据的查询;
其中,旅客行程数据、数据接收调度模块、数据存储模块、查询引擎模块以及应用接口模块均已在上文详述,不再赘述。
这里,所述分区表的配置关键信息(即该分区表的元数据类型),包括:分区字段、数据文件中字段间隔符号、存储格式、数据在所述HDFS上的位置;
所述压缩分区表的配置关键信息(即该压缩分区表的元数据类型),包括:分区字段、数据文件中字段间隔符号、压缩格式等。
具体地,步骤701的实现流程如图2所示,不再赘述。
具体地,步骤703中存储旅客行程数据的过程如图3所示,已在上文详述,不再赘述。
其中,步骤705中基于所述压缩分区表完成旅客行程数据的查询,包括:
所述ImpalaDaemon以Impalaed进程存在,包括查询计划器、查询协调器和查询执行器,所述查询计划器接收由所述应用接口模块提交的SQL查询请求,并对SQL查询请求进行解析,生成执行计划;查询协调器把多个执行计划分配到各个查询执行器并行执行,以从所述HDFS的各数据节点上获取旅客行程数据;
所述ImpalaStatestore以Statestored进程存在,收集分布在HDFS集群中各个节点的CPU/内存/网络资源,完成一次查询中多个任务分片的调度;以及,用于把所述ImpalaCatalogService对于所述分区表和/或压缩分区表中元数据的更新推送到各个Impalad进程;
所述ImpalaCatalogService,以Catalog进程存在,接收针对所述分区表和/或压缩分区表中元数据的查询和更新操作,同时把更新结果发送给所述Statestored进程并通过其推送到各个Impalaed进程。
具体地,步骤704中,所述应用接口模块包含:命令行接口、网页接口、以及基于驱动服务器的接口;所述命令行接口通过shell命令行的形式对查询引擎模块进行调用;所述基于驱动服务器的接口通过在应用中载入相应的开发包对查询引擎模块进行可编程式的调用。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (14)

1.一种旅客行程数据即席查询系统,其特征在于,所述系统包括:数据接收调度模块、数据存储模块、查询引擎模块和应用接口模块,其中,
数据接收调度模块,用于调用所述查询引擎模块创建分区表和压缩分区表;以及,用于接收旅客行程数据,调用所述数据存储模块并将所述旅客行程数据加载入数据存储模块,并通过调用查询引擎模块将旅客行程数据加载入所述分区表,再从所述分区表中读出直接加载入所述压缩分区表;
数据存储模块,用于作为分布式文件系统存储旅客行程数据;
查询引擎模块,用于创建分区表和压缩分区表,与所述数据存储模块进行耦合,基于所述分区表和/或压缩分区表完成旅客行程数据的查询;
应用接口模块,用于为前端应用提供接口,以及调用查询引擎模块进行旅客行程数据的查询;
其中,数据存储模块采用开源分布式文件系统HDFS,所述查询引擎模块采用Impala。
2.根据权利要求1所述的系统,其特征在于,
所述分区表配置的元数据类型,包括:分区字段、数据文件中字段间隔符号、存储格式、数据在所述HDFS上的位置;
所述压缩分区表配置的元数据类型,包括:分区字段、数据文件中字段间隔符号、压缩格式。
3.根据权利要求1所述的系统,其特征在于,所述数据接收调度模块,具体用于:
根据旅客行程数据的格式特征,调用查询引擎模块创建分区表和压缩分区表,其中,采取按日分区的策略;
旅客行程数据定时自动传送到数据接收调度模块所在服务器的固定位置后,在判断数据到达时,通过调用数据存储模块的客户端程序,将旅客行程数据加载入数据存储模块的特定位置;
通过调用查询引擎模块的客户端程序,将旅客行程数据加载入所述分区表,然后再从所述分区表中读出直接加载入所述压缩分区表。
4.根据权利要求1所述的系统,其特征在于,所述HDFS包括名字节点NameNode和数据节点DataNode;
所述HDFS的名字节点,用于记录旅客行程数据的位置、大小、在各数据节点中存储的位置;
所述HDFS的各个数据节点,用于将所述旅客行程数据的数据文件以文件块的形式存储,文件块的大小由配置参数指定,同时配置每个文件块的冗余份数,并自动复制到其他数据节点上。
5.根据权利要求1所述的系统,其特征在于,所述查询引擎模块采用的Impala包括三个组件:ImpalaDaemon(Impala守护进程)、ImpalaStatestore(Impala模式存储)、ImpalaCatalogService(Impala目录服务);
所述ImpalaDaemon,以Impalaed进程存在,包括查询计划器、查询协调器和查询执行器,所述查询计划器接收由所述应用接口模块提交的SQL查询请求,并基于所述分区表或压缩分区表的元数据对所述SQL查询请求进行解析,生成执行计划;查询协调器把多个执行计划分配到各个查询执行器并行执行,以从所述HDFS的各数据节点上获取旅客行程数据并返回;
所述ImpalaStatestore,以Statestored进程存在,用于收集分布在HDFS集群中各个节点的CPU/内存/网络资源,完成一次查询中多个任务分片的调度;以及,用于把所述ImpalaCatalogService对于所述分区表和/或压缩分区表中元数据的更新推送到各个Impalad进程;
所述ImpalaCatalogService,以Catalog进程存在,用于接收针对所述分区表和/或压缩分区表中元数据的查询和更新操作,同时把更新结果发送给所述Statestored进程并通过其推送到各个Impalaed进程。
6.根据权利要求1所述的系统,其特征在于,所述应用接口模块包含:命令行接口、网页接口、以及基于驱动服务器的接口。
7.根据权利要求1所述的系统,其特征在于,
所述旅客行程数据以航空公司航班控制管理系统中成行的旅客订座记录(PNR,PassengerNameRecord)的旅客数据为基准,结合使用航空公司电子票系统的旅客订票数据,以及使用航空公司离港系统的旅客数据;
所述旅客行程数据的数据粒度达到旅客航段级。
8.一种旅客行程数据即席查询方法,其特征在于,所述方法包括:
数据接收调度模块调用查询引擎模块创建分区表和压缩分区表;
数据接收调度模块接收旅客行程数据,调用数据存储模块并将所述旅客行程数据加载入数据存储模块,并通过调用查询引擎模块将旅客行程数据加载入所述分区表,再从所述分区表中读出直接加载入所述压缩分区表;
数据存储模块作为分布式文件系统存储所述旅客行程数据;
应用接口模块为前端应用提供接口,调用查询引擎模块进行查询;
查询引擎模块与所述数据存储模块进行耦合,基于所述分区表和/或压缩分区表完成旅客行程数据的查询;
其中,数据存储模块采用开源分布式文件系统HDFS,所述查询引擎模块采用Impala。
9.根据权利要求8所述的方法,其特征在于,
所述分区表配置的元数据类型,包括:分区字段、数据文件中字段间隔符号、存储格式、数据在所述HDFS上的位置;
所述压缩分区表配置的元数据类型,包括:分区字段、数据文件中字段间隔符号、压缩格式。
10.根据权利要求8或9所述的方法,其特征在于:
所述数据接收调度模块根据旅客行程数据的格式特征,调用查询引擎模块采取按日分区的策略创建分区表和压缩分区表;
旅客行程数据定时自动传送到所述数据接收调度模块所在服务器的固定位置后,所述数据接收调度模块在判断数据到达时,通过调用数据存储模块的客户端程序,将旅客行程数据加载入所述数据存储模块的特定位置;
通过调用所述查询引擎模块的客户端程序,将所述旅客行程数据加载入所述分区表,然后再从所述分区表中读出直接加载入所述压缩分区表。
11.根据权利要求9所述的系统,其特征在于,
所述HDFS包括名字节点NameNode和数据节点DataNode;
所述数据存储模块作为分布式文件系统存储所述旅客行程数据包括:
所述HDFS的名字节点记录旅客行程数据的位置、大小、在各数据节点中存储的位置;
所述HDFS的各个数据节点将所述旅客行程数据的数据文件以文件块的形式存储,文件块的大小由配置参数指定,同时配置每个文件块的冗余份数,并自动复制到其他数据节点上。
12.根据权利要求8所述的方法,其特征在于,
所述查询引擎模块采用的Impala包括三个组件:ImpalaDaemon(Impala守护进程)、ImpalaStatestore(Impala模式存储)、ImpalaCatalogService(Impala目录服务);
所述基于所述分区表和/或压缩分区表完成旅客行程数据的查询,包括:
所述ImpalaDaemon以Impalaed进程存在,包括查询计划器、查询协调器和查询执行器,所述查询计划器接收由所述应用接口模块提交的SQL查询请求,并基于所述分区表或压缩分区表的元数据对所述SQL查询请求进行解析,生成执行计划;查询协调器把多个执行计划分配到各个查询执行器并行执行,以从所述HDFS的各数据节点上获取旅客行程数据并返回;
所述ImpalaStatestore以Statestored进程存在,收集分布在HDFS集群中各个节点的CPU/内存/网络资源,完成一次查询中多个任务分片的调度;以及,用于把所述ImpalaCatalogService对于所述分区表和/或压缩分区表中元数据的更新推送到各个Impalad进程;
所述ImpalaCatalogService,以Catalog进程存在,接收针对所述分区表和/或压缩分区表中元数据的查询和更新操作,同时把更新结果发送给所述Statestored进程并通过其推送到各个Impalaed进程。
13.根据权利要求8所述的方法,其特征在于,所述应用接口模块包含:命令行接口、网页接口、以及基于驱动服务器的接口;
所述命令行接口通过shell命令行的形式对查询引擎模块进行调用;
所述基于驱动服务器的接口通过在应用中载入相应的开发包对查询引擎模块进行可编程式的调用。
14.根据权利要求8所述的方法,其特征在于,
所述旅客行程数据以航空公司航班控制管理系统中成行的旅客订座记录(PNR,PassengerNameRecord)的旅客数据为基准,结合使用航空公司电子票系统的旅客订票数据,以及使用航空公司离港系统的旅客数据;
所述旅客行程数据的数据粒度达到旅客航段级。
CN201511000442.7A 2015-12-28 2015-12-28 旅客行程数据即席查询系统及方法 Active CN105550351B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201511000442.7A CN105550351B (zh) 2015-12-28 2015-12-28 旅客行程数据即席查询系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511000442.7A CN105550351B (zh) 2015-12-28 2015-12-28 旅客行程数据即席查询系统及方法

Publications (2)

Publication Number Publication Date
CN105550351A true CN105550351A (zh) 2016-05-04
CN105550351B CN105550351B (zh) 2019-05-14

Family

ID=55829540

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511000442.7A Active CN105550351B (zh) 2015-12-28 2015-12-28 旅客行程数据即席查询系统及方法

Country Status (1)

Country Link
CN (1) CN105550351B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106708917A (zh) * 2016-06-30 2017-05-24 腾讯科技(深圳)有限公司 一种数据处理方法、装置以及olap系统
CN107749853A (zh) * 2017-10-27 2018-03-02 中航信移动科技有限公司 民航客票监控系统和方法
CN113312414A (zh) * 2020-07-30 2021-08-27 阿里巴巴集团控股有限公司 数据处理方法、装置、设备和存储介质
CN113792079A (zh) * 2021-11-17 2021-12-14 腾讯科技(深圳)有限公司 数据查询方法、装置、计算机设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007134250A2 (en) * 2006-05-12 2007-11-22 Goldengate Software, Inc. Method for forming homogeneous from heterogeneous data
CN103729453A (zh) * 2014-01-02 2014-04-16 浪潮电子信息产业股份有限公司 一种HBase表联合查询优化的方法
CN103927331A (zh) * 2014-03-21 2014-07-16 珠海多玩信息技术有限公司 数据查询方法、装置及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007134250A2 (en) * 2006-05-12 2007-11-22 Goldengate Software, Inc. Method for forming homogeneous from heterogeneous data
CN103729453A (zh) * 2014-01-02 2014-04-16 浪潮电子信息产业股份有限公司 一种HBase表联合查询优化的方法
CN103927331A (zh) * 2014-03-21 2014-07-16 珠海多玩信息技术有限公司 数据查询方法、装置及系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106708917A (zh) * 2016-06-30 2017-05-24 腾讯科技(深圳)有限公司 一种数据处理方法、装置以及olap系统
CN106708917B (zh) * 2016-06-30 2019-03-15 腾讯科技(深圳)有限公司 一种数据处理方法、装置以及olap系统
CN107749853A (zh) * 2017-10-27 2018-03-02 中航信移动科技有限公司 民航客票监控系统和方法
CN113312414A (zh) * 2020-07-30 2021-08-27 阿里巴巴集团控股有限公司 数据处理方法、装置、设备和存储介质
CN113312414B (zh) * 2020-07-30 2023-12-26 阿里巴巴集团控股有限公司 数据处理方法、装置、设备和存储介质
CN113792079A (zh) * 2021-11-17 2021-12-14 腾讯科技(深圳)有限公司 数据查询方法、装置、计算机设备和存储介质
CN113792079B (zh) * 2021-11-17 2022-02-08 腾讯科技(深圳)有限公司 数据查询方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN105550351B (zh) 2019-05-14

Similar Documents

Publication Publication Date Title
Grover et al. Data Ingestion in AsterixDB.
CN104516989B (zh) 增量数据推送系统和方法
CN103430144A (zh) 数据源分析
CN107103064B (zh) 数据统计方法及装置
CN102999537A (zh) 一种数据迁移系统和方法
CN110019267A (zh) 一种元数据更新方法、装置、系统、电子设备及存储介质
CN101539931A (zh) 一种航班动态信息数据整合器及处理方法
CN105447088A (zh) 一种基于志愿者计算的多租户专业云爬虫
CN103605698A (zh) 一种用于分布异构数据资源整合的云数据库系统
Hasani et al. Lambda architecture for real time big data analytic
CN102917009B (zh) 一种基于云计算技术的股票数据采集和存储方法和系统
CN104778188A (zh) 一种分布式设备日志采集方法
CN103019728A (zh) 一种高效复杂报表解析引擎及其解析方法
CN105550351A (zh) 旅客行程数据即席查询系统及方法
CN104239377A (zh) 跨平台的数据检索方法及装置
Samwel et al. F1 query: Declarative querying at scale
CN102929899A (zh) 一种基于中间表的分布式报表系统
CN108241725B (zh) 一种数据热度统计系统和方法
CN102902777A (zh) 跨数据源查询装置和跨数据源查询方法
CN111966692A (zh) 针对数据仓库的数据处理方法、介质、装置和计算设备
Nabi Pro Spark Streaming: The Zen of Real-Time Analytics Using Apache Spark
CN103164476A (zh) 一种bi应用元数据描述文件的执行方法和装置
CN105824892A (zh) 一种数据池对数据同步和处理的方法
KR101828522B1 (ko) 이종 데이터 처리를 위한 분산 병렬 처리 시스템
Chen et al. Pisces: optimizing multi-job application execution in mapreduce

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
CP02 Change in the address of a patent holder

Address after: 100085 Yumin Street, Houshayu Town, Shunyi District, Beijing

Patentee after: CHINA TRAVELSKY HOLDING Co.

Address before: 100010, Beijing, Dongcheng District East Fourth Street, West 157

Patentee before: CHINA TRAVELSKY HOLDING Co.

CP02 Change in the address of a patent holder