筆者大學所學計算機專業,讀書時接觸過Oracle、mysql和SQL SERVER,一度坐井觀天以爲數據庫應該也就這些了,但自筆者畢業進入數據倉庫這個行業,接觸的第一個商業數據庫便是Teradata,亦是接觸到的第一個MPP體系架構,先簡單談談我的對Teradata的認識吧mysql
產品特色:算法
1.MPP架構,爲提供商業大數據分析處理而設計構建(OLAP)sql
2.經過PE、BYNET、AMP中間件構建出高效的並行數據庫系統(做爲行式數據庫對硬件資源要求特別在於內存資源需求上優點很明顯)數據庫
3.經過PI和SI構建數據的均勻分佈和高效的讀寫能力安全
4.提供了豐富的SQL請求工具(BTEQ、Teradata SQL ASSISTANT、FASTLOAD、MULTILOAD、FASTEXPORT、TPUMP)服務器
5.提供了完備的管理工具(Teradata Manager、DBQM、Teradata Administrator)網絡
6.提供了豐富的二次開發接口(PP二、CLI、ECLI、ODBC、Oracle Transparent Gateway、WinCLI、TS/API)架構
產品不足工具
1.過於封閉,在網上很難找到Teradata數據庫的相關資料,產生異常或疑問只能諮詢Teradata內部人員(或有相關經驗人員)oop
這給後期架構規劃和平常異常的處理上帶來了很大的不便,隨着與Teradata方合做的開展,亦愈發認識到,技術的徹底封說的好聽點是爲了操做的合規性和單一性,說的直白點就是爲了最大化專利技術的經濟效益(之間產生過幾回數據庫異常,Teradata中國區的工程師處理不了都是申請美國工程師的技術支持,這也能看出來對於Teradata內部亦是存在比較明顯的技術封閉現象)
2.擴展性不足,做爲一款MPP體系架構產品,對比開源hadoop以及筆者如今所用的商業Vertica數據庫,其擴展性表現十分有限
筆者接觸過Teradata 5系列和2系列的架構環境,均採用了共享陣列存儲,其最大的問題就在於,陣列插滿磁盤就沒法有效進行擴容了,節點的擴展沒有接觸很差妄加評論,固然如今的Teradata可能在這塊有了很大的提高和對市場需求積極的調整(在最後一次架構規劃中,Teradata方給出了基於X86服務器的2系列架構方案)
3.兼容性不足,這點也可稱之爲可移植性(固然這類大存儲的MPP數據庫也不會輕易作移植),固然其原因仍是在於其封閉性
從底層硬件到上層數據庫軟件以及後期的服務,甚至機櫃都是由Teradata定製化的實現,固然如今的Teradata可能在這塊有了很大的提高和對市場需求積極的調整(在最後一次架構規劃中,Teradata方給出了基於X86服務器的2系列架構方案)
4.IO能力有限,行式存儲數據庫的通病,在壓縮比較低的狀況下,加重了OLAP場景中對於數據庫IO能力瓶頸的產生
下面咱們就來簡單認識認識Teradata吧。
一、Teradata因數據倉庫而存在
Teradata 是一個關係型數據庫管理系統 (RDBMS).
• 爲運行世界上最大的商業數據庫而設計;
• 企業級數據倉庫的首選解決方案;
• 基於Linux/UNIX與NT的開放式系統平臺;
• 徹底符合ANSI標準;
• 能夠運行於單個或多個節點;
• 能夠幫助企業提供自服務端到客戶端的全部應用
• 運用並行處理方式來管理Terabytes以上的數據
二、Teradata與EDW
三、數據倉庫發展的五個階段
四、Teradata數據庫系統體系架構
基本讀寫過程
•解析引擎PE將SQL請求拆分紅 各AMP的請求以便幵行處理
• 解析器分解接收到的SQL交易 請求,驗證語法、權限等
• 優化器產生最優的查詢方案
• 分發所優化的方案到AMP
• 數據經過表PI的HASH值均勻 分佈到各AMP管理的磁盤( 寫)
• 信息傳遞層可彙總各AMP數 據,將最終結果返回客戶端( 讀)
五、The Parsing Engine (PE) 解析器
PE的做用:
• 一種VPROC,用亍解釋SQL請求、 接收輸入記錄、審查數據、發送信 息到AMPS
• 每一個PE能幵發操做120條會話,每 個會話能處理多個請求
• 當多個用戶同時訪問系統時, Teradata可以經過PE在各節點間自 勱平衡負載,不須要人工干預
六、BYNET(高速鏈接網絡)
BYNET的做用是:
• 負責AMP與PE之間的通訊
• 通訊方式可爲:Point-to-Point, Multi-Cast, and Broadcast communications
• 將AMP返回給PE的結果集進行合併 • 它的存在使得Teadata的並行成爲可能
• BYNET能夠是硬件也能夠是軟件 • 隨着節點的增長,BYNET的帶寬線性增加
七、AMP - Teradata並行處理的基礎
• 一種VPROC,每節點可包含多個 AMP
• 每一個AMP擁有獨立內存和CPU資 源,與一個VDISK鏈接,管理數 據庫/表的部分數據。
• 控制全部磁盤交互及部分數據庫 的操做,如讀、寫、轉換、格式 化等
• 各個AMP幵行處理,互不干擾, 交易處理結果在信息傳遞層彙總 後,直接返回給應用程序
• 一個請求能夠分發到全部AMP一 起共同工做,每一個AMP也能夠同 步處理多個請求
八、Teradata支持MPP架構,經過系統擴展實現並行 處理能力的線性擴展
九、Teradata數據分佈
Teradata採用hash算法根據用戶建表所選的PI進行數據分佈,固然這裏有全部MPP體系架構數據庫的通病,數據傾斜問題,Terdata爲方便DBA的維護管理工做,提供了數據重組功能,固然做爲一個大型的MPP數據庫,數據庫對象量級的過於龐大,數據傾斜問題的處理每每會佔用DBA至關大的維護管理成本(靠每一個用戶遵照PI選擇的原則只是理論上的指望)
關於Teradata組件和語法的分享這裏就不詳述了,若有興趣歡迎留言交流
後期隨着使用的深刻,在逐步瞭解其強大同時也更加了解其封閉,要使用Teradata購買其產品只是一個開始,後續在於配套的維護和擴容上還需源源不斷的投入,在這個注重信息安全和成本控制的時代趨勢中,伴隨着去IOE的深刻和開源技術的成熟,Teradata註定淡出大部分國內市場,至少對於筆者所處的通訊行業來說是如此,天然首當其衝的仍是企業對投入成本的控制,固然不能否認的是,Teradata做爲一個爲大數據商業數據庫產品,確有其獨到之處。
老生常談,在數據倉庫體系架構中,至少在當下,RDBMS還是核心的一環,筆者所在的環境,在對hadoop生態取代Teradata探索中有過血淋淋的教訓,在面對Teradata服務即將到期的時候不得再也不次進行基於MPP體系架構的RDBMS招標,事實證實開源與商業的組合架構現階段最爲合適,故而這樣的架構沿用至今,只是對於數據倉庫環境,基於MPP架構體系的列式存儲RDBMS應是首選。
關於MPP體系架構相關知識,咱們下期再聊。
我是Mr.Yu,一名數據倉庫行業的資深從業者,很高興與你的此次分享!