Tämä on mainio uutinen: Alex Gaynor kehittää tänä vuonna Djangon NoSQL-tukea Google Summer of Code -projektina. Sama kaveri väänsi viime vuoden GSoCissa Djangolle multi-db-tuen, jolla Django-webbisaitteja voi skaalata lisäämällä useita rinnakkaisia SQL-tietokantoja jakamaan kuormitusta. Se on tulossa ihan tuotantokäyttöön Django 1.2:ssa lähiviikkoina.

Djangon NoSQL-tuki, tai siis virallisesti Django-nonrel, ei ole ihan yksinkertainen asia ratkaistavaksi. Sen ongelmista keskusteltiin hiljattain Django Dosen podcastissa. On päätettävä mitä NoSQL-tietokantoja tuetaan, ja siinä taas ratkaisee se, millaisia indeksointi- ja hakuominaisuuksia kustakin löytyy.

Useimmille NoSQL-kannoille on yhteistä lähinnä key-value-store-ajattelu ja se, että valuet eli tietokannan datakentät voivat sisältää monimurkaisia tietorakenteita, eivätkä vain tiettyjä ennalta määriteltyjä sarakkeita kuten SQL:ssä. Mutta sitten taas tiedon indeksointia ja hakemista käsitellään hyvinkin eri tavoin.

Toistaiseksi Django-nonrel näyttää keskittyneen Google App Engine -tukeen, mutta itse toivoisin sen tukevan jatkossa myös Cassandraa ja ehkäpä CouchDB:täkin.

Published 27.4.2010