MySQL推出Applier,可實時複製數據到Hadoop
MySQL複製
操做能夠將數據從一個MySQL服務器(主)複製到其餘的一個或多個MySQL服務器(從)。試想一下,
若是從服務器再也不侷限爲一個MySQL服務器,而是其餘任何數據庫服務器或平臺,而且複製事件要求實時進行,是否能夠實現呢?
MySQL團隊最新推出的
MySQL Applier for Hadoop
(如下簡稱Hadoop Applier)旨在解決這一問題。
用途
例如,複製事件中的從服務器多是一個數據倉庫系統,如
Apache Hive
,它使用Hadoop分佈式文件系統(
HDFS
)做爲數據存儲區。若是你有一個與HDFS相關的Hive元存儲,Hadoop Applier就能夠實時填充Hive數據表。數據是從MySQL中以文本文件形式導出到HDFS,而後再填充到Hive。
操做很簡單,只需在Hive運行HiveQL語句'CREATE TABLE',定義表的結構與MySQL類似,而後運行Hadoop Applier便可開始實時複製數據。
優點
在Hadoop Applier以前,尚未任何工具能夠執行實時傳輸。以前的解決方案是經過Apache Sqoop導出數據到HDFS,儘管能夠批量傳輸,可是須要常常將結果重複導入以保持數據更新。在進行大量數據傳輸時,其餘查詢會變得很慢。且在數據庫較大的狀況下,若是隻進行了一點更改,Sqoop可能也須要較長時間來加載。
而
Hadoop Applier則會讀取二進制日誌,只應用MySQL服務器上發生的事件,並插入數據,不須要批量傳輸,操做更快
,所以並不影響其餘查詢的執行速度。
實現
Applier使用一個由libhdfs(用於操做HDFS中文件的C庫)提供的API。實時導入的過程以下圖所示:
數據庫被映射做爲一個單獨的目錄,它們的表被映射做爲子目錄和一個Hive數據倉庫目錄。插入到每一個表中的數據被寫入文本文件(命名如datafile1.txt),數據以逗號或其餘符號分割(可經過命令行進行配置)。
歡迎關注本站公眾號,獲取更多信息