如何从服务器中的 FTP 位置读取大文件
How to read a large file from FTP location in server
我必须从 FTP 位置读取大型(比如 20mb)管道分隔文件并存储到数据库中。最好的方法是什么。
一些方法:
1.将文件复制到本地,然后读取并保存到数据库。
2. 直接从流中读取并保存到数据库中。
请提出一些有效的方法。
当它是 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!
我认为选项 1 会更好,
如果是选项 2 - 如果出现异常怎么办 - 在 DB 中写入文件时使用流或异常读取文件时,您将如何确切地知道失败的位置,
使用选项 1,您可以存储文件临时目录,然后将文件写入数据库,然后从临时目录中删除或存档。
最好在文件系统上归档文件 - 它将在以后的参考中使用。
两者都有很多例子 -
要从 ftp 下载文件,您可以按照 -
http://www.codejava.net/java-se/networking/ftp/java-ftp-file-download-tutorial-and-example
我必须从 FTP 位置读取大型(比如 20mb)管道分隔文件并存储到数据库中。最好的方法是什么。
一些方法: 1.将文件复制到本地,然后读取并保存到数据库。 2. 直接从流中读取并保存到数据库中。
请提出一些有效的方法。
当它是 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!
我认为选项 1 会更好,
如果是选项 2 - 如果出现异常怎么办 - 在 DB 中写入文件时使用流或异常读取文件时,您将如何确切地知道失败的位置,
使用选项 1,您可以存储文件临时目录,然后将文件写入数据库,然后从临时目录中删除或存档。
最好在文件系统上归档文件 - 它将在以后的参考中使用。
两者都有很多例子 -
要从 ftp 下载文件,您可以按照 - http://www.codejava.net/java-se/networking/ftp/java-ftp-file-download-tutorial-and-example