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 PyData 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.
As a result of this easy familiarity, Python allows the company to move code from development to production more quickly, since the same code created as a prototype can easily be moved into production. At the talk, Himrod will provide an example of how one analyst, who had only a minor in computer science, was able to develop an algorithm that was later deployed at full scale.
Created in the late 1980s, Python is a highly flexible and dynamic language that has found a large audience among system administrators and developers who need a language to quickly assemble programs. The PyData conference, however, will focus on using Python for more specialized analysis tasks, with different talks on using Python and related libraries to process data streams, to visualize datasets, and to carry out scientific calculations.