Quicksql: A Unified, Secure, and Fast Cross-Data-Source SQL Query Engine
Quicksql is an open‑source unified SQL query engine that simplifies and secures cross‑data‑source queries by providing a consistent ANSI‑based language, automatic engine selection, and support for mixed queries across Hive, MySQL, Elasticsearch, and other platforms, reducing learning and integration costs.
SQL (Structured Query Language) is the most widely used data query language, originally designed for RDBMS but now supported by many storage engines such as Hive, Elasticsearch, and Druid. However, ANSI SQL provides only a baseline, and each engine has evolved its own dialect, making it difficult for analysts to work across heterogeneous data sources.
Quicksql (QSQL) was created to address these challenges. It aims to be a simple, safer, and faster cross‑data‑source unified SQL query engine, reducing learning and switching costs for users and improving overall data‑analysis efficiency for organizations.
Quicksql builds on Apache Calcite’s multi‑engine SQL semantic adaptation, extending the ANSI SQL‑2003 standard with additional semantics to provide a single, unified language. Internally, it parses user SQL, transforms it according to engine‑specific characteristics, and generates executable SQL for the target engine. An intelligent selector chooses the most efficient execution mode (e.g., Spark cluster for mixed queries).
Key features include:
Unified SQL semantics : a single language that works across different storage engines.
Mixed‑SQL support : enables JOIN, UNION, and other operations across engines such as Hive and MySQL, which traditional SQL cannot handle.
Extensibility : engine‑agnostic design allows easy addition of new data sources (e.g., Druid, Mongo) and compute engines (e.g., 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 engines.
Quicksql offers three access methods:
Command line : after deployment, users can run queries like qsql -e "SELECT * FROM table" .
API : developers define environment parameters (task name, engine, max rows) and submit SQL jobs programmatically, similar to Spark or Storm APIs.
JDBC : users can connect to Quicksql via a standard JDBC driver, 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 and 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.