一种支持可信计算的spark查询方法及系统技术方案

技术编号:20272472 阅读:26 留言:0更新日期:2019-02-02 03:38
本发明专利技术公开了一种支持可信计算的spark查询方法及系统,所述方法包括接收用户输入的SQL查询语句;对所述SQL查询语句进行解析、逻辑计划分析、逻辑计划优化、物理计划生成;将所述物理计划中的算子采用SGX API重新实现,生成执行代码;调用enc lave可信环境实现对所述算子的可信计算,执行所述执行代码。通过本发明专利技术,在通过spark架构并行处理查询请求的同时,保证了计算过程中数据的安全。并且,spark接口为用户提供了易用性更高的服务,对用户友好。

【技术实现步骤摘要】
一种支持可信计算的spark查询方法及系统
本专利技术涉及计算机应用技术,特别涉及一种支持可信计算的spark查询方法及系统。
技术介绍
近年来,随着互联网、物联网、智能终端设备的普及与应用,数据产生的速度越来越快,体量也越来越大,为了提供TB级别大数据的查询,主要采用spark架构来大规模并行处理数据。其中,Spark是加州大学伯克利分校的AMP实验室所开源的类HadoopMapReduce的通用并行框架。但是,现有技术中,spark查询中底层的算子安全性是没有任何保证的,运行过程中dump内存(获取内存镜像)即可拿到计算中的数据,无法保证计算的安全性。
技术实现思路
本申请的多个方面提供了基于可信计算的spark查询方法、系统、设备及存储介质,能够实现spark查询中计算的安全性。本专利技术的一方面,提供一种基于可信计算的spark查询方法,包括:接收用户输入的SQL查询语句;对所述SQL查询语句进行解析、逻辑计划分析、逻辑计划优化、物理计划生成;将所述物理计划中的算子采用SGXAPI重新实现,生成执行代码;调用enclave可信环境实现对所述算子的可信计算,执行所述执行代码。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述接收用户输入的SQL查询语句包括:spark调度服务器接收用户通过spark客户端输入的以SQL描述的查询语句。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,对所述SQL查询语句进行解析、逻辑计划分析、逻辑计划优化、物理计划生成包括:由SQL解析器对所述SQL查询语句进行解析,生成未解析的逻辑计划;由Catalyst分析器结合数据字典(catalog)进行绑定,生成解析的逻辑计划;由Catalyst优化器对解析的逻辑计划进行优化,按照优化规则得到优化的逻辑计划;使用SparkPlanner将优化的逻辑计划转换成物理计划。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,将所述物理计划中的算子采用SGXAPI重新实现包括:定位并提取所述物理计划中算子;将所提取的算子采用SGXAPI进行重新实现,生成执行代码;对所述执行代码对应的数据文件进行切分并打包。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,对所述执行代码对应的数据文件进行切分并打包包括:根据enclave可信环境中内存配置的堆的大小设定切分的数据块大小,打包为protobuf格式。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,调用enclave可信环境实现对所述算子的可信计算,执行所述执行代码包括:向spark节点服务器发送所述执行代码,以便所述spark节点服务器执行所述执行代码;调用enclave可信环境进行SGX远程认证;调用enclave可信环境计算所述重新实现的算子,根据计算结果执行spark操作。本专利技术的另一方面,提供一种基于可信计算的spark查询系统,包括:接收模块,用于接收用户输入的SQL查询语句;Spark转换模块,用于对所述SQL查询语句进行解析、逻辑计划分析、逻辑计划优化、物理计划生成;SGX转换模块,用于将所述物理计划中的算子采用SGXAPI重新实现,生成执行代码;可信计算调用模块,用于调用enclave可信环境实现对所述算子的可信计算,执行所述执行代码。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述接收模块具体用于:接收用户通过spark客户端输入的以SQL描述的查询语句。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述Spark转换模块具体用于:调用SQL解析器对所述SQL查询语句进行解析,生成未解析的逻辑计划;调用Catalyst分析器结合数据字典(catalog)进行绑定,生成解析的逻辑计划;调用Catalyst优化器对解析的逻辑计划进行优化,按照优化规则得到优化的逻辑计划;调用SparkPlanner将优化的逻辑计划转换成物理计划。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述SGX转换模块具体用于:定位并提取所述物理计划中算子;将所提取的算子采用SGXAPI进行重新实现,生成执行代码;对所述执行代码对应的数据文件进行切分并打包。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,对所述执行代码对应的数据文件进行切分并打包包括:根据enclave可信环境中内存配置的堆的大小设定切分的数据块大小,打包为protobuf格式。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述可信计算调用模块具体用于:向spark节点服务器发送所述执行代码,以便所述spark节点服务器执行所述执行代码;调用enclave可信环境进行SGX远程认证;调用enclave可信环境计算所述重新实现的算子,根据计算结果执行spark操作。本专利技术的另一方面,提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如以上所述的方法。本专利技术的另一方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如以上所述的方法。基于上述介绍可以看出,采用本专利技术所述方案,能够实现spark查询中计算的安全性。【附图说明】图1为本专利技术一些实施例所述基于可信计算的spark查询方法的流程图;图2为本专利技术一些实施例所述基于可信计算的spark查询系统的结构图;图3示出了适于用来实现本专利技术实施方式的示例性计算机系统/服务器012的框图。【具体实施方式】为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本申请保护的范围。图1为本专利技术基于可信计算的spark查询方法的流程图,如图1所示,包括以下步骤:步骤S11、接收用户输入的SQL查询语句;步骤S12、对所述SQL查询语句进行解析、逻辑计划分析、逻辑计划优化、物理计划生成;步骤S13、将所述物理计划中的算子采用SGXAPI重新实现,生成执行代码;步骤S14、调用enclave可信环境实现对所述算子的可信计算,执行所述执行代码。所述方法由spark调度服务器或某一节点服务器执行。所述spark调度服务器用于运行sparkmaster进程,即spark主进程,接收客户端的查询请求,并控制节点服务器进行查询计算操作。其中,Spark是加州大学伯克利分校的AMP实验室所开源的类HadoopMapReduce的通用并行框架。在步骤S11的一种优选实现方式中,优选地,所述客户端可以向spark集群中的某一个节点服务器或spark调度服务器发送查询请求。所述查询请求为用户通过所述客户端输入的以SQL(StructuredQueryLanguage,结构化查询语言)描述的查询语句。在步骤S12的一种优选实现方式中,对所述SQL查询语句进行解析、逻辑计划分析、逻辑计划优化、物理计划;包括以下子步骤:子步骤S121、由SQL解析器对所述SQL本文档来自技高网...

