The following provides a high-level view on Drill's architecture (without going into details concerning data or control flow):
Essentially, there are three parts:
- In the user land: providing interfaces such as a command line interface (CLI), a REST interface, etc. for direct interaction or allowing applications to interact with Drill.
- In the processing space: pluggable query languages (needs parser that can turn the respective query language into Drill's logical plan) and core (planner, engines)
- In the data sources space: pluggable data sources (needs scanner), either local or in a cluster setup