2017-03-22 17 views
0

FTP位置から大量の(たとえば20MBの)パイプ区切りファイルを読み込んでDBに格納する必要があります。そうする最良の方法は何でしょうか。サーバー内のFTP位置から大きなファイルを読み取る方法

いくつかのアプローチ: 1.ファイルをローカルにコピーし、それを読み取り、DBに保存します。 2.ストリームから直接読み込み、DBに保存します。

効率的なやり方を提案してください。

答えて

1

私はいくつかの例外がある場合はオプション1オプション2 - どのような場合には、

良くなると思う - DB内のファイルを書き込み中に、ストリームまたは例外を使用してファイルを読みながら、どのようになります

オプション1を使用すると、ファイルの一時ディレクトリを保存してから、そのファイルをDBに書き込み、tempディレクトリから削除またはアーカイブすることができます。

ファイルシステム上のファイルをアーカイブすることが推奨されます。これは今後の参考文献で使用されます。

多くの例では、両方の周りがあります - あなたが続くことができるFTPからのファイルのダウンロードについては

- http://www.codejava.net/java-se/networking/ftp/java-ftp-file-download-tutorial-and-example

0

sqlまたはcsvファイルの場合は、sshで試すことができます。

mysql -u root -p 

set global net_buffer_length=1000000; --Set network buffer length to a large byte number 

set global max_allowed_packet=1000000000; --Set maximum allowed packet size to a large byte number 

SET foreign_key_checks = 0; --Disable foreign key checking to avoid delays,errors and unwanted behaviour 

source file.sql --Import your sql dump file 

SET foreign_key_checks = 1; --Remember to enable foreign key checks when procedure is complete! 
関連する問題