Linux에서 SAS 코드를 실행하는 방법

이 질문에 대한 대부분의 답변은 이미 SAS를 보유하고 있고 단지 GUI 없이 쓰고 싶다는 전제에서 출발합니다. 이 답변은 다른 경우를 위한 것입니다. 프로그램은 있는데 라이선스는 없고, 그래도 작업은 오늘 밤 서버에서 돌아야 합니다.

짧은 답변

Jenner는 단일 바이너리입니다. 서버에 올리고 .sas 파일을 지정하면 실행됩니다. GUI도 화면도 필요 없고, 도달해야 할 라이선스 서버도 없으며, 시작할 때 확보할 것도 없습니다. 프로그램이 실패하면 0이 아닌 값으로 종료되는데, 스케줄러가 실제로 신경 쓰는 부분이 바로 그것입니다. 아직 비교 중이라면, 아래 질문들이 Linux 사용자에게 실제로 열려 있는 모든 경로를 짚어 줍니다. 저희가 아닌 선택지까지 포함해서입니다.

Linux 작업이 실제로 실행되는 방식에 맞게 만들어졌습니다

cron에서, systemd 타이머에서, Airflow 태스크에서, GitHub Actions 작업에서, 또는 컨테이너 안에서 호출하십시오. stdin에서 읽고 stdout과 로그 파일에 쓰므로, 세션을 요구하는 대신 이미 머신에 있는 도구들과 조합됩니다.

Linux에서 실행되는 것

Jenner는 SAS 호환입니다. 프로그램이 이미 작성되어 있는 그 언어가, 지금 쓰시는 것과 동일한 문장 이름과 옵션 이름으로 서버에서 실행됩니다.

DATA 단계, PROC SQL, 매크로

언어의 핵심은 작성된 그대로 실행됩니다. DATA 단계 로직, 배열, 포맷과 인포맷, 매크로 기능, 그리고 PROC SQL입니다. SAS 9.4 구문으로 작성된 코드는 이식 단계가 필요하지 않습니다.

100개 프로시저

회귀 및 선형 모형, 생존 분석, 다변량 기법과 군집 분석, 시계열, 품질 관리, 요약 및 보고. 각 프로시저에는 공개 참조 페이지가 있으므로, 예약된 작업의 의존성을 예약 전에 확인할 수 있습니다.

이미 서버에 있는 파일

Jenner는 SAS7BDAT와 XPT를 직접 읽고 쓰며, CSV와 Parquet도 지원합니다. 마운트된 볼륨이나 오브젝트 스토리지의 데이터셋은 변환할 필요가 없고, 출력은 다음 작업이 기대하는 형식으로 다시 쓸 수 있습니다.

분석가가 작성한 그대로의 프로그램

동일한 소스가 Linux, macOS, Windows에서 실행됩니다. 누군가의 노트북에서 개발한 프로그램이 여기서 예약 작업으로 수정 없이 실행되며, 분석과 운영 사이에 보통 끼어드는 재작성이 사라집니다.

증명할 수 있는 결과

Jenner는 NIST Statistical Reference Datasets 벤치마크의 58개 데이터셋을 모두 통과합니다. 통계 소프트웨어 정확도에 대한 표준적인 제3자 검증 모음입니다. 프로시저 참조 문서가 전부 공개되어 있으므로, 특정 PROC이 지원된다는 주장은 파이프라인에 넣기 전에 확인하실 수 있습니다.

자주 묻는 질문

Jenner 바이너리를 설치하고 파일에 대해 실행하십시오. SAS 언어의 독립적인 구현이므로 SAS가 없어도, SAS 라이선스가 없어도 Linux에서 .sas 프로그램을 직접 실행합니다. 사전에 변환하지 않습니다.

예. Linux는 SAS 9.4가 지원하는 플랫폼이므로 Apple 실리콘과 같은 플랫폼 문제가 아닙니다. 장벽은 라이선스이고, 서버에서는 보통 라이선스 서버도 장벽입니다. 거기에 도달하지 못하는 머신은 실행되지 않습니다.

예. GUI가 없고 화면을 필요로 하는 것도 없습니다. 평범한 명령줄 프로그램이며, 그 점이 SSH로만 접근하는 머신에서 쓸 수 있게 해 줍니다.

아니요. Jenner는 SAS 언어의 클린룸 구현이며 SAS 소프트웨어를 내장하거나 감싸거나 호출하지 않습니다. 갱신할 라이선스도 없고, 새벽 두 시에 작업이 실패할 대상이 되는 라이선스 서버도 없습니다.

바이너리를 이미지에 복사하고 엔트리포인트로, 또는 직접 만든 스크립트에서 호출하십시오. 시작하는 데 데몬도 화면도 네트워크 호출도 필요 없으므로, 이를 실행하는 컨테이너는 선택한 베이스 이미지만큼 작고 재현 가능합니다.

예, 그리고 이것이 여기까지 오시는 흔한 이유입니다. 의미 있는 종료 코드를 가진 단일 바이너리이므로, CI 작업이 .sas 프로그램을 빌드 단계로 실행하고 프로그램이 실패하면 파이프라인을 실패시킬 수 있습니다. cron, systemd 타이머, Airflow에서의 예약도 같은 방식으로 작동합니다.

예. 실패한 프로그램은 0이 아닌 값으로 종료되므로, cron 메일이나 systemd 유닛, 파이프라인 단계가 로그에 파묻힌 오류를 동반한 깨끗한 실행이 아니라 실패 자체를 보게 됩니다. 도입하는 무엇에 대해서든 확인할 가치가 있습니다. 빨간 글씨로 가득한 로그와 종료 코드 0의 조합이야말로 야간 실패가 보이지 않게 되는 방식입니다.

그것이 의도입니다. 동일한 소스가 Linux, macOS, Windows에서 실행되므로 분석가의 파일과 예약 작업의 파일은 같은 파일입니다. 지원 범위가 언어 전체는 아니므로, 본인 코드에 대해 확인하는 정직한 방법은 양쪽에서 실행해 로그를 비교하는 것입니다.

Altair SLC 역시 SAS 라이선스 없이 SAS 언어 프로그램을 실행하며, Linux도 포함되고, 저희보다 훨씬 오래 해 왔습니다. 다른 누군가의 특수 사례가 이미 발생하고 해결된 서버 환경이라면 그 이력은 실제 돈의 가치가 있습니다. 둘 다 비교해 보십시오. 현재는 지멘스가 Rapidminer SLC라는 이름으로 판매하므로 두 이름으로 모두 검색해 보시는 편이 좋습니다.

종종 그래야 합니다. 서버에서는 주변 도구가 이미 Python이라 다른 곳보다 더 끌립니다. SAS 코드가 적거나 팀이 어차피 SAS를 떠난다면 다시 작성하십시오. 그대로 실행할 근거가 가장 강한 경우는 코드가 많고, 검증되어 있으며, 재작성이 단순한 재코딩이 아니라 재검증을 의미할 때입니다.

Linux 서버에서 SAS 프로그램을 실행하십시오

바이너리 하나, 라이선스 서버 없음, 그리고 스케줄러가 신뢰할 수 있는 종료 코드.

무료로 시작하기