您好,登錄后才能下訂單哦!
數(shù)據(jù)遷移工具Sqoop怎么用,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
Sqoop 是一個用來將Hadoop和關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)相互轉(zhuǎn)移的工具,它是Hadoop環(huán)境下連接關(guān)系數(shù)據(jù)庫與Hadoop存儲系統(tǒng)的橋梁,支持多種關(guān)系型數(shù)據(jù)源和Hive、HDFS、Hbase的相互導(dǎo)入。支持全表導(dǎo)入,也支持增量數(shù)據(jù)導(dǎo)入機制,Sqoop工作機制利用MapReduce分布式批處理,加快了數(shù)據(jù)傳輸速度和容錯性。
選擇Sqoop理由:
1、可以高效的利用資源,可以通過調(diào)整任務(wù)數(shù)來控制任務(wù)的并發(fā)度。
2、可以自動地完成數(shù)據(jù)類型映射與轉(zhuǎn)換。導(dǎo)入的數(shù)據(jù)是有類型的,它可以自動根據(jù)數(shù)據(jù)庫中的類型轉(zhuǎn)換到Hadoop中,當(dāng)然也可以自定義他們的映射關(guān)系。
3、它支持多種數(shù)據(jù)庫,eg:mysql、Oracle、PostgreSQL。
Sqoop工作原理:
Sqoop利用MapReduce并行特點以批處理的方式加快數(shù)據(jù)傳輸,從而提供并發(fā)特征和容錯。Sqoop主要通過jdbc連接關(guān)系型數(shù)據(jù)庫,理論上只有關(guān)系型數(shù)據(jù)庫支持JDBC都可以使用Sqoop與HDFS進(jìn)行數(shù)據(jù)交互。
1、Sqoop從關(guān)系型數(shù)據(jù)庫導(dǎo)入HDFS的原理:用戶先輸入一個Sqoop import 命令,Sqoop會從關(guān)系型數(shù)據(jù)庫中獲取元數(shù)據(jù)信息,包括庫信息、表有哪些字段及字段類型等,獲取信息后會將導(dǎo)入命令轉(zhuǎn)換為基于Map的MapReduce任務(wù)。會開啟很多map任務(wù),每個map任務(wù)讀取一部分?jǐn)?shù)據(jù),多個map任務(wù)并行完成數(shù)據(jù)復(fù)制到HDFS分布式文件系統(tǒng)上。
2、Sqoop導(dǎo)出功能原理:用戶輸入export命令,Sqoop會獲取關(guān)系型數(shù)據(jù)表結(jié)構(gòu)信息,建立與Hadoop字段有關(guān)系型數(shù)據(jù)庫表字段的映射關(guān)系,將命令轉(zhuǎn)換為基于Map的MapReduce作用,生產(chǎn)很多Map任務(wù),并行地從HDFS中讀取數(shù)據(jù)文件,將這個數(shù)據(jù)復(fù)制到數(shù)據(jù)庫中。
Sqoop版本和架構(gòu)
Sqoop存在兩個版本,1.4.x和1.99.x,通常簡稱為sqoop1和sqoop2
Sqoop1架構(gòu)師使用Sqoop客戶端直接提交的方式,訪問方式是CLI控制臺方式進(jìn)行訪問,在命令或腳本中指定數(shù)據(jù)庫名及密碼。
Sqoop2架構(gòu)引入了Sqoop Server,集中化管理Connector,提供多種訪問方式,如CLI、Web UI、REST API,同時Sqoop2通過CLI方式訪問會有一個交互式界面,使輸入的密碼信息不被看到。
Sqoop不僅可以用于關(guān)系型數(shù)據(jù)庫與HDFS文件系統(tǒng)之間進(jìn)行數(shù)據(jù)轉(zhuǎn)換,也可以將數(shù)據(jù)從關(guān)系型數(shù)據(jù)庫傳輸至Hive或Hbase,而對于數(shù)據(jù)從Hive或者Hbase 傳輸?shù)疥P(guān)系型數(shù)據(jù)庫來說,則可以從Hive或者Hbase將數(shù)據(jù)提取至HDFS,然后使用Sqoop將上一步的輸出導(dǎo)入到關(guān)系數(shù)據(jù)庫。
使用Sqoop增量導(dǎo)入有append 和 lastmodified兩種模式,lastmodified模式區(qū)別于apend是可以指定一個時間戳字段,按時間順序?qū)?,這個模型可以指定增量數(shù)據(jù)在HDFS的方式,比如最終增量結(jié)果為一個文件。
需要在應(yīng)用的主要參數(shù):
-check-column:指定增量導(dǎo)入的依賴字段,通常為自增的主鍵id或者時間戳
-incremental:指定導(dǎo)入模式(append 或者lastmodified)
-last-value:指定導(dǎo)入的上次最大值,也是這次的開始值。
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。