テキスト ファイルに約 1300 万のエントリを持つリモート ホストから非常に大きなテーブルからすべてのデータを取得しようとしています。次のコマンドを試してみましたが、しばらくするとプロセスが強制終了され、「Killed」というメッセージが表示されます。コンソールで。
mysql --user=username --password -h host -e "select * from db.table_name" >> output_file.txt
私の主な目標は、mysql から redshift にデータをコピーすることです。これは、「,」で区切られたテキスト ファイルですべてのデータを取得し、それを s3 にアップロードし、redshift でCOPY
クエリを実行することによって実行しています。
PS 小さなテーブルの場合、上記のコマンドは適切に機能しますが、大きなテーブルでは機能しません。
1 に答える
0
代わりにmysqldumpを試すことができます。正しく思い出せば、CSVを出力するようにパラメーター化できます。私はこれを自分で試したことがないので、ドキュメントを確認することをお勧めしますが、これはうまくいくはずです:
mysqldump --user=username --password -h host \
--fields-terminated-by="," --fields-enclosed-by="\"" --lines-terminated-by="\n" \
dbname tablename > output_file.txt
それでもうまくいかない場合は、SELECT INTO OUTFILE を試すことができます。次のように、MySQL ホストで直接行う必要があります。
SELECT * INTO OUTFILE '/tmp/data.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\' LINES TERMINATED BY '\n'
FROM db.table_name
于 2013-11-25T10:03:27.187 に答える