SAS SWAT 패키지는 SAS Cloud Analytic Services(CAS) 엔진(SAS Viya 프레임워크의 핵심)에 대한 Python 인터페이스입니다. 이 패키지를 사용하면 데스크탑이나 클라우드에서 모든 크기의 데이터 세트를 로드하고 분석할 수 있습니다. CAS는 로컬 데스크톱이나 호스팅된 클라우드 환경에서 사용할 수 있으므로 클라이언트 측에서 Python의 사용 편의성을 유지하면서 필요한 만큼의 처리 능력을 사용하여 매우 큰 데이터 세트를 분석할 수 있습니다.
SWAT를 사용하면 CAS 분석 작업의 워크플로를 실행한 다음 요약된 데이터를 가져와 Python의 클라이언트 측에서 추가 처리하거나 익숙한 Pandas 데이터 구조를 사용하여 다른 소스의 데이터와 병합할 수 있습니다. 실제로 SWAT 패키지는 Pandas 패키지의 API 대부분을 모방하므로 CAS 사용은 현재 Pandas 사용자에게 친숙하게 느껴질 것입니다.
클라우드의 동급 최고의 SAS 분석 기능과 Python 및 대규모 오픈 소스 패키지 컬렉션을 사용하는 SWAT 패키지를 사용하면 두 가지 장점 모두에 액세스할 수 있습니다.
이 프로젝트의 업데이트를 보려면 변경 로그를 참조하세요.
CAS 바이너리 프로토콜(권장)에 액세스하려면 다음이 필요합니다.
바이너리 프로토콜에는 pip
설치 프로그램에만 있는 사전 컴파일된 구성 요소가 필요합니다. 이러한 부분은 소스 코드로 사용할 수 없으며 별도의 라이선스가 적용됩니다(SAS TK 설명서 참조). 바이너리 프로토콜은 특히 대용량 데이터를 전송할 때 REST보다 더 나은 성능을 제공합니다. 또한 클라이언트에서 고급 데이터 로딩 및 데이터 형식 지정 기능을 제공합니다.
CAS REST 인터페이스에만 액세스하려면 모든 플랫폼에서 Python 3.7~3.11에서 실행되는 순수 Python 코드를 사용할 수 있습니다. 바이너리 프로토콜만큼 빠르지는 않지만 순수 Python 인터페이스는 이식성이 더 뛰어납니다.
일부 Linux 배포판에서는 기본적으로 필요한 공유 라이브러리 중 일부를 설치하지 않을 수 있습니다. 가장 주목할 만한 점은 CAS에 바이너리 프로토콜을 연결하려면 공유 라이브러리 libnuma.so.1
이 필요하다는 것입니다. 컴퓨터에 이 라이브러리가 없으면 배포용 numactl
패키지를 설치하여 SWAT에서 사용할 수 있도록 할 수 있습니다.
SWAT 패키지는 Pandas Python 패키지의 많은 기능과 Pandas의 기타 종속성을 사용합니다. Pandas 버전 0.16.0 이상이 아직 설치되어 있지 않은 경우 SWAT를 설치할 때 pip
이를 설치하거나 업데이트합니다.
pip
버전 23.1 이상을 사용하여 tar.gz 파일에서 설치하는 경우 Python 휠 패키지가 필요합니다. 이 패키지가 설치되어 있지 않은 경우 pip
사용하여 설치할 수 있습니다.
SWAT는 pip
사용하여 설치할 수 있습니다.
pip install swat
SWAT 프로젝트 릴리스 페이지의 파일에서 설치할 수도 있습니다. 플랫폼에 맞는 파일을 찾아 다음과 같이 pip
사용하여 설치하면 됩니다.
pip install https://github.com/sassoftware/python-swat/releases/download/vX.X.X/python-swat-X.X.X-platform.tar.gz
여기서 XXX
설치하려는 릴리스이고 platform
설치하려는 플랫폼입니다. CAS REST 인터페이스만 사용하려는 경우 소스 코드 배포를 사용할 수도 있습니다. 바이너리 프로토콜에 대한 지원은 포함되어 있지 않습니다.
전체 문서를 보려면 sassoftware.github.io/python-swat로 이동하세요. 간단한 예가 아래에 나와 있습니다.
SWAT를 설치하고 연결할 CAS 서버가 있으면 swat를 가져와서 연결을 생성할 수 있습니다.
>>> import swat
>>> conn = swat.CAS(host, port, username, password)
Python SWAT 연결의 기본 포트는 5570입니다.
Python-swat 버전 1.8.0 이상을 사용하여 Kerberos를 사용하는 SAS Viya 3.5 CAS 서버에 연결하는 경우 연결하기 전에 CASSPN 환경 변수를 사용하여 SPN(서비스 사용자 이름)을 설정해야 합니다. SAS Viya 3.5의 경우 SPN 문자열은 'sascas@'로 시작하고 그 뒤에 호스트 이름이 와야 합니다.
export CASSPN=sascas@host
TCP/IP negClientSSL 지원 루틴 에 대한 오류 메시지가 표시되면 SSL 인증서 구성에 문제가 있을 가능성이 높습니다. 자세한 내용은 암호화 설명서를 참조하세요.
성공하면 CAS 서버에서 다음 작업을 실행할 수 있습니다.
>>> out = conn.serverstatus()
NOTE: Grid node action status report: 1 nodes, 6 total actions executed.
>>> print(out)
[About]
{'CAS': 'Cloud Analytic Services',
'Copyright': 'Copyright © 2014-2016 SAS Institute Inc. All Rights Reserved.',
'System': {'Hostname': 'cas01',
'Model Number': 'x86_64',
'OS Family': 'LIN X64',
'OS Name': 'Linux',
'OS Release': '2.6.32-504.12.2.el6.x86_64',
'OS Version': '#1 SMP Sun Feb 1 12:14:02 EST 2015'},
'Version': '3.01',
'VersionLong': 'V.03.01M0D08232016',
'license': {'expires': '20Oct2016:00:00:00',
'gracePeriod': 62,
'site': 'SAS Institute Inc.',
'siteNum': 1,
'warningPeriod': 31}}
[server]
Server Status
nodes actions
0 1 6
[nodestatus]
Node Status
name role uptime running stalled
0 cas01 controller 4.836 0 0
+ Elapsed: 0.0168s, user: 0.016s, sys: 0.001s, mem: 0.287mb
>>> conn.close()
기여자 계약은 프로젝트에 어떻게 기여할 수 있는지 자세히 설명합니다. 기여에는 프로젝트에 기여하는 것과 관련된 지침과 규칙이 포함됩니다.
LICENSE.md에는 이 패키지가 어떻게 출시되고 라이선스가 부여되는지 명시되어 있습니다.