大數(shù)據(jù)分析與應(yīng)用微課版-課件 項(xiàng)目6 電商產(chǎn)品數(shù)據(jù)遷移_第1頁(yè)
大數(shù)據(jù)分析與應(yīng)用微課版-課件 項(xiàng)目6 電商產(chǎn)品數(shù)據(jù)遷移_第2頁(yè)
大數(shù)據(jù)分析與應(yīng)用微課版-課件 項(xiàng)目6 電商產(chǎn)品數(shù)據(jù)遷移_第3頁(yè)
大數(shù)據(jù)分析與應(yīng)用微課版-課件 項(xiàng)目6 電商產(chǎn)品數(shù)據(jù)遷移_第4頁(yè)
大數(shù)據(jù)分析與應(yīng)用微課版-課件 項(xiàng)目6 電商產(chǎn)品數(shù)據(jù)遷移_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

項(xiàng)目6

電商產(chǎn)品數(shù)據(jù)遷移2023年2月根據(jù)電商產(chǎn)品數(shù)據(jù)統(tǒng)計(jì)結(jié)果創(chuàng)建數(shù)據(jù)表并查看目錄Content1使用Sqoop將Hive中電商產(chǎn)品數(shù)據(jù)統(tǒng)計(jì)結(jié)果導(dǎo)出2項(xiàng)目導(dǎo)言零

在大數(shù)據(jù)技術(shù)興起前,諸多企業(yè)的數(shù)據(jù)存儲(chǔ)業(yè)務(wù)均交由關(guān)系型數(shù)據(jù)庫(kù)處理,大數(shù)據(jù)技術(shù)興起后很多企業(yè)的數(shù)據(jù)處理業(yè)務(wù)都在向大數(shù)據(jù)技術(shù)轉(zhuǎn)型,有大量的數(shù)據(jù)需要進(jìn)行遷移。在早期由于工具的缺乏,數(shù)據(jù)遷移非常困難,Sqoop的出現(xiàn)使得數(shù)據(jù)遷移問(wèn)題得以解決。學(xué)習(xí)目標(biāo)零知識(shí)目標(biāo)了解Sqoop相關(guān)知識(shí);熟悉Sqoop中常用連接器;熟悉Sqoop中配置數(shù)據(jù)庫(kù)密碼方式;掌握Sqoop數(shù)據(jù)導(dǎo)入與導(dǎo)出;具有實(shí)現(xiàn)數(shù)據(jù)遷移的能力。技能目標(biāo)具備實(shí)現(xiàn)Sqoop中數(shù)據(jù)庫(kù)密碼配置的能力;具備掌握Sqoop命令使用的能力;具備實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入與導(dǎo)出功能的能力;具備應(yīng)用Sqoop將HDFS中數(shù)據(jù)遷移到MySQL數(shù)據(jù)庫(kù)的能力。技能目標(biāo)具備獲取信息并利用信息能力;具有綜合與系統(tǒng)分析能力;具備換位思考的能力。任務(wù)6-1根據(jù)電商產(chǎn)品數(shù)據(jù)統(tǒng)計(jì)結(jié)果創(chuàng)建數(shù)據(jù)表并查看壹1Sqoop簡(jiǎn)介1.Sqoop介紹Sqoop最早出現(xiàn)于2009年,是一款開(kāi)源工具,作為Hadoop的一個(gè)第三方模塊存在,主要用于Hadoop和關(guān)系型數(shù)據(jù)庫(kù)(MySQL、Oracle等)之間數(shù)據(jù)的傳遞,能夠做到將數(shù)據(jù)從關(guān)系型數(shù)據(jù)庫(kù)導(dǎo)入到Hadoop的HDFS中,以及從Hadoop的文件系統(tǒng)中導(dǎo)出到關(guān)系型數(shù)據(jù)庫(kù),解決了傳統(tǒng)數(shù)據(jù)庫(kù)和Hadoop之間數(shù)據(jù)的遷移問(wèn)題。任務(wù)6-1根據(jù)電商產(chǎn)品數(shù)據(jù)統(tǒng)計(jì)結(jié)果創(chuàng)建數(shù)據(jù)表并查看壹2.Sqoop優(yōu)勢(shì)Sqoop中最大的亮點(diǎn)就是能夠通過(guò)Hadoop的MapReduce使數(shù)據(jù)在關(guān)系型數(shù)據(jù)庫(kù)和HDFS之間進(jìn)行移動(dòng),并充分利用MapReduce并行特點(diǎn)以批處理的方式加快數(shù)據(jù)傳輸。主要優(yōu)勢(shì)如下所示:通過(guò)調(diào)整任務(wù)數(shù)量控制并發(fā)度、配置數(shù)據(jù)庫(kù)訪問(wèn)時(shí)間等操作可以高效且可控的進(jìn)行資源的利用自動(dòng)完成數(shù)據(jù)類型映射與轉(zhuǎn)換,無(wú)需用戶手動(dòng)操作支持MySQL、Oracle、SQLServer、PostgreSQL等多種數(shù)據(jù)庫(kù)010203任務(wù)6-1根據(jù)電商產(chǎn)品數(shù)據(jù)統(tǒng)計(jì)結(jié)果創(chuàng)建數(shù)據(jù)表并查看壹3.Sqoop架構(gòu)(1)Sqoop1架構(gòu)任務(wù)6-1根據(jù)電商產(chǎn)品數(shù)據(jù)統(tǒng)計(jì)結(jié)果創(chuàng)建數(shù)據(jù)表并查看壹3.Sqoop架構(gòu)(2)Sqoop2架構(gòu)任務(wù)6-1根據(jù)電商產(chǎn)品數(shù)據(jù)統(tǒng)計(jì)結(jié)果創(chuàng)建數(shù)據(jù)表并查看壹2Sqoop連接器

