PRQL, Pipelined Relational Query Language

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • prql

    PRQL is a modern language for transforming data — a simple, powerful, pipelined SQL replacement

  • For me the examples on the website ([Title](https://prql-lang.org/)) are the biggest selling point for PRQL, in particular the SQL it generates. It looks clean, straightforward, something I would've written myself.

    In general, I like this slightly more careful take on modern database development. 10-15 years people would start a brand new database like Mongo, or Riak, or Influx, or whatever, and would try to convince application developers to select it for new projects. But recently we started getting more conservative options like EdgeDB, TimescaleDB, or even PRQL which all expect us to run Postgres with some addons and / or query preprocessors. Teach like this is so much easier to adopt!

    I'm really liking what Edge folks are doing with schemas and migrations, but I do find PRQL syntax much more intuitive. My application code is littered with data transformation pipelines already: all these map / filter chains in TYpeScript, iterators in Rust, enumerables in Ruby, streams in Java, LINQ in .net, Rx in dozens of languages etc. etc. So the concept is very, very familiar. Getting nice SQL queries out of PRQL that I can store, inspect later, see the query plans, add indices where necessary, is just great. It's such a good tool!

  • ClickHouse

    ClickHouse® is a free analytics DBMS for big data

  • We have recently merged PRQL support into ClickHouse: https://github.com/ClickHouse/ClickHouse/pull/50686

    It's currently more like an experiment - I'm not sure if it will be usable or useful. There are some concerns about Rust, although minor: https://github.com/ClickHouse/ClickHouse/issues/52053#issuec...

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • dbt-prql

    dbt-prql allows writing PRQL in dbt models

  • Totally agree. This was a high priority goal for us and @maximilianroos did a lot of work putting something together. In the end, I believe it was really fighting against how dbt is set up though as it is so tightly interwoven with Jinja2. Perhaps with the introduction of the Python dbt models, things might have changed now and it's worth taking another look.

    https://github.com/PRQL/dbt-prql

    (Disclaimer: I'm a PRQL contributor.)

  • Preql

    An interpreted relational query language that compiles to SQL.

  • Hm, I just realized there are two similar projects with very similar names: this one, and

    https://github.com/erezsh/Preql

  • SQLpage

    SQL-only webapp builder, empowering data analysts to build websites and applications quickly

  • I am currently building a SQL-only web framework [1], and I was contacted by the prql folks to include the language by default in sqlpage. I have to say, I have mixed feelings about it: on one hand, it indeed feels more natural to query data with a clean pipeline of operators. On the other hand, it makes me think of the famous xkcd comic about standards [2]: there were too many data querying languages, so we made a new one.

    [1] SQLPage: https://sql.ophir.dev

  • ClickBench

    ClickBench: a Benchmark For Analytical Databases

  • Here are examples of MongoDB aggregations: https://github.com/ClickHouse/ClickBench/blob/main/mongodb/q...

    They are painful to write compared to SQL queries.

    Although the commercial version of MongoDB has support for SQL, it's not available for general MongoDB users.

  • duckdb-prql

    PRQL as a DuckDB extension

  • Not quite what you're asking for but DuckDB has both PRQL [1] and Postgres [2] extensions, so you could probably query your Postgres database with PRQL from there.

    There's also a DBeaver plugin [3] which we still need to document better and simplify the usage of but you could potentially also use that to query Postgres with PRQL.

    Finally there is pyprql [4] with which you could query Postgres from a Jupyter notebook.

    [1]: https://github.com/ywelsch/duckdb-prql

    [2]: https://duckdb.org/docs/extensions/postgres_scanner.html

    [3]: https://github.com/PRQL/prql/issues/1643

    [4]: https://github.com/PRQL/pyprql

    (Disclaimer: I'm a PRQL contributor.)

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • pyprql

    Python extensions for PRQL

  • Not quite what you're asking for but DuckDB has both PRQL [1] and Postgres [2] extensions, so you could probably query your Postgres database with PRQL from there.

    There's also a DBeaver plugin [3] which we still need to document better and simplify the usage of but you could potentially also use that to query Postgres with PRQL.

    Finally there is pyprql [4] with which you could query Postgres from a Jupyter notebook.

    [1]: https://github.com/ywelsch/duckdb-prql

    [2]: https://duckdb.org/docs/extensions/postgres_scanner.html

    [3]: https://github.com/PRQL/prql/issues/1643

    [4]: https://github.com/PRQL/pyprql

    (Disclaimer: I'm a PRQL contributor.)

  • chdb

    chDB is an embedded OLAP SQL Engine 🚀 powered by ClickHouse

  • > Can you embed it in Python as a library?

    https://github.com/chdb-io/chdb

        pip install chdb

  • Kusto-Query-Language

    Kusto Query Language is a simple and productive language for querying Big Data.

  • Note that Kusto Query language is open source see https://github.com/microsoft/Kusto-Query-Language

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts