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.
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
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.
Ready to level-up your skills? Choose your own adventure.