• <nav id="dstbx"></nav>

    <nav id="dstbx"></nav>
    1. <form id="dstbx"></form>
    2. <small id="dstbx"></small>

      教育行業A股IPO第一股(股票代碼 003032)

      全國咨詢/投訴熱線:400-618-4000

      Sqoop增量導入數據操作步驟

      更新時間:2021年01月26日18時24分 來源:傳智教育 瀏覽次數:

      當MySQL表中的數據發生了新增或修改變化,需要更新HDFS上對應的數據時,就可以使用Sqoop的增量導入功能。Sqoop目前支持兩種增量導入模式:append模式和lastmodified模式。其中,append模式主要針對INSERT新增數據的增量導入;lastmodified模式主要針對UPDATE修改數據的增量導入。

      在進行增量導入操作時,首先必須指定“--check-column”參數,用來檢查數據表列字段,從而確定哪些數據需要執行增量導入。例如,在執行append模式增量導入時,通常會將“--check-column”參數指定為具有連續自增功能的列(如主鍵id);而執行lastmodified模式增量導入時,通常會將“--check-column”參數必須指定為日期時間類型的列(如date或timestamp類型的列)。

      同時,還可以為增量導入操作指定“--last-value”參數,用于只增量導入last-value值以后的記錄數據,然后存儲到之前HDFS上相應目錄下的一個單獨文件中。否則,會導入原表中所有數據到HDFS上相應目錄下的一個單獨文件中。

      為了演示增量導入操作,首先向emp表添加新數據,指令如下所示。

      INSERT INTO `emp` VALUES ('1206', 'itcast', 'java dev', '50000', 'AC');
      接下來,就針對emp表數據的新增變化執行append模式的增量導入,具體指令示例如下。
      $ sqoop import \
      
      --connect jdbc:mysql://hadoop01:3306/userdb \
      
      --username root \
      
      --password 123456 \
      
      --target-dir /sqoopresult \
      
      --table emp \
      
      --num-mappers 1 \
      
      **--incremental append** \
      
      **--check-column id** \
      
      **--last-value 1205

      上述增量導入的操作指令與10.4.1小節所示的指令基本相同,為了實現增量導入功能,新添加了三個參數。其中,“--incremental append”指定了使用增量導入的模式為append;“--check-column id”指定了針對表emp數據的id主鍵進行檢查;“--last-value 1205”指定了針對id值為1205以后的數據執行增量導入。

      執行上述指令后,從HDFS UI界面查看增量導入結果,如圖1所示。

      圖1 增量導入結果文件

      從圖1可以看出,增量導入的數據在指定的目標目錄下創建了一個新的結果文件part-m-00001,可以使用hadoop fs -cat命令查看數據,如圖2所示。

      1611656023510_22.jpg

      圖2 增量導入結果文件內容

      從圖2可以看出,當設置了“--last-value 1205”參數后,增量導入的新結果文件只會把指定值后的數據添加到結果文件中。

      這里只演示了開發中常用的append模式的增量導入操作,讀者也可以根據說明進行另一種lastmodified模式增量導入的操作。但需要注意的是,必須保證lastmodified模式增量導入的數據具有日期時間類型的列字段。


      猜你喜歡:

      怎樣安裝和配置Sqoop?

      Mysql查詢題:多表連接,找不到連接條件怎么處理?

      Mysql中怎么刪除數據表?

      傳智教育大數據工程師培訓課程

      0 分享到:
      神马影院我不卡