小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

阿里出品的ETL工具dataX初體驗(yàn)

 萬皇之皇 2018-01-23




我的畢設(shè)選擇了大數(shù)據(jù)方向的題目。大數(shù)據(jù)的第一步就是要拿到足夠的數(shù)據(jù)源?,F(xiàn)實(shí)情況中我們需要的數(shù)據(jù)源分布在不同的業(yè)務(wù)系統(tǒng)中,而這些系統(tǒng)往往是異構(gòu)的,而且我們的分析過程不能影響原有業(yè)務(wù)系統(tǒng)的運(yùn)行。為了把不同的數(shù)據(jù)歸集起來,我開始了解和接觸ETL。本篇介紹阿里的開源ETL工具dataX。

ETL&&常用工具

ETL,是英文 Extract-Transform-Load 的縮寫,用來描述將數(shù)據(jù)從來源端經(jīng)過抽?。╡xtract)、轉(zhuǎn)換(transform)、加載(load)至目的端的過程。

我的理解就是從業(yè)務(wù)系統(tǒng)中根據(jù)所要分析的主題,建立數(shù)據(jù)倉庫的過程。大數(shù)據(jù)的應(yīng)用已經(jīng)非常廣泛,ETL過程現(xiàn)在已經(jīng)發(fā)展成為一個(gè)比較專門的職業(yè),相關(guān)聯(lián)的包括ETL工程師,BI分析師等等。

數(shù)據(jù)的遷移和集成都需要ETL來實(shí)現(xiàn),一般來說在數(shù)據(jù)倉庫的開發(fā)過程中ETL會占到70%到80%的時(shí)間,我了解到的ETL工具包括:

  1. Kattle是一個(gè)開源的ETL工具,優(yōu)點(diǎn)是免費(fèi),資料挺多。功能挺全面的,我折騰過一段時(shí)間,感覺不是很符合需要,想要在web上使用確實(shí)會有點(diǎn)困難,也可能是了解不深。
  2. DataStage,這是IBM為其配套的DB2開發(fā)的ETL工具,也可以用于其它數(shù)據(jù)庫數(shù)據(jù)的集成,這個(gè)工具不錯(cuò),銀行用的挺多的。
  3. Informatica,這是美國的一個(gè)數(shù)據(jù)集成公司的開發(fā)的數(shù)據(jù)集成工具,有圖形界面。
  4. sqoop,這個(gè)是hadoop生態(tài)里的一個(gè)數(shù)據(jù)導(dǎo)入工具,但是它依賴于hadoop環(huán)境,也有點(diǎn)不符合我現(xiàn)在階段的需要。

當(dāng)然還有其他挺多,畢竟對于數(shù)據(jù)的處理需求從信息機(jī)書誕生開始就一直存在。上面提到的這些工具比較強(qiáng)大,功能全面,但可能目前知識技能有限,駕馭起來不是很方便,折騰過一段時(shí)間后放棄了。我們常用的一些數(shù)據(jù)庫工具也會帶有導(dǎo)入導(dǎo)出功能,通過文本文件,csv文件等都能完成一個(gè)數(shù)據(jù)中專過程,但相對比較麻煩,而且功能太少對數(shù)據(jù)處理不是很方便。

直到我去云棲大會聽說了DataX ,這個(gè)簡潔,高效,開箱即用的ETL工具,測試過后效率也不錯(cuò),調(diào)試信息也很豐富,才發(fā)現(xiàn)這就是我需要的。官方介紹如下:

? DataX 是一個(gè)異構(gòu)數(shù)據(jù)源離線同步工具,致力于實(shí)現(xiàn)包括關(guān)系型數(shù)據(jù)庫(MySQL、Oracle等)、HDFS、Hive、MaxCompute(原ODPS)、HBase、FTP等各種異構(gòu)數(shù)據(jù)源之間穩(wěn)定高效的數(shù)據(jù)同步功能。

