Made for JSON

Query billions of objects.

Many datasets are in the JSON Lines format, with one JSON object per line.

Just drop your dataset on an HDFS drive and Rumble can read it directly from there, and output right back to HDFS. Or on your screen in an interactive shell.

Rumble also works with many other formats (Text, Parquet, CSV, SVM, ROOT...) and can read from many other file systems (local, S3, Azure, ...), and the list is growing.

Be productive with JSONiq

An intuitive, easy-to-learn language.

JSONiq is a declarative and functional language. It is user-friendly and easy to read and write, because it looks a lot like JSON.

JSONiq is as simple as SQL, but can do much more.

Query nested data

An object, in an array, in an array, in an object.

Often, datasets are not in first normal form and data can be nested at multiple levels. But SQL was not made for nested data.

Forget EXPLODE() calls in Spark SQL and dot projections. JSONiq was born to read and write nested data.

Query heterogeneous data

That's a string. Or an integer. Or an array. Or nothing.

Often datasets are heterogeneous, especially when they are accumulated over years with evolving schemas.

When this happens, it does not fit in DataFrames and before Rumble, one had no choice but dealing with this manually.

If a field is not always associated with a value of the same type: no worries. JSONiq handles this seamlessly.

Local execution

You won't believe what your laptop is capable of.

Under the hood, Rumble uses Apache Spark. Not all of us have clusters: You can use it to query JSON from your local drive. Rumble will spread the computations on your cores.

Query massive datasets

My computer is a cluster.

Rumble runs on large clusters of machines, with the data lying on any layer supported by Spark: HDFS, S3, ... We have tested Rumble with up to 64 machines, as well as collections of more than 20 billion objects (10+ TB), but it supports any sizes supported by Apache Spark.

Try it now!

Rumble is now in beta.