SAS SWATパッケージは、 SAS Cloud Analytic Services (CAS)エンジン (SAS Viya フレームワークの中心部分) への Python インターフェイスです。このパッケージを使用すると、デスクトップまたはクラウドに任意のサイズのデータ セットをロードして分析できます。 CAS はローカル デスクトップまたはホストされたクラウド環境で使用できるため、クライアント側での Python の使いやすさを維持しながら、必要なだけの処理能力を使用して非常に大規模なデータ セットを分析できます。
SWAT を使用すると、 CAS分析アクションのワークフローを実行し、要約されたデータをプルダウンしてクライアント側で Python でさらに処理したり、使い慣れた Pandas データ構造を使用して他のソースのデータとマージしたりできます。実際、 SWATパッケージは Pandas パッケージの API の多くを模倣しているため、現在の Pandas ユーザーにとって CAS の使用は親しみやすいものと感じられます。
クラウドでの最高の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 Wheel パッケージが必要です。このパッケージがインストールされていない場合は、 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()
貢献者契約には、プロジェクトに貢献する方法が詳しく記載されています。 Contributing には、プロジェクトへの貢献に関する指示とルールが含まれています。
LICENSE.md には、このパッケージがどのようにリリースされ、ライセンスが付与されるかが記載されています。