Dataset, abstracción de bases de datos relacionales para pythoneros vagos


Desarrollo tech.lat dev

Dataset, abstracción de bases de datos relacionales para pythoneros vagos

Dataset, abstracción de bases de datos relacionales para pythoneros vagos

Fernando Siles

Seamos serios, tratar con bases de datos así, a pelo, es un peñazo de cuidado. Por eso surgen frameworks, interfaces, abstracciones o como quieras llamarlos para facilitar esta labor. Es el caso de (aunque son muy distintos entre si) Hibernate (Java) o PDO (PHP). Para Python también hay varias opciones pero hoy te traemos una que tiene especial buena pinta: dataset.

La premisa de dataset es hacer tan sencillo manejarse con bases de datos en Python como lo es manejarse con ficheros a través de JSON y la verdad es que tiene unas características bien interesantes:

  • Schema automático, es decir, si escribes una tabla o una columna que no existe, se crea. Magia potagia.

  • Upserts, o sea, no tienes que distinguir si updateas o insertas, ya lo hace dataset por ti

  • Es compatible con la mayoría de las bases de datos relacionales top como MySQL, Postgre SQL, SQLite (o cualquier otra que incluya SQL en su nombre, basicamente).

  • La base de datos puede ser exportada de manera sencilla a través de scripts e incluyendo metadatos y nombres de ficheros dinámicos

  • Query helpers, como all rows en una tabla o all distinct values a través de un conjunto de columnas.

Y ya que estamos, un ejemplo de como queda el código:

import dataset

db = dataset.connect('sqlite:///:memory:')

table = db['sometable']table.insert(dict(name='John Doe', age=37))table.insert(dict(name='Jane Doe', age=34, gender='female'))

john = table.find_one(name='John Doe')

Elegante a la par que bello. Tiene buena pinta. Ya sabéis pythoneros, a probarlo (los que no lo hayáis hecho todavía, claro) y a darnos feedback al resto vía comentarios.

Pd: obviamente puedes forkear dataset desde Github.

Vía e imagen | dataset