联 系 我 们
售前咨询
售后咨询
微信关注:星环科技服务号
更多联系方式 >

技术博客

首页>博客资讯>【干货】业界 强的SQL引擎Transwarp Inceptor为什么这么快?秘密武器Holodesk大揭秘>

【干货】业界 强的SQL引擎Transwarp Inceptor为什么这么快?秘密武器Holodesk大揭秘

发布时间 2015-12-30

 

在Transwarp Inceptor中,如果在十几亿条记录的Holodesk表上对两个维度做聚合求sum的SQL,能得到秒级的返回。如果这张表以ORC存储,相同的SQL需要花的时间则需要几分钟以上。Holodesk到底是什么?为什么它能让SQL查询获得如此大的性能提升?今天我们就来解开Holodesk的神秘面纱。

Holodesk是星环科技为大数据场景下的数据集市设计的利器。数据集市(Data Mart)是从数据仓库(Data Warehouse)中根据需求抽离出的子集,它面向着特定的专业团体,反映了一定的商业性能或者系统功能的特点。数据集市中的记录彼此之间存在一定的特点共性,不同的数据集市之间既可以表现出差异性也可以表现关联性,可以满足不同特定群体的需求。如果说数据仓库对应了一个公司的完整数据的集合,那么数据市场则是将数据按照部门的归类结果,数据集市所属的部门可根据需要,使用、控制或者增加其中的内容。数据仓库的用户往往需要在数据集合中寻找对自己有用的信息,然而在信息量大大的数据库中执行这样的操作是很困难的,因为里面所含的内容往往关系不易理清且具有大量无关信息。创建数据集市的好处是方便用户对于大量数据的使用与分析。数据集市存储着为特定用户事先计算好的数据,使得对特定数据的查询变得更容易,提升了语句查询响应效率,减少了用户的等待时长。另外,数据集市的内容是对历史的快照,对其中数据的分析,可以促使相关业务职能的部门做出更合理的决策和制定更稳妥的战略规划。

Holodesk作为Transwarp Inceptor中的分布式列式存储组件,其通过将数据表建在内存或者SSD上来提高分析查询性能,同时提供以下关键功能特性来满足企业级高速分析需求。

Holodesk是用于应对海量数据OLAP高性能分析查询难题的一款产品,它着力于交互式分析中即时查询效率的提高以及扩展性与稳定性。它的构成组件以及架构方式如图Figure 2.1所示。

Figure 2.1 Holodesk的构成组件以及架构

Holodesk本身属于存储层,对SQL语句的执行需要交给Inceptor计算引擎,Inceptor主要由两类节点组成:主节点Inceptor Server,以及计算节点Executor。SQL语句由Inceptor Server解析执行,生成执行计划, 终RDD的变换执行过程组成Transwarp Spark DAG,RDD中不同的partition合理的分配给不同的计算节点Executor,每个partition对应于一个计算子任务,由Executor执行具体的计算处理。逻辑如Figure 2.2所示。

Figure 2.2 Inceptor Server与Holodesk

用户可以直接通过在Inceptor中用SQL语句建以Holodesk存储的表来利用Holodesk的多种功能特性。在建表时,用户可以选择将数据缓存在SSD还是在RAM中。下面是两个例子:

1. 建一张位于RAM名为holodeskEmployee 的holodesk空表,包含有五列字段:“ID”,“Region”,“Sex”,“Department”,“Salary”。将cache设置为RAM:

CREATE TABLE holodeskEmployee(

ID INT,

Region STRING,

Sex VARCHAR(4),

Department STRING,

Salary DECIMAL

) TBLPROPERTIES('cache' = 'RAM');

2. 建一张名为holodeskEmployee的Holodesk表,同时从一张已有的Inceptor表Employee导入数据,将cache设置为SSD:

CREATE TABLE holodeskEmployee

TBLPROPERTIES('cache' = 'SSD')

AS SELECT * FROM Employee;

Holodesk表建成后,用户便可以在Inceptor中利用Holodesk的特性以及星环科技开发的优化工具获得很高的查询效率。

在星环,我们用TPC-DS大数据测试基准进行了一系列性能测试。TPC-DS中的store_sales表有40亿条左右的记录,我们将其建为一张Holodesk表。在对store_sales表运行复杂SQL时我们通过建CUBE进行了优化。下面是对store_sales表执行的OLAP场景中一些有代表性的操作:

OperationSQL
q1countselect count(*) from store_sales
q2measureselect sum(ss_sales_price) from store_sales
q3aggregationselect sum(ss_sales_price) from store_sales group by ss_customer_sk
q4drill downselect sum(ss_sales_price) from store_sales group by ss_sold_date_sk
q5drill downselect sum(ss_sales_price) from store_sales group by ss_customer_sk, ss_sold_date_sk
q6sliceselect sum(ss_sales_price) from store_sales where ss_customer_sk=5000 group by ss_customer_sk,ss_sold_date_sk
q7diceselect sum(ss_sales_price) from store_sales where ss_sold_date_sk between 2450629 and 2451816 group by ss_customer_sk
q8pivotselect sum(ss_sales_price) from store_sales where ss_customer_sk > 5000 and ss_sold_date_sk between 2450629 and 2451816 group by ss_customer_sk,ss_sold_date_sk

在测试中,使用Holodesk表和使用TXT表执行这些操作分别所花时间如下所示:

不难看出,Holodesk表相对TXT表,查询性能得到了非常显著的提高,在这8个查询,中,性能提升在几十倍至几百倍。

想了解如何在Inceptor中用Holodesk特性达到如此显著的性能提升吗?请继续关注星环科技公众号,我们将在未来的文章中详细剖析Holodesk SQL优化案例。

关键词:
SQL引擎,Transwarp Inceptor,Holodesk,大数据,星环

热门产品

  • TDC星环数据云平台(TDC),基于云原生技术融合数据 PaaS、分析PaaS、应用 PaaS,实现数据端到端全生命周期管理。

  • TDS数据开发 | 数据治理 | 共享交换 支撑企业级数据治理和数据资产平台建设

  • SophonSophon-星环智能分析工具,分布式计算、多模态处理、图形化建模、隐私密保护、云边化一体。

  • KunDB星环分布式交易型数据库 SQL兼容、强一致、高性能、高可用

  • ArgoDBTranswarp ArgoDB 是星环科技自主研发的分布式分析型闪存数据库,可以替代Hadoop+MPP混合架构。支持标准SQL语法,提供多模分析、实时数据处理、存算解耦、混合负载、数据联邦、异构服务器混合部署等领先技术能力。