/quary

Open-source BI for engineers

Primary LanguageRustApache License 2.0Apache-2.0

Quary

Business Intelligence for Engineers ๐Ÿ…€

Made by Quary Slack Community YC GitHub Repo stars

With Quary, engineers can:

  • ๐Ÿ”Œ Connect to their Database
  • ๐Ÿ“– Write SQL queries to transform, organize, and document tables in a database
  • ๐Ÿ“Š Create charts, dashboards and reports (in development)
  • ๐Ÿงช Test, collaborate & refactor iteratively through version control
  • ๐Ÿš€ Deploy the organised, documented model back up to the database

View the documentation.

๐Ÿ—ƒ๏ธ Supported Databases

Amazon Redshift Google BigQuery PostgreSQL Snowflake Supabase DuckDB SQLite

quary_core_image

๐Ÿ—๏ธ Asset Types in Quary

Define and manage the following asset types as code:

  • Sources: Define the external data sources that feed into Quary, such as database tables, flat files, or APIs (with DuckDB).
  • Models: Transform raw data from sources into analysis-ready datasets using SQL, this lets engineers split complex queries into atomic components.
  • Charts: Create visual representations of your data using SQL.
  • ๐Ÿšง Dashboards (WIP): Combine multiple charts into a single view, allowing engineers to monitor and analyze data in one place.
  • ๐Ÿšง Reports (WIP): Create detailed reports to share insights and findings with your team or stakeholders.

๐Ÿš€ Getting Started

Installation

Quary is a VSCode Extension (Interface) & Rust-based CLI (Core)

Extension

The VSCode extension can be installed here. Note that it depends on the CLI being installed.

CLI

Homebrew installation

brew install quarylabs/quary/quary

Linux/Mac through curl

Quary can be installed using curl on Linux/Mac using the following command:

curl -fsSL https://raw.githubusercontent.com/quarylabs/quary/main/install.sh | bash

Other installations

Other builds are available in the releases page to download.

Usage

Once installed, a sample project can be created and run as follows:

mkdir example # create an empty project folder
cd example
quary init    # initialize DuckDB demo project with sample data
quary compile # validate the project structure and model references without database
quary build   # build and execute the model views/seeds against target database
quary test -s   # run defined tests against target database

๐Ÿ…€ Community

Join our Slack channel, for help, ideas, and discussions.

Support

If you run into any problems using Quary, please let us know. We want Quary to be easy-to-use, so if you are getting confused, it is our fault, not yours. Create an issue and we'll be happy to help you out.

Check out our other projects

SQRUFF, a compact, high-speed SQL linter, engineered with Rust efficiency.