Data driven organizations gather information on various aspects of their endeavours and analyze that information to gain valuable insights or to increase automatization. Today, these organizations can choose from a wealth of specialized analytical libraries and platforms to meet their functional and non-functional requirements. Indeed, many common application scenarios involve the combination of multiple such libraries and platforms in order to provide a holistic perspective. Due to the scattered landscape of specialized analytical tools, this integration can result in complex and hard to evolve applications. In addition, the necessary movement of data between tools and formats can introduce a serious performance penalty. In this article we present a unified programming environment for analytical applications. The environment includes AL, a programming language that combines concepts of various common analytical domains. Further, the environment also includes a flexible compilation system that uses a language-, domain-, and platform independent program intermediate representation to separate high level application logic and physical organisation. We provide a detailed introduction of AL, establish our program intermediate representation as a generally useful abstraction, and give a detailed explanation of the translation of AL programs into workloads for our experimental shared-memory processing engine.
[1]
Torsten Grust,et al.
Comprehending queries
,
1999,
Ausgezeichnete Informatikdissertationen.
[2]
Michael Stonebraker,et al.
The BigDAWG Polystore System
,
2015,
SGMD.
[3]
Henrik Loeser,et al.
"One Size Fits All": An Idea Whose Time Has Come and Gone?
,
2011,
BTW.
[4]
Torsten Grust,et al.
How to Comprehend Queries Functionally
,
1999,
Journal of Intelligent Information Systems.
[5]
Paolo Papotti,et al.
Road to Freedom in Big Data Analytics
,
2016,
EDBT.
[6]
Torsten Grust,et al.
Monad comprehensions : a versatile representation for queries
,
2004
.
[7]
Saman P. Amarasinghe,et al.
Weld : A Common Runtime for High Performance Data Analytics
,
2016
.
[8]
Steven Hand,et al.
Musketeer: all for one, one for all in data processing systems
,
2015,
EuroSys.
[9]
Philip Wadler,et al.
Comprehending monads
,
1990,
LISP and Functional Programming.
[10]
Volker Markl,et al.
Implicit Parallelism through Deep Language Embedding
,
2016,
SGMD.