【乾貨】聽HPE Vertica技術大咖,談談大數據和MPP高效的計算框架(下)

如果您已經看過上期的內容,一定對大數據和HPE Vertica有了更爲深刻的認識。接下來,我們就趁熱打鐵,繼續爲您帶來劉定強先生關於大數據和MPP高效計算框架的分享。

Vertica,關係型數據庫

Vertica是HPE一個重要的大數據產品,它的本質是一個MPP架構的關係數據庫。對比以前的Oracle、SQL Server、DB2,Vertica在功能上沒有什麼差別,但是它專注於大數據的分析,尤其是準實時的分析。

儘管它在功能上跟傳統數據庫相像,但是它在具體技術細節的實現上有較大差異。它既可以部署在物理機器、雲平臺上,還可以作爲SQL on Hadoop方案部署在Hadoop平臺上,提供完整、高性能的關係數據庫服務。

在MPP架構基礎之上,Vertica採用列式存儲和計算的方式來大幅度的降低I/O,所以它既能夠處理TB~10PB這樣量級的數據,也能夠提供高性能的處理和運行計算。同樣情況下,它和Oracle這樣傳統的行式數據庫相比,處理速度可以提升上百倍甚至上千倍;

Vertica還提供供自動優化的工作來輔助開發人員和數據庫管理人員去做數據庫的優化,使得其更好地完成數據的分佈以及數據的排序和壓縮。因爲在MPP列式數據庫裏面,並行計算是把算法推到了離數據最近的地方以提供更好的性能,而不是像常見的Hadoop或Spark將數據拉到每個結點去做計算,這是二者的區別。

在Vertica數據庫中,因爲算法已經用MPP的方式實現了,我們可直接在數據庫引擎中進行模型的訓練及驗證,像執行簡單的分析統計函數一樣去做模型的訓練、驗證、管理就可以了。

而Vertica整個數據庫,對外是使用SQL進行支撐的,所以可以執行SQL的地方就可以做所有的事情:可以使用SQL去並行地處理數據;無論是半結構化數據還是開放的列式存儲格式的數據都可以處理。

在Vertica中,藉助HPE的IDOL把文本、視頻、音頻這樣的數據做增強後納入到數據庫當中,同時也是使用標準的SQL進行分析和查詢以及數據處理,可以通過ODBC、JDBC、ADO.NET等主流的接口去使用。所有這些標準、主流的接口都可以在Vertica當中使用。

Vertica,開放的生態圈

從Vertica生態圈中,我們可以看到,Vertica並不是一個生態的破壞者,它是採用一種開放的架構與其他開源或者商業的產品去做整合。

對於基礎平臺來講,我們可以在x86的服務器上跑,也可以在雲平臺上跑,還可以在主流的Hadoop發行版本上去跑。

從接口層面上講,通過SQL,基於標準ODBC,JDBC,ADO.NET的傳統的BI工具、分析工具、新的自助分析工具以及商業的開源分析工具,都可以直接和Vertica無縫整合。

所以在傳統的企業架構裏頭,只需要將傳統數據庫替換成Vertica就可以得到大數據的分析和處理能力。

Vertica,久經市場驗證

自2005年成立到現在,Vertica已經有十多年了。這十多年當中Vertica的發展是非常迅速的,無論是在傳統的通信、金融、能源還是新興的在線網站、社交媒體和遊戲等均有很多的客戶。

初創公司

重點就在於,Vertica可以給這些客戶提供很好的數據分析以及處理能力,使他們快速地演進到大數據平臺的分析架構上來。而且Vertica的擴展能力可以保證我們的企業從很小的規模到很大的規模都是完全可控的,它的處理能力是線性擴展的,並且使用成本也是完全可控的,3個節點可以處理20~30個TB的數據,當數據量達到PB量級,五六十臺機器也是可以處理的,所以Vertica的成本完全可控。

Vertica深得國外初創型社交媒體以及遊戲的初創公司的喜愛,因爲運行之初不用投入太多成本就可以保證企業將來的發展,不受架構的制約。

成熟用戶FaceBook

