Hi,
I'm using the method below to move text file sas server to ftp server. It ony takes 3 minute when i use ftp method in shell, but it takes 2 hour to move it with sas method.
I think it occurs because sas open txt file and move line by line. And file size almost 2 gb..
How i move txt file as batch and save time in ftp method?
Thanks.
sas method:
%macro ftp_data(sasData);
filename server ftp "/ftp/directory/&sasData..TXT" host="XX.XXX.X.XX"
user="user" pass="pass" ;
data _null_;
infile "/work/&sasData..TXT" recfm=n ;
input x $char1. @@;
file server recfm=s ;
put x $char1. @@;
run;
ftp method:
/usr/bin/ftp -inv <<!
open $FTP_HOST_NAME
passive
user $FTP_LOGIN $FTP_PASSWORD
cd ftp01/directory/
put $file
quit
Why are you transmitting a TEXT file as binary, byte-by-byte? Text files should be handled line-by-line.
No miracle that your SAS FTP is taking forever.
Although I concur that copying non-SAS data to non-SAS data is handled best from the commandline, if you need it controlled from SAS, use the filename pipe method to call the external command.
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.