Programming Big Data Analysis: Principles and Solutions