欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

hive從mysql導(dǎo)入數(shù)據(jù)量變多的解決方案

 更新時(shí)間:2021年01月01日 08:49:01   作者:京東  
這篇文章主要介紹了hive從mysql導(dǎo)入數(shù)據(jù)量變多的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

原始導(dǎo)數(shù)命令:

bin/sqoop import -connect jdbc:mysql://192.168.169.128:3306/yubei -username root -password 123456 -table yl_city_mgr_evt_info --split-by rec_id -m 4 --fields-terminated-by "\t" --lines-terminated-by "\n" --hive-import --hive-overwrite -create-hive-table -delete-target-dir -hive-database default -hive-table yl_city_mgr_evt_info

原因分析:可能是mysql中字段里面有'\n'等分隔符,導(dǎo)入hive時(shí)默認(rèn)以'n'作換行符,導(dǎo)致hive中的記錄數(shù)變多。

解決方法:

導(dǎo)入數(shù)據(jù)時(shí)加上--hive-drop-import-delims選項(xiàng),會(huì)刪除字段中的\n,\r,\01。

最終導(dǎo)數(shù)命令:

bin/sqoop import -connect jdbc:mysql://192.168.169.128:3306/yubei -username root -password 123456 -table yl_city_mgr_evt_info --split-by rec_id -m 4 --hive-drop-import-delims --fields-terminated-by "\t" --lines-terminated-by "\n" --hive-import --hive-overwrite -create-hive-table -delete-target-dir -hive-database default -hive-table yl_city_mgr_evt_info

參考官方文檔:https://sqoop.apache.org/docs/1.4.7/SqoopUserGuide.html

補(bǔ)充:Sqoop導(dǎo)入MySQL數(shù)據(jù)到Hive遇到的坑

1.sqoop導(dǎo)入到HDFS

1.1執(zhí)行sqoop job,會(huì)自動(dòng)更新last value

# sqoop 增量導(dǎo)入腳本
bin/sqoop job --create sqoop_hdfs_test02 -- import \
--connect jdbc:mysql://localhost:3306/pactera_test \
--username root \
--password 123456 \
--table student \
--target-dir /user/sqoop/test002/ \
--fields-terminated-by "\t" \
--check-column last_modified \
--incremental lastmodified \
--last-value "2018-12-12 00:03:00" \
--append

說(shuō)明:--append 參數(shù)是必須的,要不然第二次運(yùn)行job 會(huì)報(bào)錯(cuò),如下:

至此,sqoop job 已建設(shè)完畢!

2.Hive創(chuàng)建表,并讀取sqoop導(dǎo)入的數(shù)據(jù)

create external table if not exists student_hive (SId int,Sname string ,Sage string,Ssex string , last_modified Timestamp) 
row format delimited fields terminated by '\t' location 'hdfs://node01:8020/user/sqoop/test002/';

注意:此處hive中時(shí)間的格式為timestamp,設(shè)置為date DB數(shù)據(jù)無(wú)法正常加載。

第一次全量加載,整條路線(xiàn)完全OK,hive表可以查詢(xún)到數(shù)據(jù)。

-----------------------重點(diǎn)分割線(xiàn)-----------------------

* sqoop lastmodified格式的增量加載,會(huì)將last-value 保存為job執(zhí)行的系統(tǒng)時(shí)間,若測(cè)試數(shù)據(jù)庫(kù)的check-column 小于當(dāng)前系統(tǒng)時(shí)間(即上一個(gè)job的last-value),則數(shù)據(jù)將不被加載。

如SId=6 就沒(méi)有被加載,遂改為今日時(shí)間(2018-12-26 17:05)進(jìn)行數(shù)據(jù)測(cè)試,數(shù)據(jù)成功被加載!喲呵!!

總結(jié):

使用lastmodified格式,進(jìn)行sqoop增量導(dǎo)入時(shí),

1.注意--append的使用;

2.last-value為job運(yùn)行的系統(tǒng)時(shí)間,在數(shù)據(jù)測(cè)試時(shí),要保證數(shù)據(jù)的準(zhǔn)確,數(shù)據(jù)的自增長(zhǎng)。

