字段类型 sqoop_数据迁移工具Sqoop
熬過去,出眾。
熬不過,出局。
這是最真實的人生,人都是熬過來的。
Sqoop 是一個用來將Hadoop和關系型數據庫中的數據相互轉移的工具,它是Hadoop環境下連接關系數據庫與Hadoop存儲系統的橋梁,支持多種關系型數據源和Hive、HDFS、Hbase的相互導入。支持全表導入,也支持增量數據導入機制,Sqoop工作機制利用MapReduce分布式批處理,加快了數據傳輸速度和容錯性。
選擇Sqoop理由:
1、可以高效的利用資源,可以通過調整任務數來控制任務的并發度。
2、可以自動地完成數據類型映射與轉換。導入的數據是有類型的,它可以自動根據數據庫中的類型轉換到Hadoop中,當然也可以自定義他們的映射關系。
3、它支持多種數據庫,eg:mysql、Oracle、PostgreSQL。
Sqoop工作原理:
Sqoop利用MapReduce并行特點以批處理的方式加快數據傳輸,從而提供并發特征和容錯。Sqoop主要通過jdbc連接關系型數據庫,理論上只有關系型數據庫支持JDBC都可以使用Sqoop與HDFS進行數據交互。
1、Sqoop從關系型數據庫導入HDFS的原理:用戶先輸入一個Sqoop import 命令,Sqoop會從關系型數據庫中獲取元數據信息,包括庫信息、表有哪些字段及字段類型等,獲取信息后會將導入命令轉換為基于Map的MapReduce任務。會開啟很多map任務,每個map任務讀取一部分數據,多個map任務并行完成數據復制到HDFS分布式文件系統上。
2、Sqoop導出功能原理:用戶輸入export命令,Sqoop會獲取關系型數據表結構信息,建立與Hadoop字段有關系型數據庫表字段的映射關系,將命令轉換為基于Map的MapReduce作用,生產很多Map任務,并行地從HDFS中讀取數據文件,將這個數據復制到數據庫中。
Sqoop版本和架構
Sqoop存在兩個版本,1.4.x和1.99.x,通常簡稱為sqoop1和sqoop2
Sqoop1架構師使用Sqoop客戶端直接提交的方式,訪問方式是CLI控制臺方式進行訪問,在命令或腳本中指定數據庫名及密碼。
Sqoop2架構引入了Sqoop Server,集中化管理Connector,提供多種訪問方式,如CLI、Web UI、REST API,同時Sqoop2通過CLI方式訪問會有一個交互式界面,使輸入的密碼信息不被看到。
Sqoop不僅可以用于關系型數據庫與HDFS文件系統之間進行數據轉換,也可以將數據從關系型數據庫傳輸至Hive或Hbase,而對于數據從Hive或者Hbase 傳輸到關系型數據庫來說,則可以從Hive或者Hbase將數據提取至HDFS,然后使用Sqoop將上一步的輸出導入到關系數據庫。
使用Sqoop增量導入有append 和 lastmodified兩種模式,lastmodified模式區別于apend是可以指定一個時間戳字段,按時間順序導入,這個模型可以指定增量數據在HDFS的方式,比如最終增量結果為一個文件。
需要在應用的主要參數:
-check-column:指定增量導入的依賴字段,通常為自增的主鍵id或者時間戳
-incremental:指定導入模式(append 或者lastmodified)
-last-value:指定導入的上次最大值,也是這次的開始值。
總結
以上是生活随笔為你收集整理的字段类型 sqoop_数据迁移工具Sqoop的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python转换函数使用_Python
- 下一篇: go语言io reader_Go语言中的