雲計算和資料倉儲是合理的一對。 雲存儲可以按需擴展,雲可以將大量伺服器貢獻于某一具體任務。 資料倉儲通用功能是本地資料分析工具,受到計算和存儲資源的限制,同時也受到設計者考慮新資料來源集成的能力的限制。 如果我們可以克服一些資料移轉的挑戰,將一個資料倉儲以及其資料分析工具從資料中心中的專用伺服器轉移到基於雲的檔案系統和資料庫就可以解決這個問題。
雲端資料管理通常牽扯到在分散式檔案系統中載入和維護檔,像Hadoop分散式檔案系統(HDFS),隨後用類似MapReduce這樣的工具處理資料。 對於資料倉儲和其他的分析人物,像Hive這樣的資料庫工具在分散式檔案系統之上提供了類SQL的功能。
儘管傳統關聯式資料庫管理系統和雲端非關聯式資料庫之間可以並行描述,但是在兩個片段之間轉移資料時,不同的運行方式會導致問題。 抽取、轉換和載入流程甚至會造成更多挑戰。
資料移轉工具輔助向雲端遷移
從資料庫抽取資料很容易,從資料庫中有效挖掘大容量資料確是一項挑戰。 如果由於資料量的增長,資料倉儲面臨性能或者存儲問題,可能就是時候考慮使用運資源了。 下面提供了一些工具來協助從關聯式資料庫載入資料到雲檔案系統和資料庫。
專業工具,像Sqoop(SQL-to-Hadoop)生成代碼從關聯式資料庫抽取資料,並將其拷貝到HDFS或者Hive。 Sqoop使用JDBC驅動,同多種類型的關聯式資料庫工作,但是通過JDBC推出大量資料導致了性能成本。
為了遷移到雲端,從關聯式資料庫抽取資料時,你可能需要進行資料轉換。 如果你所工作的所有資料來自于單一資料庫,就可以在源資料庫中進行轉換。 如果從兩個分離的系統合併資料,在抽取之後再轉移資料來源更有效。 然而,你應該在載入資料到最終資料存儲庫之前做這些。 Cascading資料處理API可以協助這項任務的進行。
Cascading提供了運行在Hadoop之上的功能,像工作流處理、計畫和調度。 就比如說,它同管道篩檢程式工作;資料應用篩檢程式通過管道從一個源流到目的源。 其他功能像grouping可以應用於資料流程。 Cascading用JAVA實現,在MapReduce工作中調用轉換API。
如果你正在同MySQL共事,Sqoop介意使用MySQL轉儲功能繞離JDBC並更加有效地抽取資料。 Sqoop也可以生成JAVA類,這個類可以用於操縱載入資料並將其直接導入Hive。 HIHO (Hadoop Input and Output)從關聯式表抽取資料並提供一些基本的轉換服務,像去重以及合併輸入流。
當生成檔在將其載入到HDFS檔案系統或者Hive資料倉儲之前,要求最小化轉換,你就能直接載入檔了。 在確定目標表和分割規格後,Hive有一個命令來載入資料。 Pig是資料分析程式的一種高水準語言,尤其是和JAVA中的MapReduce編碼對比的時候。 它提供了一種基本的統計函數,你可以在關聯式資料庫中找到(像min、max、count),在數學和字串處理功能中也能找到。 Pig支援架構化和非結構化文字檔的壓縮。
雲計算資源補充了資料倉儲基礎架構。 然而,為將資料倉儲轉移到雲端的利益最大化,適當結構化資料並使用正確的資料分析工具很重要。
TechTarget中國原創內容,原文連結:HTTP://www.searchcloudcomputing.com.cn/showcontent_58751.htm
(責任編輯:呂光)