Gestión de datos

Acceso a una base de datos PSQL Zen con Python y ODBC

Corporación Actian

4 de enero de 2018

Conectar ServiceNow a los datos de otras aplicaciones no tiene por qué ser difícil

Como programador de la vieja escuela de hace unas décadas, decidí ver lo difícil que sería acceder a una base de datos Zen (antes conocida como PSQL) desde mis recién adquiridos conocimientos de Python. En caso de que no estés familiarizado con ella, Zen es el software de base de datos híbrido NoSQL y SQL de Embarqué zero-admin, nano-footprint de Actian, y Python es un lenguaje de programación de alto nivel utilizado con frecuencia en ciencia de datos y aplicaciones de Internet (entre muchas otras cosas).

Ya armado con algunos conocimientos de Actian Zen, todo lo que tuve que hacer fue completar un curso EdX de introducción a la programación en Python, y luego descargar e instalar Python 3.6 junto con la biblioteca pyodbc correspondiente.

El sencillo programa para conectar Zen con Python que se muestra a continuación ¡tiene unas 30 líneas de código! Se conecta a la base de datos "demodata", asigna un cursor y ejecuta una serie de sentencias SQL para DROP TABLE, CREATE TABLE, INSERT y SELECT. ¿A que es fácil? Incluso me las arreglé para pedir la entrada y utilizar un parámetro en el INSERT para el valor proporcionado por el usuario. Aquí está el código:

import os
import sys
import pyodbc

def main():
   conn_str = 'Driver={Pervasive ODBC Interface};server=localhost;DBQ=demodata'
   db = pyodbc.connect(conn_str)
   c = db.cursor()
   c.execute("DROP TABLE IF EXISTS test_table")
   c.execute("CREATE TABLE test_table (id identity, name char(32), create_date date)")

   isql_dml = """INSERT INTO test_table VALUES (0, ?, CURRENT_DATE())"""
   iinserting = True
   while iinserting:
      new_name = input('Enter name to insert, Q to quit: ' )
      if new_name.lower() == 'q':
         iinserting = False
      else:
         if new_name == '':
            print(' Please enter a non-empty string.')
         else:
            print(' Inserting:', new_name)
            c.execute(isql_dml, (new_name,))
            c.commit()

   c.execute("SELECT COUNT(*) FROM test_table")
   row = c.fetchone()
   if row:
      print('You inserted', row, 'name(s)')
   return 0

if __name__ == "__main__":
   sys.exit(main())

Es fácil ver lo sencillo pero potente que es este acceso, y lo fácilmente que podría utilizarse para pruebas y escenarios de atención al cliente.

Descargue hoy la versión de prueba de Actian Zen y escriba su primera aplicación Python ODBC. Versiones de prueba de 30 días están disponibles aquí. Si tiene alguna pregunta sobre Zen u otros productos Actian, no dude en preguntar en nuestros foros de la comunidad.

logo avatar actian

Acerca de Actian Corporation

Actian hace que los datos sean fáciles. Nuestra plataforma de datos simplifica el modo en que las personas conectan, gestionan y analizan los datos en entornos en la nube, híbridos y locales. Con décadas de experiencia en gestión de datos y análisis, Actian ofrece soluciones de alto rendimiento que permiten a las empresas tomar decisiones basadas en datos. Actian cuenta con el reconocimiento de los principales analistas y ha recibido premios del sector por su rendimiento e innovación. Nuestros equipos comparten casos de uso probados en conferencias (por ejemplo, Strata Data) y contribuyen a proyectos de código abierto. En el blog de Actian, cubrimos temas que van desde la ingestión de datos en tiempo real hasta el análisis impulsado por IA.