Artigo
· Mar. 9, 2023 3min de leitura

SQLAlchemy - o jeito mais fácil de usar Python e SQL com bases de dados do IRIS

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

 

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")

 

  • 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()

 

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)

 

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])

 

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))

 

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!

Discussão (2)2
Entre ou crie uma conta para continuar