BookmarkSubscribeRSS Feed

[SAS 고급] SAS Data Sets 압축 (Compressing SAS Data Sets)

Started ‎06-17-2020 by
Modified ‎06-17-2020 by
Views 243

[SAS 고급] SAS Data Sets 압축 (Compressing SAS Data Sets)

 

안녕하세요^^

 

이번 시간에는 압축(compress)된 SAS 데이터 파일의 구조에 대해 정의하고, 압축된 SAS 데이터 파일을 만들어보겠습니다. 또한, 압축하는 것의 장점과 단점에 대해 알아보도록 하겠습니다.

 

 

 

▶ SAS 데이터 압축은 저장공간을 줄이고 I/O에 대한 이점도 만들 수 있습니다.

​아래의 그림은 SAS 데이터 파일이 어떻게 구조화 되었는지 이해하는 데에 도움이 됩니다. SAS 데이터 파일이 사실 정확하게 이런 방법으로 구성된 것은 아닙니다.

 

​▷ 압축되지 않은 SAS 데이터 파일의 특징은 다음과 같습니다

 

SE22017031815024870.jpg

 

- 모든 관측값(observations)은 같은 bytes를 사용합니다.

- 각각의 변수는 모든 관측값에서 같은 bytes를 차지합니다.

- 문자형 변수는 공백(blanks)도 함께 포함됩니다.

- 수치형 변수는 이진법의 0도 포함됩니다.

- 지워진 관측 공간은 전체 데이터 파일이 다시 만들어지지 않는 한, 절대 다시 사용되지 않습니다.

 

 

 

▷ 압축된 SAS 데이터 파일의 특징은 다음과 같습니다.

 

SE22017031815035370.jpg

 

- 각각의 관측값은 각각의 bytes를 갖고 있으며, 변수의 types과 경계는 무시됩니다.

- 각각의 관측값은 다른 길이를 갖습니다.

- 만약 업데이트된 관측값이 최적 사이즈보다 크다면, 같은 데이터 셋 페이지에 저장되거나 원래의 페이지에 pointer가 있는 상태로 다른 페이지에 저장됩니다.

- SAS 데이터 파일이 압축되었을 때, REUSE=YES라는 data set이나 시스템 옵션을 사용한다면 삭제된 관측값의 공간은 다시 사용될 수 있습니다.

 

SAS 데이터 파일은 압축된 형태로 저장될 수 있지만, views는 그렇지 않습니다.

​압축된 파일은 각각의 관측값을 보이는데 필요한 bytes를 줄입니다.

 

 

▶ 압축된 SAS 데이터 파일을 만드는 방법에 대해 알아보도록 하겠습니다.

▷ 압축된 SAS 데이터 파일을 만드는 방법은 두 가지가 있습니다. 최적 알고리즘은 데이터에 따라 달라집니다.

 

 RLE(Run-Length Encoding) RDC(Ross Data Compression) 
 - 반복되는 문자로 구성된 문자형 데이터

 - 수치형 데이터

 - 패턴을 갖는 문자형 데이터

 - 관측값 > 1000 bytes

COMPRESS=CHAR|YES COMPRESS=BINARY 

 

 

 ▷ 데이터셋 옵션에서, COMPRESS= 는 연관된 output 데이터 셋만 압축합니다. 

 

SE22017031815055770.jpg

 

 

▷ 시스템 옵션에서, COMPRESS= 는 SAS 세션동안 만들어지는 모든 output 데이터 셋을 압축합니다.

 

SE22017031815061370.jpg

 

 

▷ POINTOBS=YES는 SAS가 압축된 데이터 셋에 random하게 접근할 수 있게 해줍니다.

​이것은 default로 설정되어있으며, 압축된 파일에 순차적으로 접근할 수 있게 하는 POINTOBS=NO가 유용합니다.

 

SE22017031815064970.jpg

 

 

▶ 예제를 통해 어떻게 데이터 파일이 압축되는지 살펴보도록 하겠습니다.

​▷ 압축되지 않은 형태에서, 두 변수에서 35bytes를 사용합니다.

 

SE22017031815071870.jpg

 

▷ 만약 RLE 방법으로 압축한다면, 이 관측값을 보이기 위해 13bytes만이 필요합니다.

 

SE22017031815073170.jpg

 

- @는 얼마나 많은 압축되지 않은 문자가 있는지 보여줍니다.

- ​#는 공백의 개수를 보여줍니다.

 

▶ 압축되지 않은 형태에서, 200개의 수치형 변수가 1600bytes를 사용하며, 반복되는 수나 패턴이 있는 데이터 입니다.

 

SE22017031815080070.jpg

 

▷ RDC 방법으로 압축하면, 1600bytes에서 9 또는 11 bytes로 줄어듭니다.

 

SE22017031815081570.jpg

 

- @는 얼마나 많은 압축되지 않은 문자가 있는지 보여줍니다.

- +1은 부호와 지수를 보여줍니다.

- #는 관측값에서 반복되는 이진법의 0을 보여줍니다.

- %는 이 값들이 얼마나 많이 반복되는지 보여줍니다.

 

 

압축이 잘 되지 않는 경우

 

SE22017031815091870.jpg

 

 - 반복되는 문자가 거의 없거나

 - 크기가 작거나

 - 결측값이 거의 없거나

 - 짧은 문자열을 갖는 경우입니다.

 

 

압축이 잘 되는 경우 

 

SE22017031815092370.jpg

 

 - 많은 결측값을 갖거나

 - 긴 문자변수가 bytes를 거의 차지하지 않는 많은 관측값을 갖는 경우입니다.

 

 

 

 

이상으로 SAS 데이터 파일의 구조와 압축된 SAS 데이터 파일을 만드는 방법에 대해 알아보았습니다.

감사합니다^^

 

 

 

Version history
Last update:
‎06-17-2020 02:00 AM
Updated by:
Contributors

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!

Article Labels
Article Tags