BookmarkSubscribeRSS Feed

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

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

[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

hackathon24-white-horiz.png

The 2025 SAS Hackathon Kicks Off on June 11!

Watch the live Hackathon Kickoff to get all the essential information about the SAS Hackathon—including how to join, how to participate, and expert tips for success.

YouTube LinkedIn

Article Labels
Article Tags