3.一切皆有定數(shù),查看資料,準(zhǔn)確定位自己系統(tǒng)遇到的問(wèn)題

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • Mysql鎖內(nèi)部實(shí)現(xiàn)機(jī)制之C源碼解析

    Mysql鎖內(nèi)部實(shí)現(xiàn)機(jī)制之C源碼解析

    數(shù)據(jù)庫(kù)之所以要加鎖,因?yàn)閿?shù)據(jù)庫(kù)是一個(gè)多用戶(hù)使用的共享資源。當(dāng)多個(gè)用戶(hù)并發(fā)地存取數(shù)據(jù)時(shí),在數(shù)據(jù)庫(kù)中就會(huì)產(chǎn)生多個(gè)事務(wù)同時(shí)存取同一數(shù)據(jù)的情況。若對(duì)并發(fā)操作不加控制就可能會(huì)讀取和存儲(chǔ)不正確的數(shù)據(jù),破壞數(shù)據(jù)庫(kù)的一致性
    2022-08-08
  • 淺談InnoDB隔離模式的使用對(duì)MySQL性能造成的影響

    淺談InnoDB隔離模式的使用對(duì)MySQL性能造成的影響

    這篇文章主要介紹了InnoDB隔離模式的使用對(duì)MySQL性能造成的影響,作為基于MySQL的最出名的數(shù)據(jù)庫(kù),InnoDB相關(guān)的性能問(wèn)題一直是DBA關(guān)注的熱點(diǎn),需要的朋友可以參考下
    2015-06-06
  • MySQL指令進(jìn)行分頁(yè)顯示的使用示例

    MySQL指令進(jìn)行分頁(yè)顯示的使用示例

    本文主要介紹了MySQL指令進(jìn)行分頁(yè)顯示的使用示例,主要使用LIMIT命令來(lái)實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • Mysql百萬(wàn)級(jí)分頁(yè)優(yōu)化技巧

    Mysql百萬(wàn)級(jí)分頁(yè)優(yōu)化技巧

    這篇文章主要介紹了Mysql百萬(wàn)級(jí)分頁(yè)優(yōu)化技巧,包括普通分頁(yè)和優(yōu)化分頁(yè)兩種,在數(shù)據(jù)量比較大的時(shí)候,我們盡量去利用索引來(lái)優(yōu)化語(yǔ)句。下面通過(guò)本文給大家詳細(xì)講解,一起看看吧
    2016-12-12
  • Mysql如何設(shè)置表主鍵id從1開(kāi)始遞增

    Mysql如何設(shè)置表主鍵id從1開(kāi)始遞增

    這篇文章主要介紹了Mysql如何設(shè)置表主鍵id從1開(kāi)始遞增問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • linux下改良版本mysqldump來(lái)備份MYSQL數(shù)據(jù)庫(kù)

    linux下改良版本mysqldump來(lái)備份MYSQL數(shù)據(jù)庫(kù)

    我的備份腳本都是在凌晨執(zhí)行的,經(jīng)常在慢查詢(xún)?nèi)罩纠锩婵吹竭@樣的信息:select * from table1; 之前一直很納悶,最后才了解到原來(lái)是MYSQLDUMP搞的鬼。
    2008-07-07
  • Mysql數(shù)據(jù)庫(kù)中數(shù)據(jù)表的優(yōu)化、外鍵與三范式用法實(shí)例分析

    Mysql數(shù)據(jù)庫(kù)中數(shù)據(jù)表的優(yōu)化、外鍵與三范式用法實(shí)例分析

    這篇文章主要介紹了Mysql數(shù)據(jù)庫(kù)中數(shù)據(jù)表的優(yōu)化、外鍵與三范式用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Mysql數(shù)據(jù)庫(kù)中數(shù)據(jù)表的優(yōu)化、外鍵與三范式相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2019-11-11
  • MySql修改數(shù)據(jù)庫(kù)編碼為UTF8避免造成亂碼問(wèn)題

    MySql修改數(shù)據(jù)庫(kù)編碼為UTF8避免造成亂碼問(wèn)題

    mysql 創(chuàng)建數(shù)據(jù)庫(kù)時(shí)指定編碼很重要,很多開(kāi)發(fā)者都使用了默認(rèn)編碼,亂碼問(wèn)題可是防不勝防,下面與大家分享下通過(guò)修改數(shù)據(jù)庫(kù)默認(rèn)編碼方式為UTF8來(lái)減少數(shù)據(jù)庫(kù)創(chuàng)建時(shí)的設(shè)置,避免因粗心造成的亂碼問(wèn)題
    2013-06-06
  • mysql中獲取一天、一周、一月時(shí)間數(shù)據(jù)的各種sql語(yǔ)句寫(xiě)法

    mysql中獲取一天、一周、一月時(shí)間數(shù)據(jù)的各種sql語(yǔ)句寫(xiě)法

    今天抽時(shí)間整理了一篇mysql中與天、周、月有關(guān)的時(shí)間數(shù)據(jù)的sql語(yǔ)句的各種寫(xiě)法,部分是收集資料,全部手工整理,自己學(xué)習(xí)的同時(shí),分享給大家,并首先默認(rèn)創(chuàng)建一個(gè)表、插入2條數(shù)據(jù),便于部分?jǐn)?shù)據(jù)的測(cè)試,其中部分名詞或函數(shù)進(jìn)行了解釋說(shuō)明。直入主題
    2014-05-05
  • MySQL基本命令、常用命令總結(jié)

    MySQL基本命令、常用命令總結(jié)

    這篇文章主要介紹了MySQL基本命令、常用命令總結(jié),需要的朋友可以參考下
    2014-03-03

最新評(píng)論