• 1. Transwarp Inceptor:如何让SQL在Spark上运行的更快星环信息科技(上海)有限公司 www.transwarp.io从开源迈向商业产品 刘汪根 wayne.liu@transwarp.io
  • 2. 来自于知名外企的创业团队 注册资金一千万元的高科技公司 成功完成近千万美元级别的A轮融资 中国最久的企业级Hadoop核心开发团队 比肩硅谷的企业级架构及功能模块 数十个国内的落地应用案例2星环科技www.transwarp.io
  • 3. Spark生态系统的演变2009年-2012年 @AMP lab of UC Berkeley, Spark作为Mesos的一个测试项目开发,主要由 AMP Lab开发、完善和推广 2013年 Spark成为Apache项目,被大部分人接受。 2013年11月 星环科技推出第一个Spark商业发行版,当时已有多个生产集群案例,包括锦江电商、工商总局等多个客户在生产系统中部署。 2014年7月 Spark Summit作为独立于Hadoop的大会召开,大数据生态系统开始全面转向Spark 开源社区准备合作扩大对Spark的支持,将Spark作为标准的计算引擎以替代Map/Reduce. @2014/7/1 Cloudera和MapR开始宣布支持Spark,由Databricks提供售后支持服务。Mike Olson, Cloudera创始人, 承认Impala将只作为交互式SQL引擎,其他所有的Hadoop组件会迁移到Spark上来。@2014/7/3 2014年10月 Strata+Hadoop,Spark的生态系统得到极大发展 主流Hadoop发行版厂商都宣布支持Spark,包括Cloudera, MapR, Hortonworks Hadoop之上的应用和工具厂商开始转向Spark,包括Platfora, Tableau,Pentaho, 0xdata等 开始出现多个完全基于Spark的SaaS服务和工具厂商:ClearStory, Adatao, DataRPM等数十家创业公司 星环科技基于Spark的交互式SQL引擎(Inceptor)已能够7x24稳定处理数十TB(远大于内存容量)的数据,并且已经有数十个生产系统部署案例,Spark技术已经领先于国外同行。strata 2014/10
  • 4. Transwarp Data Hub (TDH) 架构图Transwarp Proprietary 流处理 引擎 Transwarp Stream NoSQL数据库 搜索、图计算 Transwarp Hyperbase Transwarp Manager交互式内存分析 数据挖掘 Transwarp Inceptor including Apache Spark资源管理 YARN (内置Transwarp Extension)优化存储 HDFS2 (内置Transwarp Erasure Code)批处理 Pig批处理框架 Map/Reduce2协作服务 Zookeeper机器学习 Mahout工作流 Oozie日志采集 Flume全文搜索 Elastic SearchApache Projects 数据集成 Sqoop 一站式数据存储平台 TDH通过内存计算技术、高效索引、执行计划优化和高度容错的技术,使得一个平台能够处理从GB到PB的数据,并且在每个数量级上,都能比现有技术提供更快的性能; 企业客户不再需要混合架构,不需要孤立的多个集群,TDH可以伴随企业客户的数据增长,动态不停机扩容,避免MPP或传统架构数据迁移的棘手问题。 一站式资源管理平台 TDH在统一存储上建立资源管理层,提供企业用户统一的计算资源管理、动态资源分配、多部门之间资源配置和动态共享,灵活支持多部门多应用在统一平台上平滑运行。 一站式数据分析平台 TDH支持批处理统计分析、交互式SQL分析、在线数据检索、R语言数据挖掘、机器学习、实时流处理、全文搜索和图计算,为企业客户提供广泛的计算支持能力,客户无需切换平台或架构即可完成复杂的任务。 一站式管理平台: TDH作为企业级解决方案,开发了用户友好的管理界面、提供了系统安装、集群配置,安全访问控制、监控及预警等多方面支持,在可管理性方面优势显著。> > > >
  • 5. 分布式内存分析引擎Inceptor架构图Apache Spark 基于内存的Map/Reduce计算引擎,即将成为新一代主流计算框架。处理大数据像“光速”一样快,比Hadoop Map/Reduce快10x倍。 Holodesk 跨内存/闪存/磁盘等介质的分布式混合列式存储,常用于缓存数据供Spark高速访问。Holodesk内建内存索引,可提供比开源Spark更高的交互式统计性能;结合使用低成本的内存/SSD混合存储方案,可接近全内存存储的分析性能。 SQL引擎 高度优化的高速SQL引擎,可运行在Spark或Map/Reduce上,可高速处理缓存在Holodesk上的列式数据。兼容ANSI SQL 1999, HiveQL和PL/SQL语法,支持数据仓库、数据集市等分析系统中常用的复杂分析型语法,方便应用迁移。 统计库 并行化的高性能统计算法库,用于对原始数据进行去噪、去缺省/异常值、归一化、统计分布等,是机器学习或数据挖掘的基础工具包。 机器学习库 并行化的高性能机器学习算法库,包含分类、聚类、预测、推荐等机器学习算法。可用于构建高精度的推荐引擎或者预测引擎。 R 语言/R Studio 强大的主流数据统计和绘图语言R以及Web图形化开发界面RStudio。通过调用Inceptor内置并行算法库,支持对大数据集进行数据挖掘和统计。 丰富的工具支持 支持主流可视化和BI/挖掘工具,包括Tableau, IBM Cognos, SAP BO, Oracle BI, SAS等。支持Informatica,Pentaho/Kettle等ETL工具。 Transwarp HDFS2 分布式持久化数据存储cacheTranswarp Hyperbase 分布式实时数据库cacheTranswarp Holodesk 分布式内存列式存储R – statistical computingDistributed Execution Engine 分布式执行引擎 including Apache Spark编译器 SQL’99 + PL/SQL COMPILER优化器 COST BASED OPTIMIZER代码生成 CODE GENERATORInteractive SQL EngineTranswarp Statistics Library 并行统计算法库Transwarp Machine Learning Library 机器学习算法库JDBCSHELLODBC
  • 6. 6TRANSWARP © 2014更完整的SQL支持ANSI SQL 1999Impala 2.0Inceptor 3.4Basic and Complex Data Types✓✓WITH-AS SUB-TABLESⅹ✓Nested Sub-queryo✓Correlated Sub-queryⅹ✓Window Aggregationo✓GROUP BY CUBE/ROLLUPⅹ✓SEMI-OUTER JOIN、IMPLICIT JOIN、NATURE JOIN、CROSS JOIN、SELF JOINo✓OPEREATORS including UNION, IN, EXISTS, NOT EXISTSo✓DML for single row INSERT INTO TABLE VALUES …… UPDATE TABLE SET …… DELETE FROM TABLE WHERE …… ⅹ✓PL/SQLImpala 2.0Inceptor 3.4Conditional Control Flow IF … THEN … ELSE …ⅹ✓LOOPS: FOR, WHILE, BREAK/CONTINUEⅹ✓Variables DECLARE VAR_XXXⅹ✓Functions definition & calls CREATE FUNCTIONⅹ✓Stored Procedures Create PROCEDURE ⅹ✓SQL99 + PL/SQL is critical for data warehouse workload. It’s impossible to migrate real-world data analysis workload to hadoop without these features. Inceptor SQL is compatible with SQL99 and HiveQL. It detects different syntax automatically. Stable & reliable for 7x24 production with many use cases.o - partial support
  • 7. 7TRANSWARP © 2014INSERT OVERWRITE TABLE A;CREATE TABLE A (NAME CHAR(10));IF v_flag=‘TRUE’ THEN …… END IFUserSQL 前端编译器和执行引擎灵活互换UserUserPL/SQLSQL’ 99Hive QLSyntax AnalysisSemantic AnalysisOptimizersSparkM/R②Syntax auto-detectionUSENGMR=TRUEUSENGMR=FALSEResult③free switch between M/R & SparkSQL集①HiveQL、SQL’99、PL/SQLBackend
  • 8. 更稳定的性能:Off-heap Columnar StoreTRANSWARP ©1WA2XB3YC4ZD1WAINDEXINDEXINDEX4ZDINDEXINDEXINDEXIndependent Columnar Store (Off-heap memory/SSD cache layer) 3YCINDEXINDEXINDEX2XBINDEXINDEXINDEXGLOBAL INDEXZookeeper ClusterservantservantservantservantExecutorExecutorExecutorSpark ContextExecutorSparkCREATE TABLE t1 TBLPROPERTIES( "cache"=“RAM”, “filters”=“hashbucket(360):c1” ) AS SELECT * FROM src DISTRIBUTE BY c1;Off-Heap Columnar store Secondary index Table format/access SSD as cache
  • 9. 更快的性能:Cost Based Optimizer9Table A 1000 Recordskurtmaryjohnsmith622523454095243622550042034568622544334568763622534878982324v_nameCard_id12……999999910000000No.Table B 1000 recordsJOIN ON A.card_id=B.card_idCost based optimizerTable sizeImmediate result sizeData skewValue distributionselectivityMap JoinLookup JoinHash JoinQuery PlanCommon JoinCo-Group Join
  • 10. TPC-DS性能测试结果10TRANSWARP © 2014图中纵坐标小于1表示Impala性能超过Inceptor,而大于1则表示Inceptor性能更好。对于Impala不能支持的SQL,我们就标记这个性能比为100。 从图中可见,在Impala支持的19个SQL中,只有8个SQL的表现超过Inceptor,另外11个SQL 在Inceptor的表现比Impala更好。测试细节参考星环性能白皮书
  • 11. 采用SSD固态盘作为缓存层Use CaseSQL statementCountselect count(ss_item_sk) from store_sales;Findselect * from store_sales where ss_item_sk=141031;Filterselect count(1) from store_sales where ss_customer_sk like "%634%";Inner joinselect /*+mapjoin(b)*/ count(*) from store_sales a, store_returns b where a.ss_item_sk = b.sr_item_sk and a.ss_customer_sk=b.sr_customer_sk and a. ss_item_sk=141031 ;Dimension Statsselect ss_item_sk, count(distinct ss_customer_sk) as customers from store_sales group by ss_item_sk order by customers desc limit 10;Implicit Joinselect count(*) from store_sales a, store_returns b where a.ss_item_sk = b.sr_item_sk and a.ss_customer_sk=b.sr_customer_sk;Sortselect ss_item_sk, ss_sold_date_sk, count(1) as num from store_sales group by ss_item_sk, ss_sold_date_sk order by num desc limit 10;Window Aggregationselect * from (select *, rank() over (partition by ss_sold_date_sk, ss_item_sk order by num desc) as r from (select ss_sold_date_sk, ss_item_sk, count(1) as num from store_sales group by ss_sold_date_sk, ss_item_sk) tmp) tmp2 where r=1 limit 100;Only 20% performance degradation for SSD comparing to memoryUsing SDD as cache layer allows user to process 10x larger data at same price as memory with similar performance.
  • 12. 交互式分析 – 纽约市311服务电话记录分析Dataset NYC 311 service call records 10GB data size Steps Load dataset into memory Connect tableau to Inceptor Service calls’ geo distribution (few calls in central park) Time distribution (few calls in weekends) Type distribution (most are street lights or neighbor noises) 纽约中央公园
  • 13. 对R语言的完整支持 R package from Transwarp R StudioR – SQL Interface from TranswarpTables Distributed Columnar Store on SSDStatistics LibraryMachine Learning LibraryFiles Hadoop Distributed File SystemR – Spark Interface from TranswarpSpark RDD Resilient Distributed Dataset in MemoryCall parallelized algorithmsCall SQLcall sequential algorithm for distributed dataset
  • 14. 使用R语言进行商圈分析Dataset PoS transaction records within past three months for all shops in Shanghai city
  • 15. 15TRANSWARP © 2014Summary for Transwarp InceptorTranswarp Inceptor = Hadoop + Spark + R + SQL 1. 更全的SQL支持 ANSI SQL’2003, HiveQL Partial PL/SQL support 2. 性能更快更稳定 2x-10x faster than traditional database Better TPC-DS performance number than Impala Interactive analysis through visualization tools Stable for 7x24 production 3. 完整支持R语言 Parallelized machine learning algorithms SQL and statistics algorithm for data cleansing 4. 简化运维管理 Web based installation/configuration Graph based monitoringTranswarp Proprietary 流处理 引擎 Transwarp Stream NoSQL数据库 搜索、图计算 Transwarp Hyperbase Transwarp Manager交互式内存分析 数据挖掘 Transwarp Inceptor including Apache Spark资源管理 YARN (内置Transwarp Extension)优化存储 HDFS2 (内置Transwarp Erasure Code)批处理 Pig批处理框架 Map/Reduce2协作服务 Zookeeper机器学习 Mahout工作流 Oozie日志采集 Flume全文搜索 Elastic SearchApache Projects 数据集成 Sqoop
  • 16. 16TRANSWARP © 2014We are hiringSQL编译器开发工程师Spark计算平台开发工程师New SQL开发工程师售前POC工程师测试工程师WEB管理软件开发人员大数据挖掘工程师创业公司员工期权领先行业薪酬水平http://www.transwarp.io/company.html#join-us
  • 17. TRANSWARP ©