2016-04-30 28 views
1

私は、csvファイルのデータをMySQLのテーブルにロードする複数のロードデータステートメントを持つシェルスクリプトを持っています。 GNU Parallelを使ってこれらの文を並行して実行するには?GNUパラレルを使用してシェルスクリプトで複数のmysql satementを並列に実行

私のシェルスクリプトは次のようになります。

#!/bin/bash 

mysql --defaults-extra-file=config.cnf -e "SELECT * 
FROM table1 
INTO OUTFILE '$path/table1.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n';" 

mysql --defaults-extra-file=config.cnf -e "SELECT * 
FROM table2 
INTO OUTFILE '$path/table2.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n';" 

mysql --defaults-extra-file=config.cnf -e "SELECT * 
FROM table3 
INTO OUTFILE '$path/table3.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n';" 

echo "END of script" 

答えて

2
doit() { 
    table="$1" 
    tablepath="$2" 
    mysql --defaults-extra-file=config.cnf -e "SELECT * 
    FROM $table 
    INTO OUTFILE '$tablepath' FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n';" 
} 
export -f doit 
parallel doit {/.} {} ::: path/table*.csv 
関連する問題