筆者大學所學電腦專業,讀書時接觸過Oracle、mysql和SQL SERVER,一度坐井觀天覺得資料庫應該也就這些了,但自筆者畢業進入數據倉庫這個行業,接觸的第一個商業資料庫即是Teradata,亦是接觸到的第一個MPP體系架構,先簡單談談個人對Teradata的認識吧 產品特點: 1.MPP架 ...
筆者大學所學電腦專業,讀書時接觸過Oracle、mysql和SQL SERVER,一度坐井觀天覺得資料庫應該也就這些了,但自筆者畢業進入數據倉庫這個行業,接觸的第一個商業資料庫即是Teradata,亦是接觸到的第一個MPP體系架構,先簡單談談個人對Teradata的認識吧
產品特點:
1.MPP架構,為提供商業大數據分析處理而設計構建(OLAP)
2.通過PE、BYNET、AMP中間件構建出高效的並行資料庫系統(作為行式資料庫對硬體資源要求特別在於記憶體資源需求上優勢很明顯)
3.通過PI和SI構建數據的均勻分佈和高效的讀寫能力
4.提供了豐富的SQL請求工具(BTEQ、Teradata SQL ASSISTANT、FASTLOAD、MULTILOAD、FASTEXPORT、TPUMP)
5.提供了完備的管理工具(Teradata Manager、DBQM、Teradata Administrator)
6.提供了豐富的二次開發介面(PP2、CLI、ECLI、ODBC、Oracle Transparent Gateway、WinCLI、TS/API)
產品不足
1.過於封閉,在網上很難找到Teradata資料庫的相關資料,產生異常或疑問只能咨詢Teradata內部人員(或有相關經驗人員)
這給後期架構規劃和日常異常的處理上帶來了很大的不便,隨著與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吧。
1、Teradata因數據倉庫而存在
Teradata 是一個關係型資料庫管理系統 (RDBMS).
• 為運行世界上最大的商業資料庫而設計;
• 企業級數據倉庫的首選解決方案;
• 基於Linux/UNIX與NT的開放式系統平臺;
• 完全符合ANSI標準;
• 可以運行於單個或多個節點;
• 可以幫助企業提供自服務端到客戶端的所有應用
• 運用並行處理方式來管理Terabytes以上的數據
2、Teradata與EDW
3、數據倉庫發展的五個階段
4、Teradata資料庫系統體系架構
基本讀寫過程
•解析引擎PE將SQL請求拆分成 各AMP的請求以便幵行處理
• 解析器分解接收到的SQL交易 請求,驗證語法、許可權等
• 優化器產生最優的查詢方案
• 分發所優化的方案到AMP
• 數據通過表PI的HASH值均勻 分佈到各AMP管理的磁碟( 寫)
• 信息傳遞層可彙總各AMP數 據,將最終結果返回客戶端( 讀)
5、The Parsing Engine (PE) 解析器
PE的作用:
• 一種VPROC,用亍解釋SQL請求、 接收輸入記錄、審查數據、發送信 息到AMPS
• 每個PE能幵發操作120條會話,每 個會話能處理多個請求
• 當多個用戶同時訪問系統時, Teradata能夠通過PE在各節點間自 勱平衡負載,不需要人工干預
6、BYNET(高速連接網路)
BYNET的作用是:
• 負責AMP與PE之間的通信
• 通信方式可為:Point-to-Point, Multi-Cast, and Broadcast communications
• 將AMP返回給PE的結果集進行合併 • 它的存在使得Teadata的並行成為可能
• BYNET可以是硬體也可以是軟體 • 隨著節點的增加,BYNET的帶寬線性增長
7、AMP - Teradata並行處理的基礎
• 一種VPROC,每節點可包含多個 AMP
• 每個AMP擁有獨立記憶體和CPU資 源,與一個VDISK連接,管理數 據庫/表的部分數據。
• 控制所有磁碟交互及部分資料庫 的操作,如讀、寫、轉換、格式 化等
• 各個AMP幵行處理,互不幹擾, 交易處理結果在信息傳遞層彙總 後,直接返回給應用程式
• 一個請求可以分發到所有AMP一 起共同工作,每個AMP也可以同 步處理多個請求
8、Teradata支持MPP架構,通過系統擴展實現並行 處理能力的線性擴展
9、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,一名數據倉庫行業的資深從業者,很高興與你的這次分享!