SAS Viya 는 SAS Institute 의 상용 분석 플랫폼이다. 통계 분석, 데이터 준비, 시각화, 머신러닝 모델 개발과 운영을 하나의 플랫폼에서 처리한다. 전통적인 SAS 9.x 계열이 서버에 직접 설치되는 제품인 반면, Viya 4 는 컨테이너 이미지로 배포되어 Kubernetes 위에서 동작한다.
같은 회사의 제품이지만 SAS 9.4 와 SAS Viya 4 는 아키텍처가 다른 별개의 플랫폼이다. 9.4 는 메타데이터 서버를 중심으로 한 서버·클라이언트 구조이고, Viya 4 는 마이크로서비스와 REST API 를 중심으로 한 구조다. 두 환경을 함께 쓰는 현장이 많아 이 문서 트리에는 9.4 관련 문서도 함께 둔다.
| 계열 | 배포 방식 | 특징 |
|---|---|---|
| SAS 9.4 | 서버 직접 설치 (SAS Deployment Wizard) | 메타데이터 서버 · Workspace Server · Object Spawner. M0~M8 유지보수 릴리스로 구분한다 |
| SAS Viya 3.5 | Ansible 기반 설치, systemd 서비스 | 마이크로서비스 구조이지만 Kubernetes 는 아니다. Consul 로 서비스 디스커버리를 한다 |
| SAS Viya 4 | 컨테이너 이미지 + Kubernetes (kustomize) | 현행 계열. Stable(월 단위) 과 LTS(반기 단위) 두 가지 릴리스 케이던스를 제공한다 |
Viya 4 의 릴리스는 2025.09 처럼 연·월로 표기하고, LTS 계열은 LTS-2509 로 줄여 부른다. 업그레이드는 LTS 단계를 건너뛸 수 없고 Kubernetes 지원 버전도 릴리스마다 달라지므로 계획이 필요하다.
Viya 4 는 SAS 가 제공한 배포 자산(deploy 디렉터리)을 kustomize 로 빌드해 Kubernetes 에 적용하는 방식이다.
sas-bases/ SAS 가 제공하는 기본 매니페스트와 예제. 직접 고치지 않는다
site-config/ 사이트별 커스터마이징. 예제를 복사해 여기서 수정한다
kustomization.yaml resources · transformers · configMapGenerator 를 모아 둔 최상위 파일
kustomize build -o site.yaml
kubectl apply -f site.yaml
폐쇄망에서는 SAS 레지스트리의 이미지를 Harbor 같은 사내 미러 레지스트리로 옮긴 뒤 그 레지스트리를 바라보게 한다.
| 구성 요소 | 역할 |
|---|---|
| CAS (Cloud Analytic Services) | 인메모리 분석 엔진. controller 와 worker 파드로 구성되며 내부 인코딩은 UTF-8 고정이다 |
| Compute Server | SAS 프로그램(DATA step · PROC)을 실행하는 세션. 요청마다 파드가 새로 뜬다 |
| Launcher | Compute · Batch · SAS/CONNECT 세션 파드를 생성하고 로케일·인코딩 기본값을 주입한다 |
| SAS Logon (UAA) | OAuth 토큰 발급. 사용자 인증과 서비스 간 인증을 모두 담당한다 |
| Identities | LDAP·SCIM 연동으로 사용자·그룹과 UID/GID 를 관리한다 |
| Configuration | 서비스 설정 저장소. SAS Environment Manager 의 Configuration 화면이 이 서비스를 본다 |
| PostgreSQL (Crunchy) | 플랫폼 메타데이터 저장소. Crunchy Postgres Operator 가 관리한다 |
| RabbitMQ · Redis · Consul | 메시징 · 캐시 · 설정 저장소 |
| APRO (Application Runtime Operator) | 모델 실행용 런타임 컨테이너를 생성·관리하는 오퍼레이터 |
| MAS (Micro Analytic Service) | 실시간 스코어링 엔진 |
| Model Manager · Model Studio | 모델 등록·버전 관리와 시각적 모델 개발 |
| Visual Analytics | 대시보드와 리포트 |
CAS 는 데이터 처리, Compute 는 SAS 코드 실행, APRO 는 모델 런타임 실행을 맡는다. 이 세 가지를 구분해 두면 장애가 어디에서 났는지 가르기가 쉽다.
계열과 무관하게 SAS 언어를 쓸 때 보는 문서다.
OBS= · FIRSTOBS= 로 행을 제한하고, 테이블을 지우고, 서버 경로에 저장한다.BY 와 PANELBY 의 결과가 달라지는 지점.sas -sysin 으로 .sas 를 돌리고 파라미터를 넘긴 뒤 스케줄러에 건다.FILENAME SFTP 액세스 메서드가 비밀번호를 받지 못하는 이유와 우회 경로.설치 범위와 라이선스가 먼저 정해져야 나머지가 따라온다.
setup.sh 가 SASHOME 만 바꾸는 탓에 구성이 옛 기준으로 남아 생기는 연쇄 오류.돌아가는 환경에서 접속 · 경로 · 외부 데이터베이스를 다룬다.
PROC FCMP 파이썬 객체와 SASPy, PROC PYTHON 을 쓸 수 없는 이유.outencoding 변환, 실패 테이블 식별, 깨진 바이트 정제.%SYSGET.Kubernetes 가 아니라 Ansible · systemd · Consul 로 도는 계열이다.
배포 자산을 어떻게 얹고, 어떤 경로로 올릴지를 다룬다.
emptyDir 기본값을 hostPath·NFS·PVC 로 바꾸고 적용 여부를 확인한다.mirrormgr 의 내려받기·올리기 두 단계와, 마지막 manifest 등록에서 막히는 원인.PGUpgrade 작업이 한 번 실패한 뒤 파드가 올라오지 않을 때의 복구.인메모리 분석 엔진의 구성 · 운영 · 장애를 다룬다.
spec.workers 다.CASDeployment 에 붙이는 PatchTransformer 와 관리형 쿠버네티스에서의 차이.singlestore 커넥터로 CASLIB 을 만드는 경로와 LIBNAME 과의 차이.SAS 코드가 실제로 실행되는 자리의 설정과 장애다.
PROC PYTHON 과 SWAT 두 갈래, 각각이 쓰는 런타임과 접속 경로.sas-pyconfig 로 빌드하는 방식과 직접 준비하는 방식 중 하나를 고른다.Running 인데 아무도 쓰지 않는 파드를 가려내 정리한다.endpoint 가 PC 에서 그대로 열려야 한다.