1. 程式人生 > >hammal 異構資料實時交換平臺

hammal 異構資料實時交換平臺

hammal

hammal 是位來自東方的快樂工作的搬運工,他使用過各種工具,有自行車,兩廂汽車,卡車,後來他遇到了scala,於是他想為何不用scala呢,於是就有了今天的故事。。。

背景

網際網路公司的資料部門每天會面臨大量資料的匯入匯出,它們來自不同型別的資料來源,去往不同的目的地,它們資料量大的驚人,資料交換會帶來額外的開銷,執行效率差別很大。因此,我們需要這樣的資料交換平臺,1,滿足異構資料的匯入匯出;2,資料交換的效能開銷越低越好;3,資料傳輸過程避免過多的磁碟IO操作,實現全記憶體;4,良好的開放API,採用framework_plugin構建,業務方個性化plugin.基於這樣的思想,京東開發了plumber系統,taobao推出了DataX系統,前者基於clojure,後者基於java開發,hammal 則採用了scala,通過基於scala的ringbuffer,akka構建一個異構資料快速交換系統。

關於專案

執行環境
    jdk1.7
    scala 2.10.2
編譯及打包
    cd hammal
    sbt
    clean
    compile
    package
例子
詳見 test/scala/example/Test.scala, MysqlReaderTest.scala,目前已經實現了 webspider,mysql read plugin, 和 hdfs writer plugin, 可以參照此定製自己的外掛。

roadmap

plugin 與 framework 解耦;

mysql,hdfs,hbase,hive,sqlserver,oracle reader plugins開發;

mysql,hdfs,hbase,hive,sqlserver,oracle writer plugins開發;

disruptor,akka 優化;