Most research has proposed scalable and parallel analytic algorithms that work outside a DBMS. On the other hand, R has become a very popular system to perform machine learning analysis, but it is limited by main memory and single-threaded processing. Recently, novel columnar DBMSs have shown to provide orders of magnitude improvement in SQL query processing speed, preserving the parallel speedup of row-based parallel DBMSs. With that motivation in mind, we present COLUMNAR, a system integrating a parallel columnar DBMS and R, that can directly compute models on large data sets stored as relational tables. Our algorithms are based on a combination of SQL queries, user-defined functions (UDFs) and R calls, where SQL queries and UDFs compute data set summaries that are sent to R to compute models in RAM. Since our hybrid algorithms exploit the DBMS for the most demanding computations involving the data set, they show linear scalability and are highly parallel. Our algorithms generally require one pass on the data set or a few passes otherwise (i.e. fewer passes than traditional methods). Our system can analyze data sets faster than R even when they fit in RAM and it also eliminates memory limitations in R when data sets exceed RAM size. On the other hand, it is an order of magnitude faster than Spark (a prominent Hadoop system) and a traditional row-based DBMS.
[1]
Carlos Ordonez,et al.
Statistical Model Computation with UDFs
,
2010,
IEEE Transactions on Knowledge and Data Engineering.
[2]
Ramakrishna Varadarajan,et al.
The Vertica Analytic Database: C-Store 7 Years Later
,
2012,
Proc. VLDB Endow..
[3]
Carlos Ordonez,et al.
Integrating K-means clustering with a relational DBMS using SQL
,
2006,
IEEE Transactions on Knowledge and Data Engineering.
[4]
Wellington Cabrera,et al.
The Gamma Operator for Big Data Summarization on an Array DBMS
,
2014,
BigMine.
[5]
Michael Stonebraker,et al.
C-Store: A Column-oriented DBMS
,
2005,
VLDB.