婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > sqoop 實現將postgresql表導入hive表

sqoop 實現將postgresql表導入hive表

熱門標簽:漯河外呼電話系統 美容工作室地圖標注 合肥公司外呼系統運營商 地圖標注和圖片名稱的區別 打電話智能電銷機器人授權 辦公外呼電話系統 海豐有多少商家沒有地圖標注 重慶自動外呼系統定制 外呼調研系統

使用sqoop導入數據至hive常用語句

直接導入hive表

sqoop import 
--connect jdbc:postgresql://ip/db_name
--username user_name 
--table table_name 
--hive-import -m 5 

內部執行實際分三部,1.將數據導入hdfs(可在hdfs上找到相應目錄),2.創建hive表名相同的表,3,將hdfs上數據傳入hive表中

sqoop根據postgresql表創建hive表

sqoop create-hive-table 
--connect jdbc:postgresql://ip/db_name 
--username user_name 
--table table_name 
--hive-table hive_table_name
( --hive-partition-key partition_name若需要分區則加入分區名稱) 

導入hive已經創建好的表中

sqoop import 
--connect jdbc:postgresql://ip/db_name 
--username user_name 
--table table_name 
--hive-import -m 5 
--hive-table hive_table_name 
(--hive-partition-key partition_name --hive-partition-value partititon_value);

使用query導入hive表

sqoop import 
--connect jdbc:postgresql://ip/db_name 
--username user_name 
--query "select ,* from retail_tb_order where \$CONDITIONS" 
--hive-import -m 5 
--hive-table hive_table_name 
(--hive-partition-key partition_name --hive-partition-value partititon_value); 

注意:$CONDITIONS條件必須有,query子句若用雙引號,則$CONDITIONS需要使用\轉義,若使用單引號,則不需要轉義。

遇到問題

若需要在導入hive數據表的前提下,再添加在原有關系型數據庫中沒有的一列數據如何解決。

首先,我們想到的是添加一個partition可很方便的添加“一列”數據,partition的使用很類似普通一列,常用的sql執行是沒有問題的。

其次,想到在query的sql中添加一個常量或者一個變量,例如:”select 'hello',* from retail_tb_order where \$CONDITIONS“,執行后會報異常

12/08/28 14:41:31 INFO tool.CodeGenTool: Beginning code generation 
12/08/28 14:41:31 INFO manager.SqlManager: Executing SQL statement: select 'hello',* from retail_tb_order where (1 = 0) 
12/08/28 14:41:32 INFO manager.SqlManager: Executing SQL statement: select 'hello',* from retail_tb_order where (1 = 0) 
12/08/28 14:41:32 ERROR orm.ClassWriter: Cannot resolve SQL type 1111 
12/08/28 14:41:32 ERROR orm.ClassWriter: Cannot resolve SQL type 1111 
12/08/28 14:41:32 ERROR orm.ClassWriter: No Java type for SQL type 1111 for column _column_ 
12/08/28 14:41:32 ERROR orm.ClassWriter: No Java type for SQL type 1111 for column _column_ 
12/08/28 14:41:32 ERROR orm.ClassWriter: No Java type for SQL type 1111 for column _column_ 
12/08/28 14:41:32 ERROR orm.ClassWriter: No Java type for SQL type 1111 for column _column_ 
12/08/28 14:41:32 ERROR orm.ClassWriter: No Java type for SQL type 1111 for column _column_ 
12/08/28 14:41:32 ERROR orm.ClassWriter: No Java type for SQL type 1111 for column _column_ 
12/08/28 14:41:32 ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.NullPointerException 
java.lang.NullPointerException 
 at org.apache.sqoop.orm.ClassWriter.parseNullVal(ClassWriter.java:900) 
 at org.apache.sqoop.orm.ClassWriter.parseColumn(ClassWriter.java:925) 
 at org.apache.sqoop.orm.ClassWriter.generateParser(ClassWriter.java:999) 
 at org.apache.sqoop.orm.ClassWriter.generateClassForColumns(ClassWriter.java:1314) 
 at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1138) 
 at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:82) 
 at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:367) 
 at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:453) 
 at org.apache.sqoop.Sqoop.run(Sqoop.java:145) 
 at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) 
 at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181) 
 at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220) 
 at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229) 
 at org.apache.sqoop.Sqoop.main(Sqoop.java:238) 
 at com.cloudera.sqoop.Sqoop.main(Sqoop.java:57) 

該問題出現原因是sqoop ClassWriter類會在postgresql表中解析sql中的所有列,當解析常量'hello'時,數據庫沒有該列也就找不到相應的數據類型。

若要解決該問題應該需修改ClassWriter源碼。

補充:使用Sqoop,最終導入到hive中的數據和原數據庫中數據不一致解決辦法

Sqoop是一款開源的工具,主要用于在Hadoop(Hive)與傳統的數據庫(mysql、postgresql...)間進行數據的傳遞,可以將一個關系型數據庫(例如 : MySQL ,Oracle ,Postgres等)中的數據導進到Hadoop的HDFS中,也可以將HDFS的數據導進到關系型數據庫中。