我們也有很多的成熟客戶,比如全球最大的社交媒體FaceBook。FaceBook是開源平臺重要的貢獻者,在Hadoop,MySql生態中做了很多貢獻,比如Hadoop中的Hive就是FaceBook開源出來的,但是FaceBook在做營收分析、用戶行爲分析以及廣告效率分析時往往有更高的時效性要求,它發現用Hadoop解決起來有些困難,所以它採用了HPE的Vertica去支撐它時效性較高的這些數據的分析。

FaceBook當中,最大的Vertica單一集羣超過了三百個節點,數據量超過6PB,每小時可處理的數據量爲30TB~40TB,時效性爲5min~10min,來幫助其上百個分析師完成高效率的在線數據分析。

這是目前爲止Vertica在全球範圍內最大的部署。

在傳統的行業中,例如通信行業,我們有相當多的應用。

美國最大的通信運營商AT&T

美國最大的通信運營商AT&T是Vertica的重度用戶,除了傳統的運營分析使用了Vertica,在網絡領域當中也採用了Vertica進行網絡優化以及網絡設備的管理等這種時效性較高的數據處理和分析,在網絡領域它有超過3PB的集羣。

Vertica爲它帶來的好處,不僅僅是節省了費用,更重要的是分析的時效性有了很大的提升,可以真正做到5分鐘網絡優化的分析要求。

美國最大的信用卡風險分析平臺

在金融行業當中,08年的次貸危機發生之後面臨的問題就是風險越來越大,信用卡的使用風險突然變得很高,次貸危機發生之後各行各業的壓力都很大,那麼各種各樣的風險也都隨之而來,而這些新的風險模式是很難提前去預估的,傳統的基於一體機的模式就很難去支撐這種情況,因爲它事先需要去做很多彙總才能去做風險的事後管控分析,由於風險探測模式在不斷的變化、數據的彙總模型變更不可能有這麼小的週期,這個時候就要求的時效性要更強,需要運用更好的技術。

這個時候使用Vertica,可以完成時效性最高部分的風險分析要求,它可以做到使用88個x86的節點做到1~2個PB數據的管理和分析,把原來需要兩三天纔可以做出來甚至做不出來的數據的管理和分析,現在使用Vertica15分鐘可以做到。這樣可以很方便的在不改變大的生態的情況下只通過數據庫的替代快速演進到大數據的架構當中。

在最近這幾年,Vertica在國內也涉及了很多領域的應用,無論是三大運營商、國內的若干家銀行還有一些其他的第三方支付機構以及其他的行業,比如零售業、互聯網廣告業等領域,Vertica的應用也很豐富。

問答環節

以下是劉定強先生關於本次網友提問的精彩回答:

Q1:在Vertica中mergeout之後插入行和更新的行在什麼log或者table中能夠看到?

A:這位同事應該是已經體驗過Vertica或者正在使用Vertica了,在Vertica中我們除了使用MPP和列式架構去做數據的快速處理和分析以外,我們也提供內存的優化,當讀小批量的數據時,比如每秒鐘或者每十秒鐘的數據的裝載和處理,它會是優先進入到內存的區域然後過一段時間後自動成批的放到磁盤裏頭,這個過程在Vertica中稱作moveout,moveout執行之後也會自動在系統閒暇時把這些小文件合併成大文件。

Vertica中通過打標記的辦法,在數據修改的時候並不把原來的一行數據刪掉而是採用打標記,標記成已經刪除掉了然後再追加一條數據,通過這種增量的數據存儲的辦法來提升列式數據庫的數據修改和刪除的性能,merge過後就可以扔掉這些數據了所以無論是插入、修改還是刪除的數據在Vertica這個關係型數據庫中事務一旦提交就是最終狀態了。

如果想看之前狀態的數據,只要這個數據沒有被扔掉,在Vertica中有一個時間窗口,可以在此設置數據的留存狀態,例如設置成1小時,1天等等,可以設置一個快照點進行數據的查詢,但是在缺省的Vertica中它是不保留的!

