Interested in a Teradata Python Driver?
4/15/2012Teradata is big in the data warehousing world, but it has horrible support for all of my favorite platforms. I've been thinking about writing a native Python DBAPI 2.0 driver for Teradata. I have to use this database for work, and I'd like to have first class Python support on all my platforms (OS X and much more modern Linux distributions than they support).
It doesn't look terribly complicated. There's not a lot of documentation available, though. The best I've found was this blog post that details some basics of the protocol.
There is also a document on their site, B035-2417-020A, that specifies the data layout on the wire, which they call parcels. The parcel.h header included with Cliv2 also pretty plainly describes structs that match the protocol.
Of course, there are difficulties, too. There is little or no discussion anywhere that I can find of the encryption method used for the authentication packet. And I'm sure it'll take some painful debugging work to track down details like why there appear to be two different bytes, not continuous, in the header to specify the message size. But those things can be overcome.
My other options are limited. Because installing the Teradata client libraries require a libc++ that's so old it's not even distributed anymore, I am unable to continue developing on Linux with Teradata. OS X isn't even an option.