1.問題背景  

使用Sqoop把oracle數據庫中的一張表,這里假定為student,當中的數據導入到hdfs中,然后再創建hive的external表,location到剛才保存到hdfs中數據的位置。最后發現對hive中表特定條件進行count時結果和oracle中結果不一致。

1.1 導入數據到hdfs中/user/hadoop/student路徑下

sqoop import --connect "jdbc:oracle:thin:@//localhost:1521/student" --password "***" --username "***" --query "select * from student where name='zhangsan' and class_id='003' and \$CONDITIONS" --target-dir "/user/hadoop/student" --verbose -m 1

這個時候hdfs上/user/hadoop/student下就保存了從oracle上導入的表數據。

表數據在hdfs上是如何存儲的呢?注意這一點,造成了最后產生結果不一致的錯誤。

我們來看一看在hdfs上數據是如何存儲的。我們運行hadoop fs -cat /user/hadoop/student/part-m-00000,可以看到原來字段與字段之間都用‘,'分隔開,這是sqoop默認的,這時候,如果一個字段值當中包含‘,',再向hive中插入數據時分隔就會出錯。因為hive也是用‘,'分隔的。

2.分析問題  

對hive中表select count(*) from student的結果和oracle中select count(*) from studeng的結果進行比較,發現條數是一樣的,說明沒有少load數據。那為什么對特定條件結果就會不一致,而且hive中條數比oracle中少。也就是同時運行select count(*) from student where class_id='003'

最后,發現hive用逗號分隔數據時,有幾條數據字段內值包含有逗號,所以字段與值對應起來就亂套了,所以得不到正確結果。

我們建議用‘\001'來進行sqoop 導入數據時的 分割。也就是--fields-terminated-by char>參數。

參考:http://sqoop.apache.org/docs/1.4.2/SqoopUserGuide.html#_large_objects

最后優化后的sqoop語句為:

sqoop import --connect "jdbc:oracle:thin:@//localhost:1521/student" --password "***" --username "***" --query "select * from student where name='zhangsan' and class_id='003' and \$CONDITIONS" --target-dir "/user/hadoop/student" --fields-terminated-by "\001" --verbose -m 1

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • 在Hadoop集群環境中為MySQL安裝配置Sqoop的教程
  • sqoop export導出 map100% reduce0% 卡住的多種原因及解決
  • 解決sqoop從postgresql拉數據,報錯TCP/IP連接的問題
  • sqoop讀取postgresql數據庫表格導入到hdfs中的實現
  • 解決sqoop import 導入到hive后數據量變多的問題
  • 使用shell腳本執行hive、sqoop命令的方法
  • Sqoop的安裝與使用詳細教程

標簽:衡陽 來賓 蚌埠 晉城 烏海 錦州 珠海 株洲

