Artículo
· 18 abr, 2023 Lectura de 2 min

SQLAlchemy - la forma más sencilla de usar Python y SQL con las bases de datos de IRIS

Introducción

En algunos de mis artículos he hablado de tipos entre IRIS y Python, y está claro que no es tan fácil acceder a objetos de un lado a otro. 

Afortunadamente, el trabajo ya se ha hecho, con la creación de SQLAlchemy-iris, que hace mucho más fácil para Python acceder a los objetos de IRIS, y voy a mostraros cómo funciona.

¡Gracias, @Dmitry Maslennikov!
 

Instalación

Para instalarlo, simplemente abre tu terminal con acceso de administrador y escribe

pip install sqlalchemy-iris

y eso también instalará los pre-requisitos para ti, si fuera necesario.
 

Uso

Ahora, en un fichero Python, puedes importar el módulo, conectar a la base de datos y jugar con sqlalchemy como quieras. Si te sientes cómodo, puedes seguir estos pasos:

  • Importa "create_engine" desde sqlalchemy y crea el motor con el string "iris://username:password@IP:port/namespace". Por supuesto, puedes importar el módulo completo, pero "create_engine" crea una instancia de Engine (sqlalchemy.engine, más información aquí) que tiene todas las subclases necesarias para lo que estoy presentando aquí.
from sqlalchemy import create_engine

engine = create_engine("iris://_SYSTEM:SYS@localhost:1972/SAMPLE")
  • Crea la conexión (sqlalchemy.engine.connection, más información aquí) para que puedas trabajar con transacciones, ejecuciones simples, etc.
conn = engine.connect()

¡Genial! Ahora tienes acceso configurado a tu base de datos.

 

Para una consulta sencilla con SELECT, y para iterar por el conjunto de resultados, haz lo siguiente (como siempre, usando como ejemplo la tabla creada en este artículo):

query = 'SELECT Name, Age  from Sample.PersistentData WHERE Age >=21'
result = conn.exec_driver_sql(query)

Ahora, result es un CursorResult (sqlalchemy.engine.CursorResult). Puedes consultar todo lo que puedes hacer con un CursorResult aquí, en la documentación oficial.

Esto es todo lo que tienes que hacer para una interacción sencilla:

print("Name, Age")
for row in result:
    print(row[0], ", ", row[1])

 y con un poco de formato, puedes tener un output como este:

 

También puedes consultar la documentación oficial para ver más detalles y posibilidades, ahora que sabes por donde empezar.

 

P.D.: también puedes importar "text" desde sqlalchemy y ejecutar la consulta como

result = conn.execute(text(query))

que producirá exactamente los mismos resultados.
 

Conclusión

También puedes utilizar comandos DDL o cualquier otro DML, y hay incluso más soporte para trabajar con ORM (Object Relational Mapping), pero como este artículo solo es una "introducción", no voy a profundizar más.

¿Te gustaría leer más tutoriales sobre SQLAlchemy? ¿Quizá la próxima vez usando ORM?

Escribe en los comentarios. ¡Te leo!

Comentarios (0)1
Inicie sesión o regístrese para continuar