最近幾天,接到公司的一個將當前大數據平臺數據所有遷移到阿里雲ODPS平臺上的任務。而申請的這個ODPS平臺是屬於政務內網的,因考慮到安全問題當前的大數據平臺與阿里雲ODPS的網絡是不通的,因此不能使用數據採集工做流模板。html
然而,考慮到原大數據平臺數據量並非很大,能夠經過將原大數據平臺數據導出到CSV文件,而後再將CSV文件導入到ODPS平臺。在這個過程當中踩的坑有點多,因此想寫篇文檔做爲記錄。sql
編寫export_data.sh腳本以下:安全
#!/bin/bash # #導出數據 hive -e "use swt_ods; show tables;" > /root/hive_data/table_names.txt for table_name in `cat /root/hive_data/table_names.txt` do hive -e "select * from swt_ods.$table_name;" > /root/hive_data/export_data/$table_name".csv" sed -i 's/\t/,/g' /root/hive_data/export_data/$table_name".csv" done
執行腳本,並將數據/root/hive_data/export_data/目錄下載到本地。bash
編寫export_create_table_sql.sh腳本以下:網絡
#!/bin/bash # #導出DDL hive -e "use swt_ods; show tables;" > /root/hive_data/table_names.txt for table_name in `cat /root/hive_data/table_names.txt` do hive -e "show create table swt_ods.$table_name;" > /root/hive_data/export_create_table_sql/$table_name tac $table_name| sed 1,14d| tac > /root/hive_data/export_create_table_sql/$table_name".sql" rm -f $table_name echo ";" >> /root/hive_data/export_create_table_sql/$table_name".sql" cat /root/hive_data/export_create_table_sql/$table_name".sql" >> /root/hive_data/export_create_table_sql/all.sql done
執行腳本,並將/root/hive_data/export_create_table_sql/all.sql下載到本地。工具
在Windows中,解壓即安裝。在解壓目錄中配置odps_config.ini文件大數據
在解壓目錄odpscmd_public\bin目錄下,雙擊運行odpscmd.bat。阿里雲
將all.sql中的建表語句粘貼到命令行執行便可建立表。spa
使用命令行的方式批量導入數據到對應的表中。命令行
可能須要加什麼選項或者參數能夠解決,可是在查看tunnel upload命令的詳細介紹後也沒有找到使用命令行來解決這個問題的方法。
問題描述: