O pacote SAS SWAT é uma interface Python para o mecanismo SAS Cloud Analytic Services (CAS) (a peça central da estrutura SAS Viya). Com este pacote, você pode carregar e analisar conjuntos de dados de qualquer tamanho em seu desktop ou na nuvem. Como o CAS pode ser usado em um desktop local ou em um ambiente de nuvem hospedado, você pode analisar conjuntos de dados extremamente grandes usando o poder de processamento necessário, mantendo a facilidade de uso do Python no lado do cliente.
Usando SWAT , você pode executar fluxos de trabalho de ações analíticas CAS e, em seguida, extrair os dados resumidos para processamento posterior no lado do cliente em Python ou para mesclar com dados de outras fontes usando estruturas de dados familiares do Pandas. Na verdade, o pacote SWAT imita muito da API do pacote Pandas, de modo que o uso do CAS deve parecer familiar aos usuários atuais do Pandas.
Com as melhores análises SAS na nuvem e o uso de Python e sua grande coleção de pacotes de código aberto, o pacote SWAT oferece acesso ao melhor dos dois mundos.
Para visualizar as atualizações deste projeto, consulte o Log de alterações.
Para acessar o protocolo binário CAS (recomendado), você precisa do seguinte:
O protocolo binário requer componentes pré-compilados encontrados apenas no instalador pip
. Essas peças não estão disponíveis como código-fonte e estão sob uma licença separada (consulte a documentação no SAS TK). O protocolo binário oferece melhor desempenho que REST, especialmente ao transferir grandes quantidades de dados. Ele também oferece carregamento de dados mais avançado do cliente e recursos de formatação de dados.
Para acessar apenas a interface CAS REST, você pode usar o código Python puro que roda em Python 3.7 a 3.11 em todas as plataformas. Embora não seja tão rápido quanto o protocolo binário, a interface Python pura é mais portátil.
Algumas distribuições Linux podem não instalar todas as bibliotecas compartilhadas necessárias por padrão. Mais notavelmente, a biblioteca compartilhada libnuma.so.1
é necessária para fazer conexões de protocolo binário com CAS. Caso você não possua esta biblioteca em sua máquina você pode instalar o pacote numactl
para sua distribuição para disponibilizá-la ao SWAT.
O pacote SWAT usa muitos recursos do pacote Pandas Python e outras dependências do Pandas. Se você ainda não possui a versão 0.16.0 ou superior do Pandas instalada, pip
irá instalá-la ou atualizá-la quando você instalar o SWAT.
Se você estiver usando pip
versão 23.1 ou posterior para instalar a partir de um arquivo tar.gz, o pacote python wheel será necessário. Se você não tiver este pacote instalado, poderá instalá-lo usando pip
.
O SWAT pode ser instalado usando pip
:
pip install swat
Você também pode instalar a partir dos arquivos na página de lançamentos do projeto SWAT. Basta localizar o arquivo da sua plataforma e instalá-lo usando pip
da seguinte maneira:
pip install https://github.com/sassoftware/python-swat/releases/download/vX.X.X/python-swat-X.X.X-platform.tar.gz
Onde XXX
é a versão que você deseja instalar e platform
é a plataforma na qual você está instalando. Você também pode usar a distribuição do código-fonte se quiser usar apenas a interface CAS REST. Não contém suporte para o protocolo binário.
Para obter a documentação completa, acesse sassoftware.github.io/python-swat. Um exemplo simples é mostrado abaixo.
Depois de instalar o SWAT e ter um servidor CAS para se conectar, você pode importar o swat e criar uma conexão:
>>> import swat
>>> conn = swat.CAS(host, port, username, password)
Observe que a porta padrão para a conexão Python SWAT é 5570.
Se você estiver usando o python-swat versão 1.8.0 ou posterior para se conectar a um servidor SAS Viya 3.5 CAS usando Kerberos, antes de conectar você deverá definir o Nome Principal do Serviço (SPN) usando a variável de ambiente CASSPN. Para SAS Viya 3.5, a string SPN deve começar com 'sascas@', seguido pelo nome do host.
export CASSPN=sascas@host
Se você receber uma mensagem de erro sobre a rotina de suporte TCP/IP negClientSSL , provavelmente terá um problema com a configuração do seu certificado SSL. Consulte a documentação de criptografia para obter mais informações.
Se isso for bem-sucedido, você poderá executar uma ação no servidor 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()
O Acordo do Contribuidor detalha como as contribuições podem ser feitas para o projeto. A Contribuição inclui instruções e regras relacionadas à realização de contribuições no projeto.
O LICENSE.md indica como este pacote é lançado e licenciado.