4.1sqoop從兩張表中導(dǎo)入數(shù)據(jù)

Apache Sqoop Cookbook 英文版-翻譯學(xué)習(xí)!!
更多信息https://blue-shadow.top/
前幾章介紹了在源數(shù)據(jù)庫系統(tǒng)上有一個輸入表的用例, 您需要將表作為一個整體或一個部分傳輸?shù)?Hadoop 系統(tǒng)中。另一方面, 本章將重點介紹更高級的用例,
其中需要從多個表中導(dǎo)入數(shù)據(jù), 或者需要通過調(diào)用各種數(shù)據(jù)庫函數(shù)來自定義傳輸?shù)臄?shù)據(jù),對于本章我們稍微改變了測試表cities配猫。

4.1從兩張表中導(dǎo)入數(shù)據(jù)

問題

您需要導(dǎo)入一個主表;但是, 此表已規(guī)范化。需要導(dǎo)入的值存儲在一個字典表中, 主表僅包含指向字典中的值勒葱,而不是作為原始cities表中的自然鍵的外鍵笋除。
您希望在運行Sqoop之前解決處理這些值, 并導(dǎo)入實際值, 而不是使用counties表的數(shù)值鍵。

解決方案

使用free-form query導(dǎo)入來替換表導(dǎo)入, Sqoop 將允許您指定任何查詢來導(dǎo)入數(shù)據(jù)。使用 --query 參數(shù)來代替 --table 參數(shù), 以獲取你想傳輸?shù)臄?shù)據(jù)解总。
一個規(guī)范化表normcities和countries字典表,為了實現(xiàn)與導(dǎo)入非規(guī)范化表cities相同的輸出, 您可以使用以下 Sqoop 命令:

sqoop import \
--connect jdbc:mysql://mysql.example.com/sqoop \
--username sqoop \
--password sqoop \
--query 'SELECT normcities.id, \
countries.country, \
normcities.city \
FROM normcities \
JOIN countries USING(country_id) \
WHERE $CONDITIONS' \
--split-by id \
--target-dir cities

討論

free-form查詢導(dǎo)入是 Sqoop 的高級功能之一晓铆。與所有軟件高級功能一樣, 它賦予了軟件強大的功能,也就伴隨著重大責(zé)任勺良。
在使用free-form查詢導(dǎo)入時, 有很多事情需要注意。通過使用查詢導(dǎo)入, Sqoop 無法使用數(shù)據(jù)庫通過系統(tǒng)目錄獲取元數(shù)據(jù)骄噪。這也是個使用表導(dǎo)入的原因可能比等效的自由格式查詢快原因尚困。此外, 您還必須手動指定一些附加那些會被自動填充的參數(shù)。除了使用 --query參數(shù)外, 還需要指定參數(shù) --split-by到那些會執(zhí)行并行任務(wù)的列上链蕊,這個參數(shù)模式是綁定到主表中的主鍵上事甜。第三個需要的參數(shù)是 --target-dir,用來指定需要在HDFS導(dǎo)入數(shù)據(jù)的路徑。

Sqoop通過繼承Hadoop的并行性執(zhí)行進行高效數(shù)據(jù)傳輸滔韵。為了幫助Sqoop將查詢拆分為多個可以并行傳輸?shù)膲K,需要在查詢的where子句中包括 CONDITIONS 占位符逻谦。 Sqoop將自動將這些占位符替換成成需要進行每個獨立數(shù)據(jù)傳輸任務(wù)運行時的需要條件。也可以跳過使用CONDITIONS陪蜻,強制要求sqoop只使用一個作業(yè)邦马,通過參數(shù)
--num-mappers 1 參數(shù),但是這個設(shè)置將會對性能造成影響宴卖。Sqoop會為查詢在執(zhí)行多個服務(wù)實例,用于不同的數(shù)據(jù)分片滋将。這個參數(shù)對于一個簡單的連接, 這不會
是一個問題, 但復(fù)雜的查詢建將會是問題。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末症昏,一起剝皮案震驚了整個濱河市随闽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌肝谭,老刑警劉巖掘宪,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異分苇,居然都是意外死亡添诉,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門医寿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來栏赴,“玉大人,你說我怎么就攤上這事靖秩⌒刖欤” “怎么了竖瘾?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長花颗。 經(jīng)常有香客問我捕传,道長,這世上最難降的妖魔是什么扩劝? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任庸论,我火速辦了婚禮,結(jié)果婚禮上棒呛,老公的妹妹穿的比我還像新娘聂示。我一直安慰自己,他們只是感情好簇秒,可當我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布鱼喉。 她就那樣靜靜地躺著,像睡著了一般趋观。 火紅的嫁衣襯著肌膚如雪扛禽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天皱坛,我揣著相機與錄音编曼,去河邊找鬼。 笑死麸恍,一個胖子當著我的面吹牛灵巧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播抹沪,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼刻肄,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了融欧?” 一聲冷哼從身側(cè)響起敏弃,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎噪馏,沒想到半個月后麦到,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡欠肾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年瓶颠,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片刺桃。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡粹淋,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情桃移,我是刑警寧澤屋匕,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站借杰,受9級特大地震影響过吻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蔗衡,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一纤虽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧绞惦,春花似錦廓推、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽呻纹。三九已至堆生,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間雷酪,已是汗流浹背淑仆。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留哥力,地道東北人蔗怠。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像吩跋,于是被迫代替她去往敵國和親寞射。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容