Nothing wrong with this approach I suppose but wouldn't most people be better off to just use a database for this sort of thing?
http://aadrake.com/command-line-tools-can-be-235x-faster-tha...
Most CSV analysis is static, not something ongoing with inserts/updates/etc, so using a combination of unix tools to handle the data processing seems like a sufficient solution for many scenarios.