Introdução
Em alguns dos últimos artigos, eu falei sobre tipos entre IRIS e Python, e ficou claro que não é tão fácil acessar objetos de um lado pelo outro.
Por sorte, o trabalho já foi feito para criar o SQLAlchemy-iris (clique no link para ver na Open Exchange), o que faz tudo muito mais fácil para o Python acessar os objetos do IRIS, e eu vou mostrar como começar.
Obrigada @Dmitry Maslennikov !
Instalando
Para instalar, simplesmente abra seu terminal com acesso do administrador e digite
pip install sqlalchemy-iris
Shell SessionShell Session
Isso também vai instalar os pré-requisitos, se necessário.
Usando
Agora, num arquivo de Python, você pode importar o módulo, conectar à base de dados e brincar com sqlalchemy da forma que quiser. Se você se sentir confortável, pode seguir os passos:
- Importe "create_engine" do sqlalchemy e crie a Engine com a string "iris://usuário:senha@IP:porta/namespace". É claro que também poderia importar o módulo todo, mas "create_engine" cria uma instância de Engine (sqlalchemy.engine, para mais informação, clique aqui), que tem todas as subclasses necessárias para o que estou apresentando aqui.
from sqlalchemy import create_engine
engine = create_engine("iris://_SYSTEM:SYS@localhost:1972/SAMPLE")
PythonPython
- Crie a conexão (sqlalchemy.engine.connection, para mais informação, clique aqui) para que possa trabalhar com transações, execuções simples, etc.
conn = engine.connect()
PythonPython
Muito bem! Agora você tem acesso configurado à sua base de dados.
Para uma simples query com SELECT, e para iterar pelo conjunto de resultados, faça o seguinte (como sempre, usando como exemplo a tabela criada nesse artigo):
query = 'SELECT Name, Age from Sample.PersistentData WHERE Age >=21'
result = conn.exec_driver_sql(query)
ObjectScriptObjectScript
Agora, result é um CursorResult (sqlalchemy.engine.CursorResult). Você pode checar tudo que pode fazer com um CursorResult aqui, na documentação oficial.
Isso é tudo o que tem que fazer para uma iteração simples:
print("Name, Age")
for row in result:
print(row[0], ", ", row[1])
PythonPython
e com um pouco de formatação, você terá um output como esse:
Você também pode checar a documentação oficial para mais detalhes e possibilidades, agora que sabe por onde começar.
PS.: você também pode importar "text" do sqlalchemy e executar a query como
result = conn.execute(text(query))
PythonPython
o que vai produzir exatamente os mesmos resultados.
Conclusão
Você também pode utilizar comandos DDL ou qualquer outro DML, e há ainda maior suporte para trabalhar com ORM (Object Relational Mapping), mas já que esse artigo é apenas um "kick off", não vou prolongar sobre isso.
Você gostaria de mais tutoriais com SQLAlchemy? Talvez numa próxima vez utilizando ORM?
Fique à vontade para entrar com contato!
parabéns!!!!!
Muito obrigada!!!!