DATA Log

SAS 변수 메타정보 DATABASE 변환을 위한정보

mirlog 2022. 12. 29. 09:30

SAS -> DW 구축(Azure Synapse SQL Pool) 프로젝트 진행간 TABLE을 정의하며 있었던 내용에 대해 정리를 해본다.

SAS는 메타정보가 존재하며, 이를 이용하여 일반 DB의 테이블 LayOut을 지정하는데 사용 할 수 있다.

 

이때 전달받은 메타정보에서 유념해야 될 부분은 TYPE(변수유형) 인데 이 부분이 아래표에도 표시는 해놨지만,

문자형,숫자형이라고 데이터 자체가 문자,숫자만 들어오는건 아니다. (날짜등 다양한 타입정보 존재...)

 

FORMAT(변수의 출력형식) 에 따라 컬럼 타입은 얼마든지 변할 수 있다. 이 정보를 유념하여 컬럼 타입을 설정해야 한다.

포맷(변경전) 포맷(변환후) 비고
IS8601DA DATE $ - 문자형으로 처리
BEST -
문자형으로 처리

*TYPE = '1'
DECIMAL(30,10)

*TYPE = '2'
NVARCHAR(LENGTH)

FORMAT정보가 존재 할 시 FORMATL, FORMATD정보 기반으로
  길이 설정
   -> FORMATL, FORMATD는 필수설정 항목 아님. 
        정확한 길이 설정을 위해서는 원천 SAS에서 FORMATL,D 설정필수!
E8601DA DATE
YYMMDD DATE
E8601DT DATETIME
TIME TIME
IS8601DT DATETIME
   

 

[ EXAMPLE_META 포함된 메타 정보 항목 ]

OBS NAME LABEL
1 CHARSET 호스트 문자 집합
2 COLLATE 순서 맞추기
3 COMPRESS 압축 루틴
4 CRDATE 생성일
5 DELOBS 데이터셋에서 삭제된 관측값
6 ENCRYPT 암호 루틴
7 ENGINE 엔진
8 FLAGS 플래그 업데이트(보호 기여 추가)
9 FORMAT 변수의 출력형식
10 FORMATD 출력형식의 소수점 이하 자릿수
11 FORMATL 출력형식 길이
12 GENMAX 최대 생성 개수
13 GENNEXT 다음 생성 번호
14 GENNUM 생성 번호
15 IDXCOUNT 데이터셋에 대한 인덱스 개수
16 IDXUSAGE 인덱스에서 변수 사용
17 INFORMAT 변수의 입력형식
18 INFORMD 입력형식의 소수점 이하 자릿수
19 INFORML 입력형식 길이
20 JUST 정렬
21 LABEL 변수 레이블
22 LENGTH 변수 길이
23 LIBNAME 라이브러리 이름
24 MEMLABEL 데이터셋 레이블
25 MEMNAME 라이브러리 멤버 이름
26 MEMTYPE 라이브러리 멤버 유형
27 MODATE 마지막 수정일
28 NAME 변수 이름
29 NOBS 데이터셋의 관측값
30 NODUPKEY 정렬 옵션: 중복 키 없음
31 NODUPREC 정렬 옵션: 중복 레코드 없음
32 NPOS 버퍼 위치
33 POINTOBS 관측값 지점
34 PROTECT 암호 보호(읽기 쓰기 변경)
35 REUSE 공백 재사용
36 SORTED 정렬됨 및/또는 검증됨
37 SORTEDBY Sortedby 절의 변수 위치
38 TRANSCOD 전치된 문자 변수
39 TYPE 변수 유형
40 TYPEMEM 특수 데이터셋 유형 (From TYPE=)
41 VARNUM 변수 번호

[ 문자형과 숫자형 변수 ]

no 유형
(type)
약어
(abbrevation)
설명
1 숫자형(numeric) N 숫자로 이뤄진 변수
2 문자형(character) C 문자로 이뤄진 변수
3 이항형(binary) B 값이 0 또는 1, Y 또는 N만 가질 수 있는 변수
(Target 변수의 유형 구분이 필요한 경우 사용)