A talk I gave at EuroPython 2010
Django and DatabasesFun with
View Slide
""Andrew speaks Englishlike a machine gunspeaks bullets.""Reinout van Rees
Introduction
from django.db import models
First, an aside
""When all you have is ahammer, everythinglooks like a nail""Abraham Manslow (paraphrased)
Also, "NoSQL"? Really?
queryset.raw()
qs = Teacher.objects.raw("""SELECT t.name, COUNT(s.id)FROM school_teacher AS tINNER JOIN school_student AS sON t.id = s.teacher_idGROUP BY t.nameHAVING COUNT(s.id) > 2""")
queryset.aggregate()
qs = Teacher.objects.annotate(num_students =models.Count('student')).filter(num_students__gt=2)
Searchhaystack __search=
Schema Changes
Changing Requirements
Dynamic/Unknown Data
Document DatabasesMongoDBCouchDB
Key-Value StoresRedisCassandra
RedisSets Sorted Sets HashesPub/Sub Atomicity
Message QueuesAMQPCelery
Various OthersGraph databasesFilesystemsVCSs
Conclusion
Thanks.Andrew Godwin@andrewgodwinhttp://aeracode.org