大資料平台OLTP應用場景案例分析
前言
Hadoop大資料平台在當今的IT業界是非常熱門的話題, 如果你關注它們的應用場景,大多數情況是做OLAP智能分析以及資料挖掘。鮮有類似于傳統關系型資料庫擅長的OLTP事務處理場景。今天和大家分享一個在大資料平台上OLTP應用場景案例。
背景
某國内車聯網企業A,主要提供給各類大巴,貨車公司安裝各類傳感器服務,并通過傳感器收集日常車輛軌迹及各種告警違規資料。基于這些資料提供給客戶實時的軌迹和告警查詢,以及曆史統計資訊的查詢。
業務需求
車輛每隔10秒中上傳一條資料,同時線上的車輛數量在7萬輛,要求使用者能做近實時的車輛軌迹資訊查詢,資料加載要達到每秒8000條。為獲得最佳的使用者體驗,查詢響應時間要小于1秒,使用者的并發查詢數要大于100。
業務平台每天産生超過200萬條告警記錄,查詢跨度為15天,響應時間要求在1秒以内。
業務平台每天産生5億多條違規記錄,每天需要對這些記錄進行讀取和統計并存儲到統計表中。由于資料量較大,統計SQL複雜,該操作可在夜間閑時進行。資料讀取,統計以及存儲過程不能超過8小時。
工作負載特性分析
通過上面章節的分析,這是典型的混合負載。資料庫既要面對汽車傳感器頻繁的資料加載請求迅速完成資料插入(INSERT),同時也要滿足前台使用者對此類資料的近實時的查詢需求(SELECT). 這就意味着要對資料庫進行頻繁的讀和寫操作。同時要對每天生成的大規模資料進行讀取和分析以及統計。
解決方案
針對前章所述的的工作負載特性,并對比市場上不同的産品方案,最終采取了Trafodion+Vertica的混合解決方案。
Trafodion是基于Hadoop/Hbase的資料庫,它擅長于處理OLTP負載,對于高壓力的資料插入有很好的性能表現。同時能夠提供秒級的查詢響應時間。在累計一天的資料後,在同一表内進行資料的ETL處理并生成違規日統計資料。
Vertica是基于列存儲的資料庫方案,對于複雜的查詢讀操作有很快速的響應速度。通過JDBC可以把Trafodion中的日違規統計資料直接插入到Vertica日違規統計表中。基于日違規統計表,通過資料統計處理生成月違規統計以及違規統計總表供使用者查詢。
用戶端可通過調用标準JDBC/ODBC接口進行WEB應用程式的開發,以及BI和資料挖掘的應用開發。方案如下圖所示
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2QvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2Lc1TPnJGcwdUYwYlMjZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39zNyAjM1kDM2ETOwQDM1EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
測試結果
測試環境為6節點Trafodion加上3節點Vertica X86架構的叢集。
測試背景資料為:車輛軌迹表格為133億條記錄,告警日統計表格3億6千萬條,違規日統計為2750萬條記錄,違規月統計為671萬條。
Trafodion加載以及查詢時間
由于Trafodion是基于Hadoop/Hbase的大資料平台,是以它也具備性能的可擴充性。是以也做了一系列的性能可擴充性測試(4,6,8個節點叢集,以及不同的并發使用者數括包括200,300,400,500以及600并發),結果如下表。
從以上結果可以看出在四節點叢集配置下,可滿足客戶業務需求。考慮到未來車輛數量增多,可通過增加節點來提高加載速度以及縮短查詢響應時間。
Vertica 查詢執行時間
總結
通過Trafodion加Vertica的混合方案,可以很好的解決車聯網行業的業務需求。雖然傳統的關系型資料庫(比如Oracle)也能滿足業務需求。但由于Trafodion是基于Hadoop技術,它是能運作在成本更低廉的x86硬體之上的分布式系統,具有高可用性以及高擴充性。随着将來業務的擴充能更靈活地增節點,來提高系統的容量和性能。另外值得一提的是Trafodion是HP發起的一個開源項目,是以沒有額外的軟體license成本,并具備可自主開發的可能性,這能滿足國内目前的技術趨勢:開源技術,自主可控。
備注:以下是Trafodion的簡單介紹。如果讀者對Trafodion感興趣,可通路開源社群: www.trafodion.org
Trafodion 簡介
- 完整性: 支援完整的ANSI SQL集
可以利用已有的SQL技術儲備來提高開發者的生産力
- 保護性: 支援分布式ACID事務操作
確定了跨行,跨表以及多個SQL語句操作資料的一緻性
- 高效性: 對低延時要求的讀寫事務進行優化
目标是支援實時事務處理應用
- 靈活性:支援靈活的schema以及多種資料結構
無縫整合Trafodion,原生HBase和Hive表格
- 互操作性: 通過标準ODBC/JDBC通路資料
能夠很好的和現有的工具和應用協同工作
- 擴充性:基于Hadoop 平台原生開發
高可用性,并且無限彈性擴充
- 開放性: 支援主流Hadoop和Linux開源釋出
非常友善和現有的裝置內建整合避免了第三方供應商的軟硬體依賴性。
使用場景 (OLTP and ODS)
Trafodion 功能概覽
• 支援全功能的ANSI SQL語言
• 支援嚴格的資料完整性
• 支援用戶端通過ODBC/JDBC連接配接
• 支援分布式事務的ACID
• 無縫內建通路Trafodion, 原生HBase和Hive表格
• 具有非常成熟的SQL引擎技術,包括Cascades基于成本的優化器, MPP并發執行引擎;利用LLVM JIT生成運作時代碼;支援UDF和存儲過程
• 支援編譯時與運作時負載優化
• SQL智能并行算法
系統架構圖
Trafodion 優勢
提供了全功能以及經過優化的基于HBase之上的事務型DBMS解決方案
• 可利用現有的SQL技術儲備而不必掌握複雜的map/reduce 程式設計技術
• 便于客戶二次開發以及獨立軟體供應商開發的應用,保護了客戶的投資提高了客戶的開發生産力。
• 工作負載的優化為下一代實時事務處理應用提供了基礎。
• 保證了複雜事務的一緻性(包含多個SQL語句, 跨行, 跨表格)
• 原有的Hadoop投資利益得到更好的補充,降低了成本,有更好的彈性與擴充性。
• 由惠普資助和投資的開源項目