Brussels / 4 & 5 February 2017



Embrace the relational model

Tanker goal is to allow easy batch operations without compromising database modeling. For pandas users, it's like DataFrame.to_sql on steroids.

The Tanker inception is based on two strong observations (not particularly new):

  • The object-relation mapping in so called libraries is sometimes source of performance and semantic difficulties, especially with queries involving multiple joins. On the other hand, the relational model is both powerful and simple, and there are no reason not to expose it to the Python world.

  • When working with external data sources, we are often faced with the challenge of matching those records with the database content. We have to know which record is new, which has been updated, etc. We also often have to de-normalize content and map it with a (hopefully) well-designed and 3NF schema.

This presentation will show how Tanker answers those two aspects, how it was inspired by existing libraries and how it is currently used in production applications.


Bertrand Chenal