Transwarp Inceptor是星環(huán)科技推出的用于數(shù)據(jù)倉庫和交互式分析的大數(shù)據(jù)平臺軟件,基于Hadoop和Spark技術平臺打造,加上8大創(chuàng)新的功能組件,有效的解決了企業(yè)級大數(shù)據(jù)數(shù)據(jù)處理和分析的各種技術難題,幫助企業(yè)快速的構建和推廣數(shù)據(jù)業(yè)務。
Transwarp Inceptor提供完整的SQL支持,支持主流的SQL模塊化擴展,兼容通用開發(fā)框架和工具,支持事務特性保證數(shù)據(jù)的準確性,允許多租戶的隔離與管理,能夠利用內(nèi)存或者SSD來加速數(shù)據(jù)的讀取,支持與關系型數(shù)據(jù)庫實時對接并做統(tǒng)計分析,輔以高性能的SQL執(zhí)行引擎,從而能夠給企業(yè)提供高性價比和高度可擴展的解決方案。
SQL編譯器 SQL 2003 Compiler
企業(yè)級數(shù)據(jù)倉庫、數(shù)據(jù)集市等應用大多基于SQL來開發(fā),而Hadoop業(yè)界的產(chǎn)品大部分對SQL的兼容程序比較差,或者不支持SQL的模塊化擴展,因而應用遷移的成本非常高,甚至是不具備可行性。
為了降低應用遷移成本,Transwarp Inceptor開發(fā)了完整的SQL編譯器,支持ANSI SQL 92和SQL 99標準, 并且支持ANSI SQL 2003 OLAP核心擴展,可以滿足絕大部分現(xiàn)有的數(shù)據(jù)倉庫業(yè)務對SQL的要求,方便應用平滑遷移。
除了更好的SQL語義分析層以外,Inceptor包含強大的優(yōu)化器保證SQL在引擎上有最佳的性能。Inceptor包含3級優(yōu)化器:首先是基于規(guī)則的優(yōu)化器,應用靜態(tài)優(yōu)化規(guī)則并生成一個邏輯執(zhí)行計劃,其次是基于成本的優(yōu)化器,通過衡量多個不同執(zhí)行計劃的CPU,IO和網(wǎng)絡成本,來選擇一個更合理的計劃并生成物理執(zhí)行計劃;最后是代碼生成器,對一些比較核心的執(zhí)行邏輯生成更高效的執(zhí)行代碼或者Java Byte Code,從而保證SQL業(yè)務在分布式平臺上有最佳性能。、
存儲過程編譯器 PL/SQL Compiler
國內(nèi)現(xiàn)有的數(shù)據(jù)倉庫應用大都基于SQL 2003,而且大量使用存儲過程來構建復雜應用。因此除了SQL編譯器以外,Transwarp Inceptor還包含存儲過程編譯器用于對存儲過程的編譯和執(zhí)行。
Inceptor支持Oracle PL/SQL 和 DB2 SQL PL兩大主流SQL標準,包括完整的數(shù)據(jù)類型、流程控制、Package、游標、異常處理以及動態(tài)SQL執(zhí)行,并且支持在存儲過程中做高速統(tǒng)計,增刪改查與分布式事務操作。因此,有了存儲過程編譯器的補充,Inceptor可以滿足絕大部分數(shù)據(jù)應用的從關系型數(shù)據(jù)庫到Inceptor平臺的遷移。
除了SQL語法層面的支持,存儲過程編譯器包含一個完整的優(yōu)化器,包含CFG Optimizer,Parallel Optimizer,和DAG Optimizer。CFG Optimizer對存儲過程中的代碼進行優(yōu)化,完成循環(huán)展開,冗余代碼消除,函數(shù)內(nèi)聯(lián)等主要優(yōu)化。Parallel Optimizer將一些原本串行的邏輯做并行化處理,利用集群的計算能力來提高整體執(zhí)行速度,對一些關鍵的功能如游標的性能提升非常明顯。DAG Optimizer會根據(jù)生成的DAG圖二次優(yōu)化,生成更合理的物理執(zhí)行計劃,重點降低了shuffle等任務開銷。
為了有效的和其他數(shù)據(jù)庫兼容,Inceptor支持通過不同的方言設置來隔離不同的SQL標準之間的差異,從而避免數(shù)據(jù)計算和處理標準的二義性,因此保證數(shù)據(jù)處理的正確性。
事務管理單元 Transaction Manager
為了更好的滿足數(shù)據(jù)倉庫業(yè)務場景的需求,Inceptor提供完整的增刪改SQL支持,允許從多數(shù)據(jù)源中加工數(shù)據(jù)。同時為了有效的保證數(shù)據(jù)處理的準確性,Inceptor提供了分布式事務的支持,保證了處理過程中數(shù)據(jù)的ACID,即原子性、一致性、隔離性和持久性。
Inceptor支持以Begin Transaction啟動事務,以commit或者rollback來結束事務。事務管理單元通過兩階段封鎖協(xié)議和MVCC來實現(xiàn)一致性和隔離性的控制,支持Serializable Snapshot Isolation隔離級別,因而可以保證并發(fā)情況下的事務一致性。
Inceptor支持SQL 2003中關于增刪改查部分的語義規(guī)范,支持Insert,Update,Delete,Truncate以及Merge Into原語,支持單條或者從其他數(shù)據(jù)表以及嵌套查詢中更新數(shù)據(jù)表,并且內(nèi)置一致性檢查功能以防止非法改動。
通過SQL編譯器的優(yōu)化,增刪改SQL執(zhí)行計劃通過分布式引擎在集群中并發(fā)執(zhí)行,系統(tǒng)整體的吞吐率能夠達到關系數(shù)據(jù)庫的數(shù)倍,能夠滿足批處理業(yè)務的高吞吐率要求。另外,通過合理的資源規(guī)劃,Inceptor在做數(shù)據(jù)的增刪改的同時,允許租戶對數(shù)據(jù)做高速的統(tǒng)計分析。
分布式內(nèi)存列式存儲 Holodesk
了加速交互式分析的速度,Inceptor推出了基于內(nèi)存或者SSD的列式存儲引擎Holodesk。Holodesk將數(shù)據(jù)在內(nèi)存或者SSD中做列式存儲,輔以基于內(nèi)存的執(zhí)行引擎,可以完全避免IO帶來的延時,極大的提高數(shù)據(jù)掃描速度。
除了列式存儲加快統(tǒng)計分析速度,Holodesk支持為數(shù)據(jù)字段構建分布式索引。通過智能索引技術為查詢構建最佳查詢方案,Inceptor可以將SQL查詢延時降低到毫秒級。
Holodesk允許用戶對多字段組合構建OLAP-Cube,并將cube直接存儲于內(nèi)存或者SSD上,無需額外的BI工具來構建Cube,因此對于一些復雜的統(tǒng)計分析和報表交互查詢,Holodesk能夠?qū)崿F(xiàn)秒級的反應。
除了性能優(yōu)勢,Holodesk在可用性方面也表現(xiàn)出色。Holodesk的元數(shù)據(jù)和存儲都原生支持高可用性,通過一致性協(xié)議和多版本來支持異常處理和災難恢復。在異常情況下,Holodesk能夠自動恢復重建所有的表信息和數(shù)據(jù),無需手工恢復,從而減少開發(fā)與運維的成本,保證系統(tǒng)的穩(wěn)定性。
Inceptor重點優(yōu)化了基于SSD的Holodesk性能,使得基于PCIE SSD的性能達到全內(nèi)存的方案的80%以上。因此結合使用低成本的內(nèi)存/閃存混合存儲方案,可接近全內(nèi)存存儲的分析性能,保證解決方案的高性價比。
分布式執(zhí)行引擎 Distributed Execution Engine
Inceptor基于Apache Spark深度開發(fā)了專用分布式計算引擎,不僅大幅提高了計算性能,而且有效的解決了Spark在穩(wěn)定性方面的很多問題,確保計算引擎能夠7x24小時無間斷運行。此外,Inceptor引擎獨立構建了分布式數(shù)據(jù)層,將計算數(shù)據(jù)從計算引擎JVM內(nèi)存空間中獨立出來,因此可以有效減少JVM GC對系統(tǒng)性能和穩(wěn)定性的影響。
在SQL執(zhí)行計劃優(yōu)化方面,Inceptor實現(xiàn)了基于代價的優(yōu)化器和基于規(guī)則的優(yōu)化器,輔以100多種優(yōu)化規(guī)則,可以保證SQL應用在無需手工改動的情況下能夠發(fā)揮最大的性能。對于數(shù)據(jù)傾斜等常見的數(shù)據(jù)處理難題,執(zhí)行引擎也能夠自動識別并加以優(yōu)化,能夠解決絕大部分存在數(shù)據(jù)傾斜的計算場景,杜絕數(shù)據(jù)傾斜對系統(tǒng)穩(wěn)定性的影響。
為了更好的適應各種數(shù)據(jù)場景,Inceptor的執(zhí)行引擎包含兩種執(zhí)行模式:低延時模式和高吞吐模式。低延時模式主要應用在數(shù)據(jù)量比較小的場景,執(zhí)行引擎會生成執(zhí)行延時低的物理執(zhí)行計劃,通過減少或避免一些高延時的任務(如IO,網(wǎng)絡等)來保證SQL的執(zhí)行時間很短,達到或者逼近關系型數(shù)據(jù)庫在這些場景下的性能。高吞吐模式主要應用在大數(shù)據(jù)的場景,通過合理的分布式執(zhí)行來提高超大數(shù)據(jù)量上的復雜統(tǒng)計分析的性能。因此,Inceptor的執(zhí)行引擎可以滿足從GB到PB的各種數(shù)據(jù)量上的數(shù)據(jù)業(yè)務需求。
數(shù)據(jù)源連接器 Stargate
企業(yè)數(shù)據(jù)可能會分散在多個系統(tǒng)中,彼此不能共享數(shù)據(jù)或者進行相關的分析,從而造成數(shù)據(jù)孤島的現(xiàn)象。通過構建統(tǒng)一的大數(shù)據(jù)平臺可以有效的解決大部分場景下的數(shù)據(jù)孤島問題,然后仍然存在一些數(shù)據(jù)因為各種關系無法遷移統(tǒng)一平臺上的現(xiàn)象。為了解決此類問題,Inceptor推出了數(shù)據(jù)源連接器Stargate。
Stargate是連接執(zhí)行引擎和各種數(shù)據(jù)源的連接器,可以將多種不同數(shù)據(jù)源的數(shù)據(jù)接入引擎做實時的統(tǒng)計分析,而無需事先將數(shù)據(jù)導入HDFS,從而更加方便用戶的業(yè)務構建多樣化需求。
在語法層面,Inceptor兼容Oracle DB-Link規(guī)范,通過創(chuàng)建database link來預先建立和其他數(shù)據(jù)源的連接池,然后就可以在SQL中通過 table_name@database link的方式在Inceptor中實時訪問該數(shù)據(jù)源的數(shù)據(jù),無需其他操作。在執(zhí)行計劃開始后,Stargate通過預先建立的連接從其他數(shù)據(jù)源中抽取需要的數(shù)據(jù),輸入進入執(zhí)行引擎層參與SQL計算。在計算完成后,釋放相關的數(shù)據(jù)庫連接以及對應的資源。
目前Stargate支持關系數(shù)據(jù)庫包括Oracle,DB2,Mysql,Teradata以及PostgreSQL。此外,Stargate目前可以接入Holodesk,HDFS,Hyperbase等平臺內(nèi)數(shù)據(jù)源,未來將支持Elastic Search和Redis作為數(shù)據(jù)源。
多租戶管理組件 Guardian
Guardian提供完整的多租戶管理功能,包括租戶資源管理,租戶權限管理以及安全控制等模塊,可以方便企業(yè)在統(tǒng)一的大數(shù)據(jù)平臺上的多租戶的管理和分配。
Guardian允許對多租戶進行CPU和內(nèi)存資源的配置和管理,不同的租戶使用不同的CPU和內(nèi)存資源池,因而不會互相干擾。此外可以給不同的用戶設定不同的優(yōu)先級來實現(xiàn)服務質(zhì)量控制(QoS)。
Guardian支持通過SQL對用戶磁盤空間的配置和管理,包括對數(shù)據(jù)空間和臨時空間的配額,更改和管理,以方便平臺對存儲資源的合理分配,管控和計費。
Guardian支持使用LDAP協(xié)議做用戶訪問控制,支持Kerberos協(xié)議用作底層訪問控制,從而保證數(shù)據(jù)的安全性和隔離性。Guardian支持一整套基于SQL的數(shù)據(jù)庫/表的權限控制,管理員可以設置用戶對表的查詢,修改,刪除等權限,并包含一整套的角色設定,可以通過角色組的設置來便捷的實現(xiàn)用戶權限控制。
此外,Guardian支持 Row Level Security,對表的數(shù)據(jù)進行精確的行級權限控制。在多租戶的場景下,可以保證不同租戶只能看到表中自身有權限的數(shù)據(jù),而不會看到屬于其他租戶的數(shù)據(jù),從而有精確的數(shù)據(jù)隔離。
中間件管理單元 Connector
Inceptor完整的支持JDBC4.0和ODBC3.5標準,因此能夠支持Hibernate/Spring等中間件,完全兼容Tableau/QlikView/Cognos等報表工具,可以和企業(yè)當前的數(shù)據(jù)應用層完整對接。
此外,Inceptor也支持與其他數(shù)據(jù)同步工具的對接,已經(jīng)完成了和IBM CDC的相互認證與整合,并且能夠支持Oracle Golden Date,SAP Data Service等工具。因此,企業(yè)用戶可以實時的將交易數(shù)據(jù)同步到Inceptor內(nèi)做交互式統(tǒng)計分析業(yè)務。
基于Inceptor的大數(shù)據(jù)平臺建設方案
數(shù)據(jù)倉庫建設方案
在當前移動互聯(lián)的浪潮下,數(shù)據(jù)呈現(xiàn)爆炸式增長,企業(yè)內(nèi)部和外部的數(shù)據(jù)產(chǎn)生的速度超過以往任何時刻。以往基于傳統(tǒng)關系數(shù)據(jù)庫或者MPP構建的數(shù)據(jù)倉庫往往處理能力不夠,并且可擴展性不強,無法滿足企業(yè)對大規(guī)模數(shù)據(jù)的處理要求。
基于Transwarp Inceptor構建的大數(shù)據(jù)平臺,處理能力更強,并發(fā)性更高,更易于擴展,能夠極大的提速數(shù)據(jù)倉庫的批量處理能力。前端通過Sqoop,flume等ETL工具整合現(xiàn)有企業(yè)內(nèi)部數(shù)據(jù),并可以通過Kafka等工具實時接入外部數(shù)據(jù),存Inceptor并且完成對海量的數(shù)據(jù)進行存儲、清洗、加工、建模等,把先前無法利用的數(shù)據(jù)充分利用,提升對數(shù)據(jù)的認識。
此外,通過在大數(shù)據(jù)平臺中部署實時決策平臺(Stream)和數(shù)據(jù)探索平臺(Discover),輔以Inceptor的強大處理能力,企業(yè)可以構建更多開創(chuàng)型應用,如準實時系統(tǒng)日志分析應用、客戶實時風險監(jiān)測、實時的用戶體驗優(yōu)化與客戶行為分析、客戶標簽化畫像應用,加快業(yè)務數(shù)據(jù)分析團隊自主的數(shù)據(jù)探索和業(yè)務建模過程。
數(shù)據(jù)集市建設方案
交互式分析和探索是數(shù)據(jù)集市市場的重點業(yè)務,但是傳統(tǒng)關系型數(shù)據(jù)庫或者基于Map Reduce的計算框架對臨時的實時性要求高的交互式分析無法快速響應,查詢效率低,無法進行有效數(shù)據(jù)探索。
Inceptor提供基于內(nèi)存或者SSD的列式存儲Holodesk,并且提供基于內(nèi)存的超強統(tǒng)計分析能力,數(shù)據(jù)通過ETL工具導入Inceptor Holodesk中,在內(nèi)存或者SSD上建立分布式索引和OLAP-Cube。
報表工具通過JDBC/ODBC接口來訪問Cube,無需在BI工具中額外構建Cube,極大的降低了交互式分析的延時。此外,通過集成R語言以及并行化大量的數(shù)據(jù)挖掘算法,用戶可以實時的從Holodesk中數(shù)據(jù)抽取數(shù)據(jù)進行數(shù)據(jù)挖掘和探索。
準實時數(shù)據(jù)分析平臺方案
一些企業(yè)將交易型業(yè)務和分析型業(yè)務分開部署,但是需要分析系統(tǒng)能夠?qū)灰讛?shù)據(jù)做實時統(tǒng)計分析。傳統(tǒng)的MPP或者Hadoop無法滿足類似場景的需求,而Inceptor可以幫助用戶打造相關的解決方案。在上層平臺通過IBM CDC或者Oracle Golden Gate等實時同步工具連接關系數(shù)據(jù)庫,這些實時同步工具通過分析數(shù)據(jù)更改日志來生成輸入數(shù)據(jù),并標記原始事務的邊界。Inceptor JDBC/ODBC驅(qū)動能夠識別相關的事務和數(shù)據(jù),并生成Inceptor的事務和增刪改操作,然后將數(shù)據(jù)寫入Inceptor。最后報表工具就可以實時的對相關的數(shù)據(jù)做統(tǒng)計分析。
基準測試TPC-DS認證
TPC-DS是TPC組織制定的用于評測決策支持系統(tǒng)(或數(shù)據(jù)倉庫)的標準SQL測試集。這個測試集包含對大數(shù)據(jù)集的統(tǒng)計/報表生成/聯(lián)機查詢/數(shù)據(jù)挖掘等復雜應用,測試用的數(shù)據(jù)也是充分設計,盡量模擬真實數(shù)據(jù)的特點。由于和企業(yè)數(shù)據(jù)倉庫類應用非常類似,TPC-DS成為客觀衡量多個不同數(shù)據(jù)倉庫技術的最佳測試集。
TPC-DS在Transwarp Inceptor 上能夠完整運行,并通過第三方專業(yè)機構上海軟件測評中心的專業(yè)認證,表明Inceptor能夠非常有效的滿足數(shù)據(jù)倉庫業(yè)務的需求。
結語
Transwarp Inceptor是星環(huán)科技推出的大數(shù)據(jù)分析平臺軟件,支持99%的SQL2003標準,是Hadoop業(yè)界唯一一個同時支持Oracle PL/SQL和DB2 SQL PL擴展的平臺,也是唯一一個支持ACID分布式事務的大數(shù)據(jù)平臺。同時,Inceptor也是Hadoop業(yè)界首個支持SSD和內(nèi)存存儲的計算引擎,可比基于硬盤的方案快一個數(shù)量級。Transwarp Inceptor定位于數(shù)據(jù)倉庫,數(shù)據(jù)集市和準實時數(shù)據(jù)分析市場,可以替代基于關系數(shù)據(jù)庫或者MPP的解決方案,增強企業(yè)用戶的數(shù)據(jù)分析能力,幫助企業(yè)挖掘數(shù)據(jù)價值,構建數(shù)據(jù)時代的關鍵應用。