兼容DB2和Oracle的高速SQL on Hadoop引擎:Inceptor
Transwarp Inceptor是星环科技推出的用于数据仓库和交互式分析的大数据平台软件,基于Hadoop和Spark技术平台打造,加上8大创新的功能组件,有效的解决了企业级大数据数据处理和分析的各种技术难题,帮助企业快速的构建和推广数据业务。
Transwarp Inceptor提供完整的SQL支持,支持主流的SQL模块化扩展,兼容通用开发框架和工具,支持事务特性保证数据的准确性,允许多租户的隔离与管理,能够利用内存或者SSD来加速数据的读取,支持与关系型数据库实时对接并做统计分析,辅以高性能的SQL执行引擎,从而能够给企业提供高性价比和高度可扩展的解决方案。
SQL编译器 SQL 2003 Compiler
企业级数据仓库、数据集市等应用大多基于SQL来开发,而Hadoop业界的产品大部分对SQL的兼容程序比较差,或者不支持SQL的模块化扩展,因而应用迁移的成本非常高,甚至是不具备可行性。
为了降低应用迁移成本,Transwarp Inceptor开发了完整的SQL编译器,支持ANSI SQL 92和SQL 99标准, 并且支持ANSI SQL 2003 OLAP核心扩展,可以满足绝大部分现有的数据仓库业务对SQL的要求,方便应用平滑迁移。
除了更好的SQL语义分析层以外,Inceptor包含强大的优化器保证SQL在引擎上有最佳的性能。Inceptor包含3级优化器:首先是基于规则的优化器,应用静态优化规则并生成一个逻辑执行计划,其次是基于成本的优化器,通过衡量多个不同执行计划的CPU,IO和网络成本,来选择一个更合理的计划并生成物理执行计划;最后是代码生成器,对一些比较核心的执行逻辑生成更高效的执行代码或者Java Byte Code,从而保证SQL业务在分布式平台上有最佳性能。、
存储过程编译器 PL/SQL Compiler
国内现有的数据仓库应用大都基于SQL 2003,而且大量使用存储过程来构建复杂应用。因此除了SQL编译器以外,Transwarp Inceptor还包含存储过程编译器用于对存储过程的编译和执行。
Inceptor支持Oracle PL/SQL 和 DB2 SQL PL两大主流SQL标准,包括完整的数据类型、流程控制、Package、游标、异常处理以及动态SQL执行,并且支持在存储过程中做高速统计,增删改查与分布式事务操作。因此,有了存储过程编译器的补充,Inceptor可以满足绝大部分数据应用的从关系型数据库到Inceptor平台的迁移。
除了SQL语法层面的支持,存储过程编译器包含一个完整的优化器,包含CFG Optimizer,Parallel Optimizer,和DAG Optimizer。CFG Optimizer对存储过程中的代码进行优化,完成循环展开,冗余代码消除,函数内联等主要优化。Parallel Optimizer将一些原本串行的逻辑做并行化处理,利用集群的计算能力来提高整体执行速度,对一些关键的功能如游标的性能提升非常明显。DAG Optimizer会根据生成的DAG图二次优化,生成更合理的物理执行计划,重点降低了shuffle等任务开销。
为了有效的和其他数据库兼容,Inceptor支持通过不同的方言设置来隔离不同的SQL标准之间的差异,从而避免数据计算和处理标准的二义性,因此保证数据处理的正确性。
事务管理单元 Transaction Manager
为了更好的满足数据仓库业务场景的需求,Inceptor提供完整的增删改SQL支持,允许从多数据源中加工数据。同时为了有效的保证数据处理的准确性,Inceptor提供了分布式事务的支持,保证了处理过程中数据的ACID,即原子性、一致性、隔离性和持久性。
Inceptor支持以Begin Transaction启动事务,以commit或者rollback来结束事务。事务管理单元通过两阶段封锁协议和MVCC来实现一致性和隔离性的控制,支持Serializable Snapshot Isolation隔离级别,因而可以保证并发情况下的事务一致性。
Inceptor支持SQL 2003中关于增删改查部分的语义规范,支持Insert,Update,Delete,Truncate以及Merge Into原语,支持单条或者从其他数据表以及嵌套查询中更新数据表,并且内置一致性检查功能以防止非法改动。
通过SQL编译器的优化,增删改SQL执行计划通过分布式引擎在集群中并发执行,系统整体的吞吐率能够达到关系数据库的数倍,能够满足批处理业务的高吞吐率要求。另外,通过合理的资源规划,Inceptor在做数据的增删改的同时,允许租户对数据做高速的统计分析。
分布式内存列式存储 Holodesk
了加速交互式分析的速度,Inceptor推出了基于内存或者SSD的列式存储引擎Holodesk。Holodesk将数据在内存或者SSD中做列式存储,辅以基于内存的执行引擎,可以完全避免IO带来的延时,极大的提高数据扫描速度。
除了列式存储加快统计分析速度,Holodesk支持为数据字段构建分布式索引。通过智能索引技术为查询构建最佳查询方案,Inceptor可以将SQL查询延时降低到毫秒级。
Holodesk允许用户对多字段组合构建OLAP-Cube,并将cube直接存储于内存或者SSD上,无需额外的BI工具来构建Cube,因此对于一些复杂的统计分析和报表交互查询,Holodesk能够实现秒级的反应。
除了性能优势,Holodesk在可用性方面也表现出色。Holodesk的元数据和存储都原生支持高可用性,通过一致性协议和多版本来支持异常处理和灾难恢复。在异常情况下,Holodesk能够自动恢复重建所有的表信息和数据,无需手工恢复,从而减少开发与运维的成本,保证系统的稳定性。
Inceptor重点优化了基于SSD的Holodesk性能,使得基于PCIE SSD的性能达到全内存的方案的80%以上。因此结合使用低成本的内存/闪存混合存储方案,可接近全内存存储的分析性能,保证解决方案的高性价比。
分布式执行引擎 Distributed Execution Engine
Inceptor基于Apache Spark深度开发了专用分布式计算引擎,不仅大幅提高了计算性能,而且有效的解决了Spark在稳定性方面的很多问题,确保计算引擎能够7x24小时无间断运行。此外,Inceptor引擎独立构建了分布式数据层,将计算数据从计算引擎JVM内存空间中独立出来,因此可以有效减少JVM GC对系统性能和稳定性的影响。
在SQL执行计划优化方面,Inceptor实现了基于代价的优化器和基于规则的优化器,辅以100多种优化规则,可以保证SQL应用在无需手工改动的情况下能够发挥最大的性能。对于数据倾斜等常见的数据处理难题,执行引擎也能够自动识别并加以优化,能够解决绝大部分存在数据倾斜的计算场景,杜绝数据倾斜对系统稳定性的影响。
为了更好的适应各种数据场景,Inceptor的执行引擎包含两种执行模式:低延时模式和高吞吐模式。低延时模式主要应用在数据量比较小的场景,执行引擎会生成执行延时低的物理执行计划,通过减少或避免一些高延时的任务(如IO,网络等)来保证SQL的执行时间很短,达到或者逼近关系型数据库在这些场景下的性能。高吞吐模式主要应用在大数据的场景,通过合理的分布式执行来提高超大数据量上的复杂统计分析的性能。因此,Inceptor的执行引擎可以满足从GB到PB的各种数据量上的数据业务需求。
数据源连接器 Stargate
企业数据可能会分散在多个系统中,彼此不能共享数据或者进行相关的分析,从而造成数据孤岛的现象。通过构建统一的大数据平台可以有效的解决大部分场景下的数据孤岛问题,然后仍然存在一些数据因为各种关系无法迁移统一平台上的现象。为了解决此类问题,Inceptor推出了数据源连接器Stargate。
Stargate是连接执行引擎和各种数据源的连接器,可以将多种不同数据源的数据接入引擎做实时的统计分析,而无需事先将数据导入HDFS,从而更加方便用户的业务构建多样化需求。
在语法层面,Inceptor兼容Oracle DB-Link规范,通过创建database link来预先建立和其他数据源的连接池,然后就可以在SQL中通过 table_name@database link的方式在Inceptor中实时访问该数据源的数据,无需其他操作。在执行计划开始后,Stargate通过预先建立的连接从其他数据源中抽取需要的数据,输入进入执行引擎层参与SQL计算。在计算完成后,释放相关的数据库连接以及对应的资源。
目前Stargate支持关系数据库包括Oracle,DB2,Mysql,Teradata以及PostgreSQL。此外,Stargate目前可以接入Holodesk,HDFS,Hyperbase等平台内数据源,未来将支持Elastic Search和Redis作为数据源。
多租户管理组件 Guardian
Guardian提供完整的多租户管理功能,包括租户资源管理,租户权限管理以及安全控制等模块,可以方便企业在统一的大数据平台上的多租户的管理和分配。
Guardian允许对多租户进行CPU和内存资源的配置和管理,不同的租户使用不同的CPU和内存资源池,因而不会互相干扰。此外可以给不同的用户设定不同的优先级来实现服务质量控制(QoS)。
Guardian支持通过SQL对用户磁盘空间的配置和管理,包括对数据空间和临时空间的配额,更改和管理,以方便平台对存储资源的合理分配,管控和计费。
Guardian支持使用LDAP协议做用户访问控制,支持Kerberos协议用作底层访问控制,从而保证数据的安全性和隔离性。Guardian支持一整套基于SQL的数据库/表的权限控制,管理员可以设置用户对表的查询,修改,删除等权限,并包含一整套的角色设定,可以通过角色组的设置来便捷的实现用户权限控制。
此外,Guardian支持 Row Level Security,对表的数据进行精确的行级权限控制。在多租户的场景下,可以保证不同租户只能看到表中自身有权限的数据,而不会看到属于其他租户的数据,从而有精确的数据隔离。
中间件管理单元 Connector
Inceptor完整的支持JDBC4.0和ODBC3.5标准,因此能够支持Hibernate/Spring等中间件,完全兼容Tableau/QlikView/Cognos等报表工具,可以和企业当前的数据应用层完整对接。
此外,Inceptor也支持与其他数据同步工具的对接,已经完成了和IBM CDC的相互认证与整合,并且能够支持Oracle Golden Date,SAP Data Service等工具。因此,企业用户可以实时的将交易数据同步到Inceptor内做交互式统计分析业务。
基于Inceptor的大数据平台建设方案
数据仓库建设方案
在当前移动互联的浪潮下,数据呈现爆炸式增长,企业内部和外部的数据产生的速度超过以往任何时刻。以往基于传统关系数据库或者MPP构建的数据仓库往往处理能力不够,并且可扩展性不强,无法满足企业对大规模数据的处理要求。
基于Transwarp Inceptor构建的大数据平台,处理能力更强,并发性更高,更易于扩展,能够极大的提速数据仓库的批量处理能力。前端通过Sqoop,flume等ETL工具整合现有企业内部数据,并可以通过Kafka等工具实时接入外部数据,存Inceptor并且完成对海量的数据进行存储、清洗、加工、建模等,把先前无法利用的数据充分利用,提升对数据的认识。
此外,通过在大数据平台中部署实时决策平台(Stream)和数据探索平台(Discover),辅以Inceptor的强大处理能力,企业可以构建更多开创型应用,如准实时系统日志分析应用、客户实时风险监测、实时的用户体验优化与客户行为分析、客户标签化画像应用,加快业务数据分析团队自主的数据探索和业务建模过程。
数据集市建设方案
交互式分析和探索是数据集市市场的重点业务,但是传统关系型数据库或者基于Map Reduce的计算框架对临时的实时性要求高的交互式分析无法快速响应,查询效率低,无法进行有效数据探索。
Inceptor提供基于内存或者SSD的列式存储Holodesk,并且提供基于内存的超强统计分析能力,数据通过ETL工具导入Inceptor Holodesk中,在内存或者SSD上建立分布式索引和OLAP-Cube。
报表工具通过JDBC/ODBC接口来访问Cube,无需在BI工具中额外构建Cube,极大的降低了交互式分析的延时。此外,通过集成R语言以及并行化大量的数据挖掘算法,用户可以实时的从Holodesk中数据抽取数据进行数据挖掘和探索。
准实时数据分析平台方案
一些企业将交易型业务和分析型业务分开部署,但是需要分析系统能够对交易数据做实时统计分析。传统的MPP或者Hadoop无法满足类似场景的需求,而Inceptor可以帮助用户打造相关的解决方案。在上层平台通过IBM CDC或者Oracle Golden Gate等实时同步工具连接关系数据库,这些实时同步工具通过分析数据更改日志来生成输入数据,并标记原始事务的边界。Inceptor JDBC/ODBC驱动能够识别相关的事务和数据,并生成Inceptor的事务和增删改操作,然后将数据写入Inceptor。最后报表工具就可以实时的对相关的数据做统计分析。
基准测试TPC-DS认证
TPC-DS是TPC组织制定的用于评测决策支持系统(或数据仓库)的标准SQL测试集。这个测试集包含对大数据集的统计/报表生成/联机查询/数据挖掘等复杂应用,测试用的数据也是充分设计,尽量模拟真实数据的特点。由于和企业数据仓库类应用非常类似,TPC-DS成为客观衡量多个不同数据仓库技术的最佳测试集。
TPC-DS在Transwarp Inceptor 上能够完整运行,并通过第三方专业机构上海软件测评中心的专业认证,表明Inceptor能够非常有效的满足数据仓库业务的需求。
结语
Transwarp Inceptor是星环科技推出的大数据分析平台软件,支持99%的SQL2003标准,是Hadoop业界唯一一个同时支持Oracle PL/SQL和DB2 SQL PL扩展的平台,也是唯一一个支持ACID分布式事务的大数据平台。同时,Inceptor也是Hadoop业界首个支持SSD和内存存储的计算引擎,可比基于硬盘的方案快一个数量级。Transwarp Inceptor定位于数据仓库,数据集市和准实时数据分析市场,可以替代基于关系数据库或者MPP的解决方案,增强企业用户的数据分析能力,帮助企业挖掘数据价值,构建数据时代的关键应用。
网友评论