impala-shell匯入匯出
參數說明:
• -q query (--query=query) 從命令列執行查詢,不進入impala-shell
• -d default_db (--database=default_db) 指定資料庫
• -B(--delimited)去格式化輸出
• --output_delimiter=character 指定分隔字元
• --print_header 列印列名
• -f query_file(--query_file=query_file)執行查詢檔案,以分號分隔
• -o filename (--output_file filename) 結果輸出到指定檔案
1、匯出
1.1 匯出結果到csv
impala-shell -q "select id,price,name,dtime from config.price_test limit 3" -B --output_delimiter="," --print_header -o /var/testimpalaout.csv
1.2 匯出結果到excle
impala-shell -q "select id,price,name,dtime from config.price_test limit 3" -B --output_delimiter="\t" --print_header -o /var/testimpalaout.xlsx
2、匯入
2.1 hadoop建立檔案夾
hadoop fs -mkdir /tmp/price_txternal
2.2 本地檔案上傳hadoop
hadoop fs -put /var/testimpalaout.csv /tmp/price_txternal
2.3 建立暫存資料表(無分區,普通文本表)
impala-shell ,進入impala-shell資料庫,(分隔字元,自訂)
CREATE TABLE config.price_test_ls (
id INT,
price DOUBLE,
name VARCHAR(200),
dtime TIMESTAMP
)
row format delimited fields terminated by ','
location '/tmp/price_txternal';
2.4 匯入分區表
INSERT INTO config.price_test PARTITION(DAY = 20170701, MINUTE = cast('0000' as char(4)) )
SELECT
id,
price,
NAME,
dtime
FROM
config.price_test_ls
2.5 刪除暫存資料表
drop table config.price_test_ls;