全球首個支持事務一致性, 兼容DB2和Oracle的高速SQL on Hadoop...

2020-11-23 CIO時代網

  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的解決方案,增強企業用戶的數據分析能力,幫助企業挖掘數據價值,構建數據時代的關鍵應用。

第三十屆CIO班招生 法國布雷斯特商學院碩士班招生 北達軟EXIN網絡空間與IT安全基礎認證培訓 北達軟EXIN DevOps Professional認證培訓

責編:pingxiaoli

相關焦點

  • 零基礎學Oracle之4:理解oracle的啟動與關閉
    資料庫的啟動Oracle資料庫的啟動可以分為四個階段startup順序1) shutdown:沒有啟動,oracle的表現就是一堆存在磁碟的文件,軟體是軟體,數據是數據。但在這個階段不會確認數據文件和重做日誌文件的存在。4) open打開資料庫文件和重做日誌文件。這時資料庫就可以被正常訪問。
  • sqltoy-orm-4.16.11 發版,部分功能優化
    的十四個關鍵特點:1、最簡最直觀的sql編寫方式(不僅僅是查詢語句),採用條件參數前置處理規整法,讓sql語句部分跟客戶端保持高度一致2、sql中支持注釋(規避了對hint特性的影響,知道hint嗎?搜oracle hint),和動態更新加載,便於開發和後期維護整個過程的管理3、支持緩存翻譯和反向緩存條件檢索(通過緩存將名稱匹配成精確的key),實現sql簡化和性能大幅提升4、支持快速分頁和分頁優化功能,實現分頁最高級別的優化,同時還考慮到了cte多個with as情況下的優化支持5、支持並行查詢6、根本杜絕sql注入問題,以後不需要討論這個話題7、支持行列轉換
  • 零基礎學Oracle之6:Oracle數字字典和動態視圖的理解
    1、 本部分介紹二個內容數字字典和動態視圖。這二個都是一些表,數字字典是一些相對靜態的信息,動態視圖是一些相對動態表。2、數字字典(DD)1)在執行數據定義語言(definition language,DDL)語句或有些數據操縱語言 (data manipulation language ,DML) 語句時會更新數據字典2)有幾個特點存儲在system表空間它是由sys擁有由oracle server自動維護。
  • hadoop基礎知識介紹_hadoop是什麼語言開發的_hadoop能做什麼
    一、hadoop是什麼? (1)Hadoop是一個開發和運行處理大規模數據的軟體平臺,可編寫和運行分布式應用處理大規模數據,是Appach的一個用java語言實現開源軟體框架,實現在大量計算機組成的集群中對海量數據進行分布式計算(或專為離線和大規模數據分析而設計的)並不適合那種對幾個記錄隨機讀寫的在線事務處理模式。
  • hadoop開發應用實例_hadoop應用開發技術實例詳解 - CSDN
    hadoop是什麼?hadoop能有哪些應用?hadoop和大數據是什麼關係?下面我們將圍繞這幾個問題詳細闡述。hadoop是什麼?Hadoop是一個由Apache基金會所開發的分布式系統基礎架構。用戶可以在不了解分布式底層細節的情況下,開發分布式程序。充分利用集群的威力進行高速運算和存儲。
  • 大數據時代可能影響你的7個商業趨勢 | 網際網路數據資訊網-199IT |...
    但是對於sql語言支持的深度與廣度各不相同,然而使用sql專業分析人員可以使用這些優點從而很好的通過sql語言來操作大數據。目前案例包括:Hadapt,Impala,TeradataAsterandEMCGreenplumsPivotalHD.
  • DB2常用函數與Oracle比較
    midnight_seconds(arg):午夜和arg之間的秒數。    Monthname(arg):返回arg的月份名。    Dayname(arg):返回arg的星期。    Concat (arg1,arg2):連接兩個字符串arg1和arg2。    insert(arg1,pos,size,arg2):返回一個,將arg1從pos處刪除size個字符,    將arg2插入該位置。    left(arg,length):返回arg最左邊的length個字符串。
  • 春眠不覺曉,SQL 知多少?|原力計劃
    ,其中 22 個與 JSON 功能相關,10 多個與多態表函數相關。兼容性標識,可以定義與其他 SQL 標準的前向以及後向兼容。包括授權(GRANT)和撤銷(REVOKE)。事務控制語言 TCL,用於管理資料庫事務。包括 BEGIN 、COMMIT、ROLLBACK 等。除了這些聲明式的語句之外,SQL 也定義了過程語言的擴展(SQL/PSM),也就是存儲過程。
  • Apache Hadoop 3.0.0 GA 正式發布,要求 Java 8
    這個版本是 Apache Hadoop 3.0.0 的第一個穩定版本,有很多重大的改進,比如支持 EC、支持多於2個的NameNodes、Intra-datanode均衡器等等。下面是關於 Apache Hadoop 3.0.0 GA 的正式介紹。
  • GBase 8s兼容Oracle漫談——數據類型篇
    支持LONG 列只是為了保證向後兼容性。CLOB類型比LONG類型的限制要少得多。GBase 8s除了LONG和VARCHAR2類型外,對Oracle字符類型全部可以兼容,LONG類型可用CLOB替代,而VARCHAR2建議用VARCHAR替代, NVARCHAR2建議用NVARCHAR替代。
  • 陸天煒: GoldenDB事務一致性處理機制優化歷程
    針對金融行業關注的資料庫事務一致性問題,中興通訊 GoldenDB 分布式資料庫架構師陸天煒,在DTCC2019資料庫大會上做了乾貨分享,重點介紹了 GoldenDB 的解決方案和對應的優化實踐。  第一,實時一致的分布式事務控制;在做分布式事務控制的時候,能夠做到實時一致,並且事務處理不影響業務原來的業務邏輯,業務原來的代碼遷到GoldenDB上的時候是不需要做邏輯變更。他們原來的代碼是RPG的代碼,直接通過工具改成Java代碼,業務開發的工作量非常少。  第二,支持同城異地容災和一致的備份恢復,符合異地監管的一致性。
  • SQL Server2008引擎組件和CPU性能監控
    表格格式數據流端點(Tabular Data Stream,簡稱TDS)  TDS是一種微軟的與資料庫進行交互的私有協議,SQL Server在安裝時為其支持的四種協議各創建一個端點,如果協議被激活,那麼所有用戶均可以使用這個協議。此外還有一個專門為專用管理員連接(DAC)而設置的端點。
  • 踩坑oracle dbms_job簡單使用
    用sql創建時必須顯示指定,系統會自己算(Pass:此處指oracle資料庫的系統時間,暗中觀察比實際時間要稍慢,引起原因多種多樣,一時說不清,所以不要大驚小怪即可= =)也就是sysdate,用job window創建時可以不指定,同樣都是默認用創建job的時間。重頭戲之時間設置。
  • MyBatis Dynamic SQL 1.0.0,生成動態 SQL 語句的框架
    可把它看作是一個類型安全的 SQL 模板庫,另外還支持 MyBatis3 和 Spring JDBC 模板。該庫將生成格式化為由 MyBatis 或 Spring 使用的完整 DELETE,INSERT,SELECT 和 UPDATE 語句。最常見的用例是生成語句和一組匹配的參數,這些參數可以被 MyBatis 直接使用。
  • SQL語句性能調整之ORACLE的執行計劃
    這個語句的優點就是它的缺點,這樣在用該方法查看執行時間較長的sql語句時,需要等待該語句執行成功後,才返回執行計劃,使優化的周期大大增長。  如果不想執行語句而只是想得到執行計劃可以採用:  Sql> set autotrace traceonly  這樣,就只會列出執行計劃,而不會真正的執行語句,大大減少了優化時間。
  • SQL on Hadoop 和 SQL off Hadoop 介紹
    從本質上講,Hadoop是一種存儲和處理大量數據的廉價又可靠的方式,吸引了更多的客戶。  隨著時間的推移,Data Gravity的影響增加了對SQL on Hadoop的需求。最初的目標是找到使用SQL來支持Hadoop數據的方法,但現在越來越多的要求是用像Tableau這樣的工具,將業務用戶與數據連接起來。
  • 大數據分析工程師面試集錦3-SQL/SparkSql/HiveQL
    幾乎所有重要的DBMS都支持SQL,所以學習此語言使你幾乎能與所有資料庫打交道。(2)SQL簡單易學。它的語句全都是由有很強描述性的英語單詞組成,而且這些單詞的數目不多。(3)SQL雖然看上去很簡單,但實際上是一種強有力的語言,靈活使用其語言元素,可以進行非常複雜和高級的資料庫操作。
  • 沒錯,純SQL查詢語句可以實現神經網絡
    _0 AS b2_0,b2_1 — (2.0)*db2_1 AS b2_1這包含了正向和反向傳播的一整個迭代過程。以上查詢語句將返回更新後的權重和偏置項。部分結果如下所示:為了進行多次訓練迭代,我們將反覆執行上述過程。用一個簡單 Python 函數足以搞定,代碼連結如下:https://github.com/harisankarh/nn-sql-bq/blob/master/training.py。因為迭代次數太多,查詢語句嵌套嚴重。