Data analysis is critical to every organization. However, unlike other kinds of software engineering, your data model and SQL logic are tied to stateful database systems and cannot be managed as pure code. As a result, data systems are brittle, cluttered with duplicate logic, and sprawled across proprietary systems.
QueryScript aims to solve this problem by allowing you to manage your data model and SQL logic in clean code that is a joy to write. It comes with a powerful compiler that can typecheck your queries and automatically convert them into ANSI SQL that runs against any system.
Want to use EXCLUDE
on a database that doesn't support it? ✅. Itching to capture repetitive logic in a function? ✅. Helpful to factor out CTEs, debug them, and use them in mulitple queries? ✅.
Previewing query results in QueryScript's VSCode extension.
Principles
To help contrast QueryScript with other data transformation, business intelligence, and extract-transform-load (ETL) tools, here are a few core principles of the language:
- A data model is best described in code which can be version controlled and executed without proprietary software. QueryScript is 100% open source (Apache 2.0).
- You should be able to use rich abstractions in analytics code, like variables and functions, without cluttering your database with duplicated tables, intermediate views, and user-defined functions.
- Data practictioners know SQL, which is why SQL is the foundation of QueryScript. We welcome other languages into the ecosystem too, as long as QueryScript can compile them into SQL.
- All analytics code, including semantic layers, metrics, and transformations, should be expressable in SQL. QueryScript simply adds abstractions that make it easier to write concise and correct SQL.
- Users should not need to write vendor-specific SQL. QueryScript allows users to write ANSI SQL + abstractions that compile down to vendor-specific SQL. This is a shared responsibility between the community and vendors.