vertica在電信的應用


本文介紹了什么

´ 電信級大數據分析典型需求

´ Vertica數據庫特點及與其他數據庫對比

´ Vertica核心技術介紹

´ 基於Vertica的典型分系統架構簡介

 

電信級大數據分析典型需求

´ 海量數據存儲:年分析數據量達到PB

  • Counter數據:各網元收集的統計數據,可用於監控和測量網絡性能

  • MR詳單:即手機向網絡上報的無線性能測量報告,反映了用戶實時無線環境真實情況

  • CDR數據:呼叫詳單記錄,由各個接口中與該事件相關的信令綜合而成,是對用戶在移動網絡中的通話、短信、數據業務的事件記錄

  • IUPS數據:對Iu-PS接口上采集的PS域信令面和用戶面數據解析而成的話單數據

  • Gn數據:對Gn口原始碼流解析得到的數據,主要反映用戶使用各類數據業務的詳細情況

  • 工參、投訴、設備告警、路測等其他數據

´ 高速數據匯總及分析:保證按天、按月滾動的分析模塊能夠及時完成

´ 少量的實時查詢需求:從海量詳單數據中迅速定位單個用戶,例如用戶軌跡查詢

´ 結論:需要一種兼具數據倉庫功能、數據分析功能的數據庫;對信息檢索速度要達到秒級;對超大數據集的匯總、關聯操作要下降到分鍾級(傳統數據庫如Oracle往往需要數小時)

 

Vertica特性

´ 大規模並行處理(MPP):基於廉價的X86服務器集群,獲得高性能的分析處理能力。

´ 列式存儲:為大多數分析型數據庫所采用,區別於傳統的交易型數據庫(如Oracle),適用於按列高速查詢,性能提升在50-1000倍。

´ 標准化的接口:基於SQL語句和傳統的JDBC和ODBC等程序接口,利於現有數據分析系統移植。

´ 靈活的部署方式:既可部署於傳統的本地硬盤存儲,也可部署在HDFS存儲系統上,方便與Hadoop系統集成。

´ 查詢優化器:根據用戶查詢特性優化存儲結構和查詢算法,進一步提升查詢性能(關聯、分組等查詢性能可再提高5-10倍)。

´ 豐富的管理和監控工具:為不同用戶(數據分析、實時查詢、數據導入等)分配各自系統資源(CPU、內存等),擁有圖形化的網頁監控界面。

 

Vertica與傳統交易型數據庫對比

傳統數據庫以交易型數據庫為主,比如Oracle、MySQL,這些數據庫的物理存儲格式都是行存儲,適合數據頻繁的增刪改操作(如股票交易系統),但對於統計分析類的查詢,行存儲其實效率很低。而以Vertica為代表的分析型數據庫,采用了MPP列式存儲方式,注重字段統計、匯總等分析操作,而弱化了記錄的插入、刪除操作。

下面對比兩類數據庫在執行分析任務時的差異。

 

Vertica與NoSQL數據庫對比

隨着“大數據”的興起,互聯網企業紛紛推出了所謂NoSQL的新型數據庫。這類數據庫最大的特點是不再使用SQL語句進行數據查詢,而采用Map/Reduce等技術處理數據,適合處理互聯網產生的海量 非結構化數據(不再以“表”來組織數據)。與之相比,Vertica數據庫更傾向於使用傳統的SQL語言,處理結構化的數據,最近幾個版本的Vertica也引入了Hadoop接口,使之具備了一定的非結構化數據處理能力。

下面對比Vertica與Hbase,一種典型的NoSQL數據庫。

 

Vertica與Impala對比

Impala是一款SQL on Hadoop開源數據庫,最顯著的特點是其結合了HDFS分布式存儲系統和SQL查詢語句,此外它采用“列式存儲”的設計,這使其成為了一款高速的分析型數據庫。盡管如此,Vertica與之相比,依然具有查詢效率更高、運行更穩定、資源管理更方便等優勢。

 

Vertica、Impala測試對比

針對日常分析常用的三類SQL查詢:記錄統計、關聯、分組匯總,我們使用相同硬件和數據源做了如下測試,可以看出Vertica具有明顯速度優勢。

測試環境

5台HP-C7000刀片服務器組成的Vertica集群

1台主節點 + 5台從節點,HP-C7000刀片服務器組成的Impala集群

 

Vertica核心技術——大規模並行計算(MPP)

´ Vertica采用無資源共享的大規模並行處理架構,節點間通過TCP/IP網絡進行通信,每個節點采用本地磁盤來存儲數據。

´ Vertica根據數據表內容自動的在集群之間划分數據,查詢規划器決定如何應對查詢語句,並將相應的工作派發到不同的合作結點上,然后再收集每個結點的部分結果,最后將部分結果整理成最后的查詢結果,返回給查詢用戶。