dataX本身只是一個(gè)數(shù)據(jù)庫同步框架,通過插件體系完成數(shù)據(jù)同步過程reader插件用于讀入,writer插件用于寫出,中間的framework可以定義transform插件完成數(shù)據(jù)轉(zhuǎn)化的需要。
使用它之后,我們的數(shù)據(jù)同步工作就簡化成了:根據(jù)數(shù)據(jù)源選擇對應(yīng)的reader或者writer插件,填寫必要的一個(gè)配置文件,一句命令搞定全部。

dataX安裝配置
  1. 系統(tǒng)環(huán)境windows 、linux均可,其他必須的依賴包括:

  2. 安裝
    • 下載安裝tar包(https://github.com/alibaba/DataX)
    • 解壓至本地某個(gè)目錄,修改權(quán)限為755,進(jìn)入bin目錄,即可運(yùn)行樣例同步作業(yè)。
      $ tar zxvf datax.tar.gz$ sudo chmod -R 755 {YOUR_DATAX_HOME}$ cd {YOUR_DATAX_HOME}/bin$ python datax.py ../job/job.json

      如果一切順利就會看到樣例輸出,說明工具已經(jīng)就緒可以使用了。

配置文件介紹

他的全部使用就如同安裝配置部分所說,僅僅是執(zhí)行一個(gè)python腳本,傳入一個(gè)json配置文件。我們的關(guān)鍵工作就是定義這個(gè)json配置。在bin目錄下也已經(jīng)給出了樣例配置,不過針對不同的數(shù)據(jù)源還是會有些許區(qū)別。
我們可以使用如下命令查看我們具體需要的配置文件樣例:

python datax.py -r {YOUR_READER} -w {YOUR_WRITER}

比如我現(xiàn)在需要的是從sqlserver讀入,寫到mysql,那么就可以嘗試:
python datax.py -r sqlservereader -w mysqlwriter
輸出如下:

{ 'job': { 'content': [ { 'reader': { 'name': 'sqlserverreader', 'parameter': { 'connection': [ { /***省略多條****/ } ], 'column': ['*'], /***省略多條****/ } }, 'writer': { 'name': 'mysqlwriter', 'parameter': { 'column': ['*'], 'connection': [ { /***省略多條****/ } ], 'password': ' /***省略多條****/', 'username': 'root', 'writeMode': 'insert' } } } ], 'setting': { 'speed': { 'channel': '5' } } }}
  • 大致也是非常容易理解的,配置數(shù)據(jù)庫賬號密碼,配置同步的表名列名等等信息。
  • jdbcUrl,username,password,table,column,writeMode(insert/replace/update)等為必選項(xiàng),見名知意。
  • 按照json格式填寫即可,reader支持配置多個(gè)連接,只要有一個(gè)連通即可,writer只能配置一個(gè)連接。
  • 更詳細(xì)的配置參考官方wiki:
    https://github.com/alibaba/DataX/wiki/DataX-all-data-channels
  • Transformer的使用見下:
    https://github.com/alibaba/DataX/blob/master/transformer/doc/transformer.md

    windows下亂碼修復(fù)

    我把這個(gè)工具遷移到一臺windows主機(jī)上使用時(shí)候看到控制臺友好的中文提示居然都變成了亂碼了(話說有中文提示也是我選擇他很重要的理由?。?。還好官方也給出了解決方案:

    1. 打開CMD.exe命令行窗口
    2. 通過 chcp命令改變代碼頁,UTF-8的代碼頁為65001
      ? chcp 65001
      執(zhí)行該操作后,代碼頁就被變成UTF-8了。但是,在窗口中仍舊不能正確顯示UTF-8字符。
    3. 修改窗口屬性,改變字體
      ? 在命令行標(biāo)題欄上點(diǎn)擊右鍵,選擇'屬性'->'字體',將字體修改為True Type字體'Lucida Console',然后點(diǎn)擊確定將屬性應(yīng)用到當(dāng)前窗口。
性能測試

單核8G的虛擬機(jī),這個(gè)速度還算可以吧,可能是數(shù)據(jù)讀寫不在同一臺機(jī)子上網(wǎng)絡(luò)傳輸也消耗了不少時(shí)間。

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多