본문 바로가기
SAS

[SAS] SAS ERROR : Utility file open failed

by SASBIGDATA김진휘 2014. 1. 21.

ERROR : Utility file open failed

NOTE : 오류가 발생하여 SAS 시스템은 현재 스텝의 실행을 중지합니다.

WARNING : 데이터 셋 XXX 이(가) 불완전합니다. 이 스텝은 0개의 관측치와 x개의 변수가 있을 때 중단되었습니다.

WARNING : 데이터셋 'XXX' 은(는) 현재 스텝의 종료(으)로 인하여 변경되지 않았습니다.

 

SAS에서 빅데이터(BIGDATA)를 다루면서 가장 일반적으로 PROC SORT를 실행 할 시 볼 수 있는 에러가

ERROR : Utility file open failed 라는 문구이다.

 

프로그램 코딩에도 문제가 없으며, Sorting하려는 데이터도 문제가 없는데 에러가 떠서 혼란스러울 것이다.

유틸리티 파일을 여는데 실패했다고 하는데 무엇이 문제인지 알아보자.

 

나또한 최근에 수억건에서 수십억건의 빅데이터를 다루면서 확인한 부분인데

SAS에서는 SORT, MEANS, FREQ, SQL등의 프로시져등은 system thread(시스템 경로)에 영향을 준다.

그렇기 때문에 실무에서는 일반적으로 작업속도 측면과 sas의 work공간 문제 등 용량에 대한 추가적인 문제가 발생 할 것을 대비하여 필요한 변수(칼럼)만 따로 가져와서 데이터셋을 나누어서 sorting 또는 merge를 이용해 업무를 처리한다.

 

 

 

 

위의 에러문에 대한 해결책은

1. 실무사용자가 현업에서 sas를 이용할 경우에는 sas9.1버전 이상일 것이다. SAS에는 SAS hot fix라는 것이 있는데

Multi-thread에 최적화 기법을 지원한다. SAS hot fix를 적용하면 대용량 데이터의 sorting이 가능하다.

 

2. 개인학습용도 또는 학생일 경우에는 라이센스문제라던지 현실적인 지원이 되지 않는 경우가 많다. 이럴 경우에는

옵션을 이용하는데 options nothreads; 와 option sortsize=max; 구문을 적용하여 해결할 수가 있다.

 

실제 7억1천만건 정도의 데이터로 실험해 본 결과 옵션없이 sorting 할 때 ERROR : Utility file open failed 구문이 로그창에 나타나면서 sorting이 되지 않았지만, 간단하게 위의 두가지 옵션문장을 적용한 뒤에는 sorting이 되는 것을 확인하였다.

 

www.sasbigdata.com 김 진 휘

댓글