´ 與Hadoop等集群采用的主-從節點規划不同,Vertica所有節點完全對等,數據加載可以並發在所有節點同時執行,數據的查詢也可以在任意節點發起。

´ Vertica支持在線集群擴展,並在完成節點添加/刪除后重新分配數據。

 

Vertica核心技術——Projection與列式存儲

對於典型的分析查詢而言,往往不需要讀取整張表的沒一行數據,而只需要獲取所有列數據的一個子集。列式存儲正是基於這一原則,在執行分析查詢時跳過無關的列,從而節省了大量的I/O資源消耗。

在Vertica中,“表”僅僅表示邏輯上的二維數據結構,真正存儲的數據結構是將表拆分得到的列的組合,稱為Projection

Projection存儲的不僅僅是數據。為了優化查詢性能,Vertica系統針對每列數據的特點,會采用不同的編碼和壓縮算法、不同的排序方式及系統冗余設置等規則組織projection,再分散存儲到數據庫集群的各個節點上。

這些Projection的建立規則可以通過查詢優化器(下面會介紹)自動生成,也可以由有經驗的數據庫管理員手動設置。通過這一系列的壓縮及優化存儲,可以進一步降低系統I/O消耗,提高查詢效率。

 

Vertica核心技術——K-Safety容錯機制

Vertica通過維護數據的多個冗余備份來實現高可用性。Vertica保證冗余數據被散列存儲在不同的結點上,Vertica將其稱之為K級系數安全性(K-safety),K指的是Vertica能夠容忍的可能發生故障數據結點的個數。系統會按K的取值在各節點上設置數據備份。

上圖是一個典型的5節點集群,設置K=1,其中節點1存儲有節點2的備份projection,節點2存儲有節點3的備份projection,以此類推。在此設置下,任一節點宕機都不會影響數據庫的正常運轉。

通過合理的集群配置,可以在同時宕機數超過K值的情況下依然正常運轉,理論上最大宕機節點數可以達到集群節點總數的一半。例如上圖中,當節點2已經宕機,此時若節點4或5再發生宕機,依然不會發生數據丟失;但此時若節點1或3發生故障,數據丟失將不可避免。

 

Vertica核心技術——查詢優化器

 

查詢優化器通過分析數據庫的負載與常用數據分析的計算特性,調整庫內數據的存儲、壓縮、分布方式,從而根據用戶需求優化數據庫的數據裝載或查詢性能。

優化流程

  1. 首先根據數據平台常用查詢,結合日常數據庫監控數據,分析優化需求。

  2. 將優化需求(如樣例查詢及優化參數)提供給優化器,生成數據庫優化腳本。

  3. 檢查、部署優化腳本,測試優化效果。

優化關鍵點:

´ 存儲速度優先VS查詢速度優先

´ Projection建立數量和建立方式

´ 優化流程是一個循環、往復、不斷提升的過程

 

Vertica在分析系統中的定位

´ Vertica數據庫並不是用來取代傳統的數據庫(Oracle、MySQL等)或各類基於Hadoop的數據庫系統的,而更多地是互補與整合的關系。

´ 在一個完善的分析系統中,傳統的數據庫往往是那些規范化的數據來源,比如電信運營商的用戶帳單、工參信息等,又或者是互聯網行業的用戶資料、交易信息等。

´ Hadoop系統則是那些非結構化的數據來源,如電信運營商各網元、接口采集的數據,又或者是互聯網的各類XML、JSON文件。此外,Hadoop的Map/Reduce機制還非常適於各類海量數據的規整和縮減。

´ 在此基礎上,Vertica分析型數據庫利用其快速、靈活、易用的特性,完成各類數據的關聯、匯總等分析工作。

´ 在頂層采用SAS、R等擁有成熟的回歸、聚合模型工具做深度數據挖掘和數據可視化。

 

Vertica應用案例1:某電信運營商數據分析系統

電信運營商大數據分析的典型應用包括:

  • 終端用戶行為分析

  • 詳單分析

  • 網絡優化/性能分析

  • 信令分析

  • 用戶粘性和ARPU分析

……

 

Vertica應用案例2:Twitter用戶分析系統

Twitter大數據分析典型應用:

  • 客戶行為分析

  • 交易分析

  • 社交關系分析

  • 個人需求識別和信息推送

……

 

What is More

´ 一個優秀的數據分析平台起始於高質量的數據歸整與數據引入。

´ 將Vertica與SAS、IBM SPSS Modeler等分析工具對接,利用這些工具搭建模型,實現更加靈活、深入的數據分析。

´ 利用Vertica提供的C++、Java和R語言接口,編寫用戶自定義擴展程序(User-DefinedExtensions, Udx),可以滿足那些使用SQL無法實現或對性能要求更高的分析需求。

´ 數據平台的搭建,僅僅是大數據分析的第一步,如何從這海量數據中發掘出真正的金礦,有賴我們打破固有思路,積極學習和探索,共同迎接這個大數據的時代!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM