Quicksql: A Unified Cross‑Data‑Source SQL Query Engine
Quicksql is an open‑source, cross‑data‑source SQL engine built on Apache Calcite that provides a unified, safe, and fast SQL interface, enabling users to query heterogeneous storage systems such as Hive, MySQL, Elasticsearch, and Druid through command‑line, API, or JDBC connections.
SQL (Structured Query Language) is the most widely used data query language, originally designed for relational databases but now supported by many storage engines. However, variations in SQL implementations across engines create learning and integration challenges for data analysts.
Quicksql (QSQL) was created to address these issues by offering a simple, secure, and fast unified SQL query engine that abstracts away differences between underlying data stores.
Quicksql aims to reduce learning and switching costs, allowing users to focus on business logic rather than engine‑specific syntax. For organizations, this improves data analysis efficiency and lowers training expenses.
Implemented on top of Apache Calcite, Quicksql follows the ANSI SQL‑2003 standard while extending certain semantics to provide a consistent language across engines. It parses user queries, transforms them according to engine capabilities, and generates executable SQL for the target system. An intelligent selector chooses the most efficient execution mode, such as Spark for mixed‑engine queries.
Key Features
Unified SQL Semantics – Provides a single SQL dialect that users can learn once.
Mixed‑SQL Support – Enables joins, unions, and other operations across heterogeneous sources (e.g., Hive ↔ MySQL) that traditional SQL cannot handle.
Extensibility – Engine‑agnostic design allows easy addition of new data sources (Druid, MongoDB, etc.) and compute engines (Spark, Flink). The 0.5 release already supports Hive, MySQL, and Elasticsearch via JDBC and Spark.
The architecture diagram (image) illustrates the modular components linking data sources, the Calcite layer, and execution back‑ends.
Usage
Quicksql offers three access methods:
Command‑Line – After deployment (see GitHub), users can run queries with qsql -e "[SQL]" .
API – Developers can define environment parameters (job name, engine, max rows) and submit SQL tasks programmatically, similar to Spark or Storm APIs.
JDBC – Users can connect to Quicksql via standard JDBC drivers, treating it like a MySQL database.
For more information, visit the open‑source repository at https://github.com/Qihoo360/Quicksql and join the community via QQ or WeChat groups.
360 Tech Engineering
Official tech channel of 360, building the most professional technology aggregation platform for the brand.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.