Sqoop支持MySQL、Oracle、PostgreSQL、SQLServer、DB2等多種連接器,以及支持MySQL和PostgreSQL數(shù)據(jù)庫(kù)的快速路徑連接器(專門連接器,用于批次傳輸數(shù)據(jù)的高吞吐量),能夠?qū)崿F(xiàn)數(shù)據(jù)在Hadoop和連接器支持的外部倉(cāng)庫(kù)之間進(jìn)行高效的傳輸。DatabaseVersion-directsupportConnectstringHSQLDB1.8.0+Nojdbc:hsqldb:*//MySQL5.0+Yesjdbc:mysql:*//Oracle10.2.0+Nojdbc:oracle:*//PostgreSQL8.3+Yesjdbc:postgresql://任務(wù)6-1根據(jù)電商產(chǎn)品數(shù)據(jù)統(tǒng)計(jì)結(jié)果創(chuàng)建數(shù)據(jù)表并查看壹3Sqoop配置數(shù)據(jù)庫(kù)密碼方式03文件模式主要應(yīng)用于Sqoop腳本定時(shí)執(zhí)行的場(chǎng)景,可以通過(guò)--password-file參數(shù)讀取文件中存儲(chǔ)的密碼實(shí)現(xiàn)數(shù)據(jù)庫(kù)的訪問(wèn)。04別名模式是目前最安全的一種方式,解決了文件模式中使用明文保存密碼的問(wèn)題。01明文模式是最為簡(jiǎn)單的方式,在使用Sqoop命令時(shí)會(huì)通過(guò)--password參數(shù)將密碼直接寫入到命令中,但由于命令行中包含密碼,會(huì)帶來(lái)密碼泄露的風(fēng)險(xiǎn)。02交互模式是最常用的一種密碼輸入模式,在使用Sqoop命令時(shí)通過(guò)-P參數(shù)的設(shè)置,訪問(wèn)時(shí)需要按回車鍵后,會(huì)顯示密碼輸入提示,之后密碼在輸入時(shí)是不顯示的。Sqoop支持4種輸入密碼的模式任務(wù)6-1根據(jù)電商產(chǎn)品數(shù)據(jù)統(tǒng)計(jì)結(jié)果創(chuàng)建數(shù)據(jù)表并查看壹4列出所有數(shù)據(jù)庫(kù)

在Sqoop中,可以使用“l(fā)ist-databases”命令查看關(guān)系型數(shù)據(jù)庫(kù)中全部的數(shù)據(jù)庫(kù)名稱并返回;在使用時(shí),只需對(duì)通用參數(shù)進(jìn)行設(shè)置即可連接數(shù)據(jù)庫(kù)并返回?cái)?shù)據(jù)庫(kù)名稱,語(yǔ)法格式如下所示。sqooplist-databases<通用參數(shù)>例如,指定賬戶和密碼連接MySQL數(shù)據(jù)庫(kù)查看全部數(shù)據(jù)庫(kù)名稱[root@master~]#sqooplist-databases--connectjdbc:mysql://localhost:3306/--usernameroot--password123456任務(wù)6-1根據(jù)電商產(chǎn)品數(shù)據(jù)統(tǒng)計(jì)結(jié)果創(chuàng)建數(shù)據(jù)表并查看壹5列出所有表在數(shù)據(jù)庫(kù)查看完成后,Sqoop還提供了一個(gè)“l(fā)ist-tables”命令,能夠查看關(guān)系型數(shù)據(jù)庫(kù)中是否存在Hive元數(shù)據(jù)庫(kù)中的所有表,與“l(fā)ist-databases”命令的使用基本相同,語(yǔ)法格式如下所示。sqooplist-tables<通用參數(shù)>例如,使用list-tables命令查詢MySQL中所有表[root@master~]#sqooplist-tables--connectjdbc:mysql://localhost:3306/hive_metadata--usernameroot--password123456Sqoop明文方式連接MySQL數(shù)據(jù)庫(kù)Step1連接MySQL數(shù)據(jù)庫(kù),進(jìn)入phone數(shù)據(jù)庫(kù),創(chuàng)建表Step2使用list-tables命令查詢phone數(shù)據(jù)庫(kù)中所有表,驗(yàn)證表是否創(chuàng)建成功Step3使用Sqoop連接MySQL數(shù)據(jù)庫(kù),并對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作任務(wù)6-1根據(jù)電商產(chǎn)品數(shù)據(jù)統(tǒng)計(jì)結(jié)果創(chuàng)建數(shù)據(jù)表并查看壹任務(wù)6-2使用Sqoop將Hive中電商產(chǎn)品數(shù)據(jù)統(tǒng)計(jì)結(jié)果導(dǎo)出貳1Sqoop數(shù)據(jù)導(dǎo)入與導(dǎo)出1.數(shù)據(jù)導(dǎo)入

在使用Sqoop進(jìn)行數(shù)據(jù)的導(dǎo)入時(shí),Sqoop會(huì)對(duì)數(shù)據(jù)表以及表中的列和數(shù)據(jù)類型進(jìn)行檢查,之后Sqoop代碼生成器通過(guò)這些信息來(lái)創(chuàng)建對(duì)應(yīng)表的類,用于保存從表中抽取的記錄。任務(wù)6-2使用Sqoop將Hive中電商產(chǎn)品數(shù)據(jù)統(tǒng)計(jì)結(jié)果導(dǎo)出貳1Sqoop數(shù)據(jù)導(dǎo)入與導(dǎo)出數(shù)據(jù)導(dǎo)入的大致流程Sqoop通過(guò)JDBC讀取導(dǎo)入的數(shù)據(jù)表的結(jié)構(gòu)啟動(dòng)MapReducer作業(yè),讀取數(shù)據(jù)并切分?jǐn)?shù)據(jù),然后創(chuàng)建Map并將關(guān)系型數(shù)據(jù)庫(kù)中的數(shù)據(jù)設(shè)置key-value形式交由Map映射數(shù)據(jù)類型為Java的數(shù)據(jù)類型,如varchar、number等被映射成String、int等,并根據(jù)數(shù)據(jù)表信息生成序列化類提交到Hadoop在載入過(guò)程中啟動(dòng)作業(yè),并通過(guò)JDBC讀取數(shù)據(jù)表中的內(nèi)容后,使用Sqoop生成的列執(zhí)行反序列化操作使用Sqoop類進(jìn)行反序列化,并將記錄寫入到HDFS0103020405任務(wù)6-2使用Sqoop將Hive中電商產(chǎn)品數(shù)據(jù)統(tǒng)計(jì)結(jié)果導(dǎo)出貳1Sqoop數(shù)據(jù)導(dǎo)入與導(dǎo)出

在Sqoop中,數(shù)據(jù)導(dǎo)入通過(guò)Import命令實(shí)現(xiàn),能夠?qū)㈥P(guān)系型數(shù)據(jù)庫(kù)中的數(shù)據(jù)導(dǎo)入到HDFS存儲(chǔ)平臺(tái)中,便于使用大數(shù)據(jù)技術(shù)對(duì)數(shù)據(jù)進(jìn)行分析,Import命令不僅可以將數(shù)據(jù)追加到HDFS中已存在的數(shù)據(jù)集,還可以將數(shù)據(jù)導(dǎo)入到普通文件中。sqoopimport<通用參數(shù)><import命令參數(shù)>通用參數(shù):指主要是針對(duì)關(guān)系型數(shù)據(jù)庫(kù)鏈接的一些參數(shù),如JDBC連接或數(shù)據(jù)庫(kù)賬戶密碼等設(shè)置參數(shù)描述--connect連接關(guān)系型數(shù)據(jù)庫(kù)的URL--connection-manager指定要使用的連接管理類--driverHadoop根目錄--hadoop-home覆寫$HADOOP_HOME--help打印幫助指令--password-file設(shè)置包含驗(yàn)證密碼的文件的路徑-P從控制臺(tái)讀取密碼--password連接數(shù)據(jù)庫(kù)的密碼--username連接數(shù)據(jù)庫(kù)的用戶名--verbose在控制臺(tái)打印出詳細(xì)信息任務(wù)6-2使用Sqoop將Hive中電商產(chǎn)品數(shù)據(jù)統(tǒng)計(jì)結(jié)果導(dǎo)出貳1Sqoop數(shù)據(jù)導(dǎo)入與導(dǎo)出

Import命令參數(shù):主要設(shè)置將數(shù)據(jù)導(dǎo)入到HDFS中的位置和倒數(shù)方式以及其他導(dǎo)入的配置選項(xiàng)含義說(shuō)明--append將數(shù)據(jù)追加到HDFS上一個(gè)已經(jīng)存在的數(shù)據(jù)集上--as-avrodatafile將數(shù)據(jù)導(dǎo)入到Avro數(shù)據(jù)文件--as-sequencefile將數(shù)據(jù)導(dǎo)入到SequenceFile--as-textfile將數(shù)據(jù)導(dǎo)入到普通文本文件(默認(rèn))--columns指定要導(dǎo)入的字段,多個(gè)字段通過(guò)“,”逗號(hào)連接--delete-target-dir如果指定目錄存在,則先刪除掉--direct如果數(shù)據(jù)庫(kù)存在,請(qǐng)使用直接連接器--fetch-size一次要從數(shù)據(jù)庫(kù)讀取的條目數(shù)--inline-lob-limit<n>設(shè)置內(nèi)聯(lián)的LOB對(duì)象的大小-m,--num-mappers使用n個(gè)map任務(wù)并行導(dǎo)入數(shù)據(jù)--e,--query導(dǎo)入的查詢語(yǔ)句--split-by指定按照哪個(gè)列去分割數(shù)據(jù)--table導(dǎo)入的原表表名--target-dir導(dǎo)入HDFS的目標(biāo)路徑--warehouse-dirHDFS存放表的根路徑--where導(dǎo)出時(shí)所使用的查詢條件--z,--compress啟用壓縮--compression-code指定Hadoop的壓縮編碼類--null-string為字符串列的空值寫入的字符串--null-non-string非字符串列將為空值寫入的字符串任務(wù)6-2使用Sqoop將Hive中電商產(chǎn)品數(shù)據(jù)統(tǒng)計(jì)結(jié)果導(dǎo)出貳1Sqoop數(shù)據(jù)導(dǎo)入與導(dǎo)出2.數(shù)據(jù)導(dǎo)出Sqoop會(huì)根據(jù)數(shù)據(jù)庫(kù)連接字符串來(lái)選擇一個(gè)導(dǎo)出方法,對(duì)于大部分系統(tǒng)來(lái)說(shuō),Sqoop會(huì)采用JDBC方式,將HDFS中數(shù)據(jù)導(dǎo)出到關(guān)系型數(shù)據(jù)庫(kù)中。任務(wù)6-2使用Sqoop將Hive中電商產(chǎn)品數(shù)據(jù)統(tǒng)計(jì)結(jié)果導(dǎo)出貳1Sqoop數(shù)據(jù)導(dǎo)入與導(dǎo)出2.數(shù)據(jù)導(dǎo)出具體過(guò)程第二步:根據(jù)獲取到的元數(shù)據(jù)的信息,sqoop生成一個(gè)Java類,是用來(lái)進(jìn)行數(shù)據(jù)傳輸?shù)妮d體,具有序列化和反序列化功能;第三步:?jiǎn)?dòng)MapReduce作業(yè)第四步:Sqoop利用上面生成的這個(gè)java類,并行的從HDFS中讀取數(shù)據(jù)第五步:根據(jù)導(dǎo)出表的元數(shù)據(jù)信息和讀取到的數(shù)據(jù),每個(gè)Map作業(yè)逗號(hào)生成多個(gè)INSERT語(yǔ)句,多個(gè)Map作業(yè)會(huì)并行的想數(shù)據(jù)庫(kù)插入數(shù)據(jù)第一步:Sqoop通過(guò)JDBC訪問(wèn)關(guān)系型數(shù)據(jù)庫(kù),獲取數(shù)據(jù)庫(kù)表的元數(shù)據(jù)信息;任務(wù)6-2使用Sqoop將Hive中電商產(chǎn)品數(shù)據(jù)統(tǒng)計(jì)結(jié)果導(dǎo)出貳1Sqoop數(shù)據(jù)導(dǎo)入與導(dǎo)出Export命令使用的語(yǔ)法格式sqoopexport<通用參數(shù)><import命令參數(shù)>參數(shù)含義說(shuō)明--validata啟用數(shù)據(jù)副本驗(yàn)證功能,僅支持單表拷貝,可以指定驗(yàn)證的類--validation-threshold指定驗(yàn)證門限所使用的類--direct如果數(shù)據(jù)庫(kù)存在,請(qǐng)使用直接連接器--export-dir存放數(shù)據(jù)的HDFS的源目錄-m,--num-mappers使用n個(gè)map任務(wù)并行導(dǎo)出--table導(dǎo)出的目的表名稱--call導(dǎo)出數(shù)據(jù)調(diào)用的指定存儲(chǔ)過(guò)程名--updata-key更新參考的列名稱,多個(gè)列名使用逗號(hào)分隔--updata-mode指定更新策略,包括:updataonly(默認(rèn))、allowinsert--input-null-string使用指定字符串,替換字符串類型值為null的列--input-null-non-string使用指定字符串,替換非字符串類型值為null的列--staging-table創(chuàng)建一張臨時(shí)表,用于存放所有事務(wù)的結(jié)果,然后將所有事務(wù)結(jié)果一次性導(dǎo)入到目標(biāo)表中,防止錯(cuò)誤--clear-staging-table清除工作區(qū)中臨時(shí)存放的數(shù)據(jù)--batch使用批量模式導(dǎo)出任務(wù)6-2使用Sqoop將Hive中電商產(chǎn)品數(shù)據(jù)統(tǒng)計(jì)結(jié)果導(dǎo)出貳2Sqoop其他

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論