我必须从FTP位置读取大(例如20mb)管道分隔文件并存储到DB中。什么是最好的方法。
一些方法: 1.在本地复制文件,然后读取并保存到DB。 2.直接从流中读取并保存到DB中。
请建议一些有效的方法。
答案 0 :(得分:1)
我认为选项-1会更好,
如果是选项2 - 如果有异常 - 在使用流或异常读取文件时,如何在DB中写入文件,您将如何确切地知道失败的位置,
使用选项1可以存储文件临时目录,然后在DB中写入文件,然后从临时目录中删除或存档。
在文件系统上存档文件将是更可取的 - 它将在将来的参考资料中使用。
两者都有很多例子 -
从ftp下载文件,您可以关注 - http://www.codejava.net/java-se/networking/ftp/java-ftp-file-download-tutorial-and-example
答案 1 :(得分: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!