1、數據分發服務器
數據分發服務器由dispserver、dispcli兩個服務組成。這兩個服務以tar包的形式單獨提供,用戶使用時,只需使用tar命令解壓即可。配置數據加載的任務文件和dispcli工具必須存在於一臺物理機器上,數據源文件和dispserver工具必須在同一臺物理機器上。
2.2、數據加載步驟
1 啓動服務器端 ./dispserver
2 設置配置數據加載的任務文件, 如:xxxx.txt
disp_server=192.168.80.250:6666 ####服務端地址
file_list=path ####源文件目錄
table_name=aaa ####加載的數據表名稱
db_user=root ####登陸的用戶名
db_name=bigdata ####加載的數據庫名稱
format=0 ####文本文件
delimiter=' ' ####源文件中數據的分隔符
socket=/tmp/gbase_8a_5050.sock
extra_loader_args=--parallel=12 ####數據的格式相關
hash_parallel=4 ####併發數,與硬件環境相關,硬件性能越高,此參數可以加大在本次集羣環境中使用此配置
3 啓動客戶端加載程序
【數據加載實例】
將exmple.TXT.gz文件中的數據導入bigdata數據庫的aaa表中,
數據加載過程
1 服務端dispserver與數據放在192.168.80.250服務器上,並進入dispserver所在目錄,啓動服務端 ./dispserver
2 設置配置數據加載的任務文件 aaa
[loader]
disp_server=192.168.80.250:6666 ####服務端地址
file_list=path ####源文件目錄
table_name=aaa ####加載的數據表名稱
db_user=root ####登陸的用戶名
db_name=bigdata ####加載的數據庫名稱
format=0 ####0表示文本文件
delimiter=' ' ####源文件中數據的分隔符,此處爲tab
socket=/tmp/gbase_8a_5050.sock
extra_loader_args=--parallel=12 ####數據的格式相關
hash_parallel=4 ###Hash操作使用的線程個數,最小爲1,最大爲節點個數
3、數據加載常見問題解決方案
2.3.2一張表中只有一種時間格式時
如,2013-09-10 00:00:00.000,只需要將配置文件的extra_loader_args參數設置爲
extra_loader_args=12--def-datetime-format='%Y-%m-%d %H:%i:%s.%f'
一張表中有多種不同的時間格式的字段
需要在配置數據加載的任務文件中對每個字段單獨指定時間格式,如:
extra_loader_args=--parallel=12 --table_fields= CompletedDate date "%Y-%m-%d %H:%i:%s.%f", OdsDateTime date "%Y-%m-%d", DynamicFlag' |
分隔符delimiter參數設定
該參數必須與數據文件中一樣;注意tab與空格的區別。
數據導入後出現亂碼
在數據導入之前,使用iconv -c -fgb18030 -t utf8 xxx.txt > yyy.txt
再使用yyy.txt導入數據