欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

sqlserver數據導入hdfs和hive的解決方案

系統 1903 0

方法一:

?

環境: win7+sqlserver2008

工具: bcp

測試效率:

新聞數據庫, 10?000?000 行, 25.8G

導出時間:約 2 個小時

每秒約 1326

?

?

方法二:

?

用循環執行sql語句,分段寫入文件。

?

?

?


?

?

?

1?Bcp 介紹

bcp? 實用工具可以在? Microsoft?SQL?Server? 實例和用戶指定格式的數據文件間大容量復制數據。?使用? bcp? 實用工具可以將大量新行導入? SQL?Server? 表,或將表數據導出到數據文件。?除非與? queryout? 選項一起使用,否則使用該實用工具不需要了解? Transact-SQL? 知識。?若要將數據導入表中,必須使用為該表創建的格式文件,或者必須了解表的結構以及對于該表中的列有效的數據類型。 ?

(1)? 導入。

這個動作使用 in 命令完成,后面跟需要導入的文件名。?

(2)? 導出。

這個動作使用 out 命令完成,后面跟需要導出的文件名。?

(3)? 使用 SQL 語句導出。

這個動作使用 queryout 命令完成,它跟 out 類似,只是數據源不是表或視圖名,而是 SQL 語句。?

(4)? 導出格式文件。

這個動作使用 format 命令完成,后而跟格式文件名。?

下面介紹一些常用的選項:?

-f?format_file?

format_file 表示格式文件名。這個選項依賴于上述的動作,如果使用的是 in out format_file 表示已經存在的格式文件,如果使用的是 format 則表示是要生成的格式文件。?

-x?

這個選項要和 -f?format_file 配合使用,以便生成 xml 格式的格式文件。

-F?first_row?

指定從被導出表的哪一行導出,或從被導入文件的哪一行導入。?

-L?last_row?

指定被導出表要導到哪一行結束,或從被導入文件導數據時,導到哪一行結束。?

-c?

使用 char 類型做為存儲類型,沒有前綴且以 "\t" 做為字段分割符,以 "\n" 做為行分割符。?

-w?

-c 類似,只是當使用 Unicode 字符集拷貝數據時使用,且以 nchar 做為存儲類型。?

-t?field_term?

指定字符分割符,默認是 "\t" 。?

-r?row_term?

指定行分割符,默認是 "\n" 。?

-S?server_name[?\instance_name]?

指定要連接的 SQL?Server 服務器的實例,如果未指定此選項, bcp 連接本機的 SQL?Server 默認實例。如果要連接某臺機器上的默認實例,只需要指定機器名即可。?

-U?login_id?

指定連接 SQL?Sever 的用戶名。?

-P?password?

指定連接 SQL?Server 的用戶名密碼。?

-T?

指定 bcp 使用信任連接登錄 SQL?Server 。如果未指定 -T ,必須指定 -U -P 。?

-k?

指定空列使用 null 值插入,而不是這列的默認值。?

2? 部署與流程

3? 詳細設計

3.1?Sqlserver 數據導出到臨時文本階段

Log

BcpSqlserver

JdbcStream

SqlserverToTxt

(代碼見 SVN-SqlserverToHive

此階段的是根據自定義每個導出文件中的數據行數進行分文件導出,一個導出成果如下:

導出效率分析:

測試一個文件 1000,10000,100000 條數據,比較完成時間:

文件數據行數? =?1000?start:1359102390172?end:1359102452310?time?use?:62138ms

文件數據行數? =?10000?start:1359102452310?end:1359102461626?time?use?:9316ms

文件數據行數? =?100000?start:1359102461626?end:1359102462997?time?use?:1371ms

文件數據行數? =?1000000?start:1359102577696?end:1359102578501?time?use?:805ms

所以,用 bcp 導數據,文件越少效率越高,這是 bcp 內部的 sql 優化導致的。但是,考慮到實際需要,如果需對一個文件有控制,則可以自己設定文件大小。

?

3.2? 臨時文本導入到 hive/hdfs 階段

3.2.1? 導入 hive

創建符合行列規則的 hive

CREATE?TABLE?table1?(a?STRING,?b?STRING)
ROW?FORMAT?DELIMITED?FIELDS?TERMINATED?BY?'\t'?ESCAPED?BY?'\\'
STORED?AS?TEXTFILE; ?

?

Jdbc 連接 hive ,執行 load 語句

LOAD?DATA?LOCAL?INPATH?'/home/admin/test/test.txt'?OVERWRITE?INTO?TABLE?test_1?

?

或者直接創建外表指向hdfs中的數據文件

?

create external table IF NOT EXISTS mytest (ID string,Symbol string)?LOCATION '/tmp/sqltohdfs

?

?

?

3.2.2? 導入 hdfs

多線程每個線程處理一個文件導入到 hdfs

參考代碼

import ?java.io.IOException;

import ?java.net.URI;

import ?java.io.FileInputStream;???

??

import ?org.apache.hadoop.conf.Configuration;??

import ?org.apache.hadoop.fs.FileSystem;??

import ?org.apache.hadoop.fs.FSDataOutputStream;??

import ?org.apache.hadoop.fs.Path;??

import ?org.apache.hadoop.io.IOUtils;

?

?

public ? class ?LocalToHDFS?{

//?s?為本地文件路徑

//?d?為 hdfs 絕對路徑

public ? static ? void ? uploadLocalFile2HDFS (String?s,?String?d)

throws ?IOException?{

Configuration?conf?=? new ?Configuration();

FileSystem?hdfs?=?FileSystem. get (URI. create (d),?conf);

FileInputStream?in?=? null ;

FSDataOutputStream?out?=? null ;

try ?{

in?=? new ?FileInputStream(s);

out?=?hdfs.create( new ?Path(d));

IOUtils. copyBytes (in,?out,?4096,? false );

}? finally ?{

IOUtils. closeStream (in);

IOUtils. closeStream (out);

}

?

}

}

?


sqlserver數據導入hdfs和hive的解決方案


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产伦精品一区三区视频 | 久草6| 国产精品91久久久 | 日本大片在线观看免费视频 | 97精品国产高清在线看入口 | 9久9久女女免费精品视频在线观看 | 99热在线观看免费 | 男女啪啪片 | 香港三日本三级三级三级 | 成人免费毛片片v | 小明看看成人免费视频 | 蝌蚪久久窝 | 91麻豆蜜桃一区二区三区 | 久久久久成人免费 | 天天骑夜夜操 | 午夜精品视频在线看 | 亚洲精品一区二区三区在线 | 国产精品国产三级国产a | 欧美精品成人免费视频 | www.夜夜骑 | 色婷婷综合久久久中文一区二区 | 91精品国产露脸在线观看 | 久久精品国产99国产 | 欧美成人免费高清网站 | 美腿丝袜亚洲综合 | 看黄色一级视频 | 国产精品久久久久久久久久免费看 | 九草在线| 久久久久综合 | 一级做a爰片性色毛片男 | 久久综合九色综合欧洲 | 日韩啊啊啊 | 国产成人不卡 | 日韩a级片 | 视频一区二区久久 | 亚洲视频在线看 | 色天堂影院| 欧美成熟丰满老妇xxxx | 国产一区二区三区久久久久久久久 | 久久综合日韩亚洲精品色 | 爱操影视 |