【技术保护点】
1.一种基于可信计算的spark查询方法,其特征在于,包括:接收用户输入的SQL查询语句;对所述SQL查询语句进行解析、逻辑计划分析、逻辑计划优化、物理计划生成;将所述物理计划中的算子采用SGX API英特尔软件防护扩展应用程序编程接口重新实现,生成执行代码;调用enclave可信环境实现对所述算子的可信计算,执行所述执行代码。

【技术特征摘要】
1.一种基于可信计算的spark查询方法,其特征在于,包括:接收用户输入的SQL查询语句;对所述SQL查询语句进行解析、逻辑计划分析、逻辑计划优化、物理计划生成;将所述物理计划中的算子采用SGXAPI英特尔软件防护扩展应用程序编程接口重新实现,生成执行代码;调用enclave可信环境实现对所述算子的可信计算,执行所述执行代码。2.根据权利要求1所述的方法,其特征在于,所述接收用户输入的SQL查询语句包括:spark调度服务器接收用户通过spark客户端输入的以SQL描述的查询语句。3.根据权利要求1所述的方法,其特征在于,对所述SQL查询语句进行解析、逻辑计划分析、逻辑计划优化、物理计划生成包括:由SQL解析器对所述SQL查询语句进行解析,生成未解析的逻辑计划;由Catalyst分析器结合数据字典进行绑定,生成解析的逻辑计划;由Catalyst优化器对解析的逻辑计划进行优化,按照优化规则得到优化的逻辑计划;使用SparkPlanner将优化的逻辑计划转换成物理计划。4.根据权利要求1所述的方法,其特征在于,将所述物理计划中的算子采用SGXAPI重新实现包括:定位并提取所述物理计划中算子;将所提取的算子采用SGXAPI进行重新实现,生成执行代码;对所述执行代码对应的数据文件进行切分并打包。5.根据权利要求4所述的方法,其特征在于,对所述执行代码对应的数据文件进行切分并打包包括:根据enclave可信环境中内存配置的堆的大小设定切分的数据块大小,打包为protobuf格式。6.根据权利要求1所述的方法,其特征在于,调用enclave可信环境实现对所述算子的可信计算,执行所述执行代码包括:向spark节点服务器发送所述执行代码,以便所述spark节点服务器执行所述执行代码;调用enclave可信环境进行SGX远程认证;调用enclave可信环境计算所述重新实现的算子,根据计算结果执行spark操作。7.一种基于可信计算的spark查询系统,其特征在于,包括:接收模块,用于接收用户输入的SQL查询语句;Spark转换模块...

【专利技术属性】
技术研发人员:冯智张宇段然
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1