[SAS 고급] SAS Data Sets 압축 (Compressing SAS Data Sets)
안녕하세요^^
이번 시간에는 압축(compress)된 SAS 데이터 파일의 구조에 대해 정의하고, 압축된 SAS 데이터 파일을 만들어보겠습니다. 또한, 압축하는 것의 장점과 단점에 대해 알아보도록 하겠습니다.
▶ SAS 데이터 압축은 저장공간을 줄이고 I/O에 대한 이점도 만들 수 있습니다.
아래의 그림은 SAS 데이터 파일이 어떻게 구조화 되었는지 이해하는 데에 도움이 됩니다. SAS 데이터 파일이 사실 정확하게 이런 방법으로 구성된 것은 아닙니다.
▷ 압축되지 않은 SAS 데이터 파일의 특징은 다음과 같습니다
- 모든 관측값(observations)은 같은 bytes를 사용합니다.
- 각각의 변수는 모든 관측값에서 같은 bytes를 차지합니다.
- 문자형 변수는 공백(blanks)도 함께 포함됩니다.
- 수치형 변수는 이진법의 0도 포함됩니다.
- 지워진 관측 공간은 전체 데이터 파일이 다시 만들어지지 않는 한, 절대 다시 사용되지 않습니다.
▷ 압축된 SAS 데이터 파일의 특징은 다음과 같습니다.
- 각각의 관측값은 각각의 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 데이터 셋만 압축합니다.
▷ 시스템 옵션에서, COMPRESS= 는 SAS 세션동안 만들어지는 모든 output 데이터 셋을 압축합니다.
▷ POINTOBS=YES는 SAS가 압축된 데이터 셋에 random하게 접근할 수 있게 해줍니다.
이것은 default로 설정되어있으며, 압축된 파일에 순차적으로 접근할 수 있게 하는 POINTOBS=NO가 유용합니다.
▶ 예제를 통해 어떻게 데이터 파일이 압축되는지 살펴보도록 하겠습니다.
▷ 압축되지 않은 형태에서, 두 변수에서 35bytes를 사용합니다.
▷ 만약 RLE 방법으로 압축한다면, 이 관측값을 보이기 위해 13bytes만이 필요합니다.
- @는 얼마나 많은 압축되지 않은 문자가 있는지 보여줍니다.
- #는 공백의 개수를 보여줍니다.
▶ 압축되지 않은 형태에서, 200개의 수치형 변수가 1600bytes를 사용하며, 반복되는 수나 패턴이 있는 데이터 입니다.
▷ RDC 방법으로 압축하면, 1600bytes에서 9 또는 11 bytes로 줄어듭니다.
- @는 얼마나 많은 압축되지 않은 문자가 있는지 보여줍니다.
- +1은 부호와 지수를 보여줍니다.
- #는 관측값에서 반복되는 이진법의 0을 보여줍니다.
- %는 이 값들이 얼마나 많이 반복되는지 보여줍니다.
압축이 잘 되지 않는 경우
- 반복되는 문자가 거의 없거나
- 크기가 작거나
- 결측값이 거의 없거나
- 짧은 문자열을 갖는 경우입니다.
압축이 잘 되는 경우
- 많은 결측값을 갖거나
- 긴 문자변수가 bytes를 거의 차지하지 않는 많은 관측값을 갖는 경우입니다.
이상으로 SAS 데이터 파일의 구조와 압축된 SAS 데이터 파일을 만드는 방법에 대해 알아보았습니다.
감사합니다^^
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!