巨人網絡通訊聲明:本文標題《sqoop 實現將postgresql表導入hive表》,本文關鍵詞  sqoop,實,現將,postgresql,表,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《sqoop 實現將postgresql表導入hive表》相關的同類信息!
  • 本頁收集關于sqoop 實現將postgresql表導入hive表的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲国产精品久久久久秋霞影院 | 粗大黑人巨茎大战欧美成人| 亚洲成人黄色影院| 亚洲丝袜美腿综合| 国产精品久久久久久久久图文区| 精品国产一区二区在线观看| 5566中文字幕一区二区电影| 欧美精品久久久久久久久老牛影院| 99精品在线观看视频| 99久久婷婷国产综合精品| 91小宝寻花一区二区三区| 成人网在线免费视频| 成年人网站91| 91片在线免费观看| 欧美色图激情小说| 欧美无砖砖区免费| 欧美一区二区在线观看| 欧美成人伊人久久综合网| 精品美女一区二区三区| 国产婷婷一区二区| 亚洲日本成人在线观看| 午夜精品视频一区| 久久草av在线| 成人免费视频播放| 91久久精品国产91性色tv| 精品视频免费在线| 欧美精品一区男女天堂| 18涩涩午夜精品.www| 亚洲一区二区欧美日韩| 久久国产三级精品| 成人手机电影网| 欧美在线观看视频一区二区三区| 欧美色爱综合网| 欧美成人精精品一区二区频| 国产精品黄色在线观看| 亚洲成a天堂v人片| 国产精品一区二区在线看| 色综合天天综合网国产成人综合天| 欧美色偷偷大香| 久久精品无码一区二区三区| 亚洲一区二区美女| 国产中文字幕精品| 欧美日韩一卡二卡| 中文字幕国产一区二区| 天堂av在线一区| 亚洲国产综合91精品麻豆| 国产在线精品一区二区| 欧美亚洲动漫制服丝袜| 国产日产精品1区| 亚洲va韩国va欧美va精品| 国产suv一区二区三区88区| 欧美精品久久一区二区三区| 自拍偷拍欧美精品| 国产乱码精品一区二区三区五月婷| 在线观看亚洲a| 中日韩av电影| 久久福利视频一区二区| 久久久青草青青国产亚洲免观| 亚洲视频1区2区| 国产精品资源网站| 在线综合亚洲欧美在线视频| 一区二区三区四区亚洲| 国产经典欧美精品| 欧美一级片在线观看| 亚洲综合偷拍欧美一区色| 成人app网站| 国产日韩欧美一区二区三区综合 | 免费观看一级欧美片| 色94色欧美sute亚洲线路二| 国产精品久久久久久久久免费桃花 | 免费日韩伦理电影| 欧美嫩在线观看| 亚洲综合激情另类小说区| 99在线视频精品| 国产女主播视频一区二区| 国内外成人在线| 26uuu国产在线精品一区二区| 麻豆国产一区二区| 欧美一区二区三区视频在线| 日韩有码一区二区三区| 欧美日韩高清一区二区| 亚洲午夜影视影院在线观看| 欧洲av在线精品| 一区二区欧美视频| 欧美日韩另类国产亚洲欧美一级| 亚洲成av人片一区二区| 91精品一区二区三区久久久久久| 亚洲国产一区二区在线播放| 欧美理论电影在线| 精品制服美女久久| 国产欧美精品在线观看| 91在线一区二区| 亚洲一区二区黄色| 欧美一级黄色录像| 国产一区二区成人久久免费影院| 久久久亚洲午夜电影| av一区二区不卡| 亚洲综合小说图片| 欧美成人一区二区| 粉嫩av一区二区三区| 亚洲综合成人在线视频| 日韩欧美国产不卡| www.亚洲色图| 日韩av一级电影| 日本一区二区三区在线不卡| 91高清视频在线| 免费人成在线不卡| 成人免费一区二区三区在线观看| 欧美网站大全在线观看| 狠狠色综合日日| 亚洲欧洲av在线| 宅男在线国产精品| 成人中文字幕合集| 国产精品综合网| 亚洲va韩国va欧美va| 国产精品女同一区二区三区| 欧美午夜不卡视频| 懂色av一区二区三区免费观看| 亚洲国产欧美在线| 国产日韩影视精品| 7777精品伊人久久久大香线蕉完整版 | 欧美在线观看视频在线| 国内成人精品2018免费看| 亚洲免费观看高清在线观看| 精品久久人人做人人爰| 欧美日韩国产在线播放网站| 成人sese在线| 另类中文字幕网| 午夜精品久久久久久久久久 | 在线一区二区视频| 极品销魂美女一区二区三区| 亚洲成a人片在线观看中文| 国产精品每日更新| 久久综合一区二区| 在线不卡中文字幕播放| 欧美性生活久久| 成人h动漫精品| 国产精品一区二区久久精品爱涩| 日本欧美在线观看| 亚洲成人一区二区| 亚洲自拍偷拍麻豆| 亚洲激情网站免费观看| 免费在线看成人av| 亚洲成人午夜影院| 一区二区三区影院| 亚洲欧美欧美一区二区三区| 中文字幕在线视频一区| 国产午夜一区二区三区| 久久蜜桃一区二区| 久久久久国产精品免费免费搜索| 精品卡一卡二卡三卡四在线| 日韩免费性生活视频播放| 777亚洲妇女| 日韩美女视频一区二区在线观看| 欧美日韩国产精选| 欧美精品亚洲二区| 欧美一区三区二区| 精品少妇一区二区三区在线播放 | 成人免费不卡视频| www.欧美亚洲| 国产成人精品亚洲777人妖| 福利电影一区二区| 成人黄色电影在线 | 欧美一区二区三区日韩| 欧美日韩国产小视频在线观看| 欧美亚洲一区二区在线| 欧美一区午夜视频在线观看| 日韩一区二区在线观看视频播放| 欧美一区二区三区婷婷月色 | 国产精品白丝jk黑袜喷水| 国产精品一区二区久久不卡| 成人天堂资源www在线| 99国产精品久久久久久久久久| 欧美天堂亚洲电影院在线播放| 欧美日韩国产系列| 精品国产乱码久久久久久浪潮| 国产欧美日韩另类一区| 一区二区三区在线观看国产 | 日韩欧美中文字幕公布| www欧美成人18+| 成人欧美一区二区三区视频网页| 亚洲综合丝袜美腿| 免费成人av资源网| 成人av网在线| 91精品国产一区二区三区| 中文字幕不卡在线观看| 亚洲高清久久久| 国产精品亚洲午夜一区二区三区| 91亚洲精品久久久蜜桃| 日韩精品中文字幕一区| 中文字幕一区二区三区精华液 | 高清shemale亚洲人妖| 日本道在线观看一区二区| 精品久久国产老人久久综合| 日韩伦理av电影| 久久精品二区亚洲w码| 91行情网站电视在线观看高清版| 日韩免费看的电影| 一区二区三区日韩在线观看| 国产一区二区三区蝌蚪|