Skip to content
Reeflow
Start Building

JSONQL

JSONQL is a JSON format that supports expressing raw SQL, OLAP/analytics queries and raw table data retrieval.

As a generic analytics platform, Reeflow needs a standardized way to express different types of queries in a consistent JSON format.

JSONQL was built to be that universal query language, providing a unified interface for all query types while maintaining the flexibility to handle diverse analytical needs.

JSONQL is built around several core concepts that work together to express analytical queries:

  • Queries are the different types of data requests you can make:
    • Raw SQL Queries for executing custom SQL directly when you need maximum flexibility
    • Aggregate Queries for OLAP-style analytics with measures and dimensions that automatically handle grouping and calculations
    • Table Queries for retrieving raw, unaggregated data when you need individual records
  • Measures are the numeric values you want to calculate (sum, count, average) - the “what” you’re measuring
  • Dimensions are the attributes you use to group and categorize data - the “how” you slice your data
  • Columns are individual fields you want to retrieve in table mode - the raw data you want to see
  • Filters are conditions that limit your dataset - the “where” clause of your analysis
  • Joins define relationships between tables when working with multiple data sources
  • Parameters are client-provided values passed at query time for pagination, filtering, and other dynamic query customization
  • SQL functions inject dynamic values at query time for row-level security and parameterized queries, referencing user attributes for security-sensitive filtering

These concepts combine differently depending on your query type: aggregate queries use measures and dimensions for analytics, table queries use columns for raw data retrieval, and both can use filters and joins to refine and connect data sources.

To learn more about JSONQL:

  1. Reference - Complete reference for queries, measures, dimensions, columns, filters, joins, parameters, and SQL functions
  2. Examples - Practical examples for common use cases