MySQL添加Hadoop數(shù)據(jù)實(shí)時復(fù)制功能
TT中國 發(fā)表于:13年05月09日 13:48 [轉(zhuǎn)載] 網(wǎng)界網(wǎng)
MySQL復(fù)制操作可以將數(shù)據(jù)從一個MySQL服務(wù)器(主)復(fù)制到其他的一個或多個MySQL服務(wù)器(從)。試想一下,如果從服務(wù)器不再局限為一個MySQL服務(wù)器,而是其他任何數(shù)據(jù)庫服務(wù)器或平臺,并且復(fù)制事件要求實(shí)時進(jìn)行,是否可以實(shí)現(xiàn)呢?
MySQL團(tuán)隊最新推出的 MySQL Applier for Hadoop(以下簡稱Hadoop Applier)旨在解決這一問題。
用途
例如,復(fù)制事件中的從服務(wù)器可能是一個數(shù)據(jù)倉庫系統(tǒng),如Apache Hive,它使用Hadoop分布式文件系統(tǒng)(HDFS)作為數(shù)據(jù)存儲區(qū)。如果你有一個與HDFS相關(guān)的Hive元存儲,Hadoop Applier就可以實(shí)時填充Hive數(shù)據(jù)表。數(shù)據(jù)是從MySQL中以文本文件形式導(dǎo)出到HDFS,然后再填充到Hive。
操作很簡單,只需在Hive運(yùn)行HiveQL語句'CREATE TABLE',定義表的結(jié)構(gòu)與MySQL相似,然后運(yùn)行Hadoop Applier即可開始實(shí)時復(fù)制數(shù)據(jù)。
優(yōu)勢
在Hadoop Applier之前,還沒有任何工具可以執(zhí)行實(shí)時傳輸。之前的解決方案是通過Apache Sqoop導(dǎo)出數(shù)據(jù)到HDFS,盡管可以批量傳輸,但是需要經(jīng)常將結(jié)果重復(fù)導(dǎo)入以保持?jǐn)?shù)據(jù)更新。在進(jìn)行大量數(shù)據(jù)傳輸時,其他查詢會變得很慢。且在數(shù)據(jù)庫較大的情況下,如果只進(jìn)行了一點(diǎn)更改,Sqoop可能也需要較長時間來加載。
而Hadoop Applier則會讀取二進(jìn)制日志,只應(yīng)用MySQL服務(wù)器上發(fā)生的事件,并插入數(shù)據(jù),不需要批量傳輸,操作更快,因此并不影響其他查詢的執(zhí)行速度。
實(shí)現(xiàn)
Applier使用一個由libhdfs(用于操作HDFS中文件的C庫)提供的API。實(shí)時導(dǎo)入的過程如下圖所示:
數(shù)據(jù)庫被映射作為一個單獨(dú)的目錄,它們的表被映射作為子目錄和一個Hive數(shù)據(jù)倉庫目錄。插入到每個表中的數(shù)據(jù)被寫入文本文件(命名如datafile1.txt),數(shù)據(jù)以逗號或其他符號分割(可通過命令行進(jìn)行配置)。
公司簡介 | 媒體優(yōu)勢 | 廣告服務(wù) | 客戶寄語 | DOIT歷程 | 誠聘英才 | 聯(lián)系我們 | 會員注冊 | 訂閱中心
Copyright © 2013 DOIT Media, All rights Reserved. 北京楚科信息技術(shù)有限公司 版權(quán)所有.