top of page
Writer's pictureWix Engineering

Introducing Quix: Presto-based Notebook Manager for Fast and Easy Data Exploration

Updated: Apr 12, 2020

Quix is a multi-user, easy-to-use notebook manager. By utilizing Presto it provides unified access to multiple data sources and effectively acts as a shared space for your company's Business Intelligence (BI) insights and know-how.


Quix is open source, so hurry up and go get it at https://github.com/wix/quix


Introduction:

At Wix Engineering, we develop some of the most innovative cloud-based web applications that influence our +150 million users worldwide. Wix is a data-driven company and having easy and fast access to data allows us to make correct business decisions.

In order to allow each Wix employee to write queries, share knowledge, deploy jobs and explore the existing datasets, we developed Quix.


Quix users vary from power users that write thousands of lines sql code to novices that prefer to receive a daily email with metrics or choose a value from a dropdown and execute a report in a click.


Internally, Quix is a very popular tool, with more than half of Wix employees using it as part of their daily job. Quix users have created more than 100K notes, 20K notebooks and 2K scheduled jobs that leverage Presto for updating existing DWH tables, push metrics to grafana, send emails and slack messages, update production services via kafka, and trigger external reports.




Quix main features

First of all, Quix is a notebook manager that allows you to organize notebooks in a nested hierarchy of folders. You can create, update, rename, reorder and delete your notes, notebooks and folders. You can share any of them via a simple link, just send it to another person. You can also search the notes content of every user within your organization with the help of full text search.


Secondly, Quix is a complex IDE with smart web editor that helps you write your queries with autocomplete, syntax highlighting, live syntax validation, error line highlight, and dataset explorer with drag and drop support. Additionally, the Quix smart editor supports strong type variables, multiple result statements, simple pivot and pie visualizations, and the ability to export results as csv.



Quix is ideal for interactive queries as it will stream the results as soon as they start arriving from Presto. You can execute multiple queries in parallel and the results will arrive to each note as soon as they are ready. It can be extended to multiple note types, in Wix Engineering we use plain Presto notes, UI-only notes for funnel & path analytics that expose nice UI and generate complex Presto sql on execution. Furthermore, we developed a very powerful ability that allows users to interleave between native sql syntax of big-query and t-sql and Presto sql.


Finally, Quix is used to maintain the lifecycle of deployed Presto jobs and “certified” public scripts. Power users can create & update jobs with cron-like scheduling policy and actionable results. Each job has documentation, owner, approver, and history of executions. Public scripts are similar to jobs, but without scheduling and history of executions, and can be used as a public reference for some frequent data question backed by several business analysts.



Quix and open source

We are happy to announce that Quix is becoming an open source project!

Here are some links to get you started:


Features of first version of Quix:

  • Notebook manager with nested hierarchy of folders, favorites and share by deeplink

  • Smart editor with live syntax validation, typed variables, download to csv, parallel execution of Presto notes, visualizations, keyboard shortcuts, multiple results and more

  • Dataset explorer with preview and drag-and-drop

  • User auth via google auth, list of users with the ability to browse their notebooks

  • Full-text search with code snippets and notes metadata

  • Temporary fast run-and-delete notes


What’s next

In the next phases, we plan to add -


Additional note types:

  • Amazon Athena

  • Python

  • BigQuery

  • Generic drop-in jdbc notes

Admin-related UI for Presto cluster health:

  • Current count of active workers

  • Current running and queued queries

  • List of past query executions

  • List of heaviest queries in last X minutes

And also public notes with ownership, documentation, note revisions and mandatory reviewers.



 

For more engineering updates and insights:




Comments


bottom of page