Q2:Vertica與Greenplum以及Cassandra相比有什麼優勢?

A:在大數據這個市場當中,有很多定位不同的產品供大家選擇,如果做小量交易類型的數據時,除了傳統的oracle數據庫以外Cassandra這樣的NoSQL是一個不錯的選擇,它通過犧牲一些分佈式事務或者SQL的一些能力來支持更好的擴展能力,像Mongodb,HBase也是不錯的選擇,但是他們的定位都是小量數據的插入、查詢等,而不是做數據分析的;

Vertica和Greenplum的定位是在分析領域上,Vertica和Greenmplum相像都是mpp的數據庫,不太一樣的地方在於Vertica是從06年第一個版本出來的時候它就是一個純列式的數據庫,而且它的所有節點都是完全對等的,不需要專門的節點,另外它定位在分析性能以及時效性比較高的場景上;Greenplum一開始的定位是批量數據處理,採用一個主節點(它含有一個主節點,這點上和Vertica不同)去協調其他節點的任務,定位不同是指Greenplum一開始用MPPx86這樣的技術去代替傳統的像TERADATA,DB2這樣的數據倉庫,它不是定位在時效性很高的分析性數據庫上,所以在大數據的分析平臺上處理一些準實時的數據時Greenplum的能力還是弱一些的。

Q3:MPP架構與各種SQL on Hadoop架構的根本區別在哪裏?優點和缺點各是什麼?

A:Hadoop剛開始的時候是沒有SQL的,因爲大家喜歡SQL、離不開SQL所以後來有了SQL on Hadoop。SQL on Hadoop的本質不是一個數據庫,一般數據都是使用不同的存儲格式例如Parguet/ORC放在HDFS上,SQLon Hadoop是不管數據的,所以通常情況下SQL on Hadoop就是一個SQL引擎,具有SQL解析和初步的優化能力。

Vertica是一個MPP數據庫它本質上是一個數據庫,數據庫的特點就在於有自己的存儲引擎、執行引擎和優化器,這三個是緊密耦合的,這是和SQL on Hadoop不太一樣的地方。

在SQL on Hadoop這個生態上有的人已經把它朝着MPP數據庫上去做,比如Impala之前是沒有自己的存儲格式的,後來他發現這樣對自己很吃虧,需要提供更高的性能或者提供給更好的管理能力的時候在HDFS上做太差,所以他推出了自己的存儲格式Kudu。

所以SQL on Hadoop這個生態可能再過5、6年有的產品就會和MPP數據庫差不多了,但是在SQL on Hadoop這個開源領域裏,大家更會去強調各個組成部分之間的獨立性,一旦組件之間是一個鬆散的耦合,可能就會付出很多性能方面的代價,所以這可能是二者之間比較大的一個差別。

Q4:您從業這麼多年可以簡單聊聊您對這個行業的看法嗎

A:IT這個行業是一個非常年輕的行業,從計算機誕生到現在差不多六七十年的時間,這個行業不一定適合所有人,但是從我的體驗看來如果你是一個有激情、樂於挑戰的人,那麼我覺得這個行業一定是值得你來的,這麼多年來從很小規模的應用到層出不窮的互聯網、移動互聯網到現在的大數據以及A,一步一步下來有非常多的機會當然也有非常多的挑戰,如果你願意迎接這些挑戰,那麼你也會有非常多的機會,這是我的看法。

Vertica是一個上手非常快速的MPP列式數據庫,如果擁有Oracle、Mysql等這樣數據庫的使用經驗,再使用Vertica是非常簡單的。我們提供社區版本供大家免費的體驗。此社區版本可以支撐三個節點,只要數據量不超過1TB即可。

即可免費體驗Vertica,歡迎大家的試用。

相關閱讀:

HPE Vertica

更靈活的分析引擎,助您快速查詢數據

HPE Vertica,適用於包括硬件、虛擬機、雲在內的各種運行環境。同時,Vertica易於安裝和部署,能滿足您的各種業務需要。歡迎您的試用!

號外號外,Vertica China中文網站開!通!啦!

豐富的案例介紹

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章