Python: big data's secret power tool

25.10.2012
When it comes to analyzing big data, software packages such as Hadoop or the R statistical language come readily to mind. But at least one company, AppNexus, also relies on the Python programming language to help conduct heavy-duty data analysis.

On Friday, at the conference in New York, two AppNexus engineers will explain how this real-time online-advertising-platform company uses the Python programming language to scale operations.

"We're in a state of rapid growth," said AppNexus Director of Optimization and Analytics David Himrod. Himrod, along with AppNexus Technical Lead Engineer Steve Kannan, will present the talk. When Himrod started working at AppNexus three years ago, it had 30 employees. Now it has more than 350. So Himrod is very interested in using technologies that can scale rapidly.

Key to Python's usefulness is its simplicity, Himrod said. One of the biggest challenges that Himrod faces is how to get a diverse set of employees working on the same technology stack. Python provides employees with different backgrounds -- notably engineers, mathematicians and analysts -- a common, easy-to-understand language that can be used to prototype new functionality for the company. "What's nice is we don't have to hire for a specific programming background. Python is easy to teach," Himrod said. "Python is a really clean, easy language to learn."

In fact, Python is so easy to learn that the company's intern teaches new employees the language. He had no programming experience but was able to learn it quickly. In addition, Python libraries such as SciPy, iPython and Pandas provide much of the mathematical functionality typically found in the R programming language.

AppNexus uses a range of technologies for storing and parsing data, including MySQL, IBM's Netezza, Hewlett-Packard's Vertica, Apache Hadoop and HBase. In order to offer its ad services, the company processes about 15TB each day. "We've been able to build a framework that makes it easy for us to grab data from all of these disparate data sources and model them. So instead of everyone spending their time writing database connector code, they are able to use a simple configuration and quickly get off the ground," Himrod said.