sqoop導入關係型數據庫-解密Sqoop

Sqoop作爲Hadoop與傳統數據庫之間的橋樑,對於數據的導入導出有着重要作用。通過對Sqoop基本語法以及功能的闡述,深刻解密Sqoop的作用和價值。

 一、什麼是Apache Sqoop?

Cloudera開發的Apache開源項目,是SQL-to-Hadoop的縮寫。主要用於在Hadoop(Hive)與傳統的數據庫(mysqlpostgresql...)間進行數據的傳遞,可以將一個關係型數據庫(例如 MySQL ,Oracle ,Postgres等)中的數據導進到HadoopHDFS中,也可以將HDFS的數據導進到關係型數據庫中。在導入數據的時候,既可以導入整個數據庫,也可以導入單個表、所有表或表的部分數據到HDFS,在導入數據的同時可以導成各種格式。除此之外,Sqoop可以從HDFS導出數據到數據庫,所以sqoop它擁有雙向的作用。

wKioL1hSNB6xYCnuAACGS2da1sQ677.png-wh_50

二、Sqoop如何工作?

Sqoop工作也是基於計算框架MapReduce,MapReduce會把提交的SQL導數轉換成MapReduce作業,然後提交到集羣。總體來說分成三個步驟:

1、檢查表詳情

2、創建和提交作業到集羣

3、獲取表記錄並寫入數據到HDFS

wKiom1hSNC6zfJjUAAB_7EQgiY4318.png-wh_50

三、基本語法:

Sqoop是一個帶很多子命令的命令行工具,有很多用來導入、導出、列出數據庫內容等工具。通常我們先列出數據庫有哪些表,然後再去導相應的表。如果想要去看sqoop所有的工具,可以運行sqoop help來查看所有工具列表,在這裏也建議大家習慣使用help,去查找一些使用參數。另外,也可以運行sqoop help tool-name來查看特定工具的幫助(如importexport)。

Sqoop調用的基本語法

wKioL1hSND3D8WlbAAAosb8omM8795.png-wh_50

四、使用Sqoop探索數據庫:

通常在導數據之前我們先要探索一下數據庫,去了解數據庫裏面都有哪些表,一般有兩種方式:

1List-tables:列出所有MySQLloudacre數據庫的表

wKiom1hSNEyhvD7vAAB6B7TLzho733.png-wh_50

2.eval:執行數據庫查詢

wKiom1hSNFqD_bO7AACbjq_gmU4964.png-wh_50

Sqoop作爲Hadoop家族重要的一員,我們需要着重認知和把握,對於我們瞭解和學習大數據有着重要的幫助。平常大家也可以關注一些大數據的資訊,瞭解大數據發展的趨勢和一些行業經典案例。尤其是現在網絡媒體興盛,信息傳播迅速,比如微信服務號,我自己平時就喜歡從上面找一些案例,像大數據cn就很不錯。但是技術永遠都是有門檻的,只有不斷學習交流纔可以不斷進步,最近我在大數據時代學習中心這個服務號也學到了一些其他人分享的經驗,對於我個人幫助也很大。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章