BookmarkSubscribeRSS Feed

SAS currently has a PROC S3 that can do simple upload/download of files from Amazon S3 buckets.

It would be much more useful if SAS would introduce and S3 filename engine also.  That way SAS code could read/write directly from the S3 bucket without having to first download the files to local disks.

 

Syntax might use the same options as are currently used on PROC S3.  The PROC S3 options look like this: 

FILENAME fileref S3 "path"
  <AWSCONFIG="AWS-CLI-file-path">
  <CONFIG="file-path">
  <KEYID="AWS-key-ID">
  <SECRET="AWS-secret">
  <NOSSL>
  <REGION=AWS-region>
  <PROFILE="profile-name">
;

Then a program that could read from S3 might look like this: 

filename mydata s3 "/mybucket/mydata.csv"  config='~/.ssh/mybucket' ;
data want ;
  infile mydata dsd truncover ;
  input a b c $ d ;
run;

It would also be helpful if this could be combined with the ZIP and ZIP GZIP engines so that compressed files could be read or written directly to S3 buckets.  Similar to how the COPY and UNLOAD commands in Amazon's Redshift database can read and write from and to compressed text files.  Perhaps a separate S3GZIP engine could be designed to support that?

3 Comments
Tom
Super User
Super User

This should be relabeled to Language and Macro Facility  instead of Procedures.

board6305
Calcite | Level 5

It looks like this suggestion has been partially implemented.  You can use filename with "S3" in SAS Viya. But you still can't do it in SAS 9. I would really like to see it in SAS 9, also.

SASKiwi
PROC Star

It looks like it's available in Viya 3.5 or 4. I wouldn't be holding my breath regarding it being added to 9.4 as pretty much all new development is now focused on Viya. Full support for SAS 9.4 ends in 2025.