👨🏻💻 Альтернатива SQL – Prequel 🗄
Буквально несколько дней назад случился финальный релиз PRQL — нового языка для преобразования данных. Мы уже говорили об этом, и, с моей точки зрения, сам подход вызывает вопросы, но в прошлый раз у нас получилась информативная дискуссия.
Что такое PRQL?
Вкратце, создатели заявляют, что это простая, мощная конвейерная замена SQL. Они заранее решили, что PRQL всегда будет open-source языком и никогда не будет иметь коммерческого продукта, так как подобные языки находятся глубоко в стеке данных и лучший шанс создать качественный и широко используемый язык — сделать его открытым.
Как и SQL, он удобочитаемый, явный и декларативный. Однако, в отличие от SQL, он формирует логический конвейер преобразований и поддерживает такие абстракции, как переменные и функции.
Что изменилось с последнего релиза?
В течение последних месяцев работы, создатели языка постепенно создавали компилятор, развивали язык и работали над интеграциями. На данный момент возможности использования PRQL сосредоточены на двух интеграциях:
◽️ dbt-prql позволяет писать PRQL в моделях dbt. Для этого нужно установить dbt-prql с помощью pip, и тогда любой текст между тегами {% prql %} и {% endprql %} будет скомпилирован из PRQL.
◽️ Jupyter позволяет писать на PRQL в Jupyter notebook или IPython repl с помощью %%prql. Помимо подключения к существующим БД, есть интеграция с DuckDB, которая позволяет обращаться к датафреймам pandas, файлам CSV и Parquet и записывать результат в новый датафрейм.
Помимо этих двух интеграций, очень легко добавить PRQL в другие приложения с помощью специальных привязок для Rust, Python и JS.
Что я думаю о PRQL?
Ребята, конечно же, молодцы, что развивают свой проект дальше! Наверное, это может стать достойной частью какого-то инструмента в будущем, однако для меня SQL существенно привычнее и удобнее для решения тех же задач.
PRQL is a modern language for transforming data — a simple, powerful, pipelined SQL replacement - GitHub - prql/prql: PRQL is a modern language for transforming data — a simple, powerful, pipelined...