Querying

Imply includes several different ways you can interact with your data.

Druid SQL

Druid supports SQL queries through HTTP and JDBC. You can also query it using the dsql command line tool included in the Imply distribution. For example, if you've done the quickstart, you can run SQL queries on the wikiticker dataset:

$ bin/dsql
dsql> SELECT page, SUM("count") AS Edits FROM wikiticker WHERE TIMESTAMP '2016-06-27 00:00:00' <= __time AND __time < TIMESTAMP '2016-06-28 00:00:00' GROUP BY page ORDER BY Edits DESC LIMIT 5;

┌──────────────────────────────────────────────────────────┬───────┐
│ page                                                     │ Edits │
├──────────────────────────────────────────────────────────┼───────┤
│ Copa América Centenario                                  │    29 │
│ User:Cyde/List of candidates for speedy deletion/Subpage │    16 │
│ Wikipedia:Administrators' noticeboard/Incidents          │    16 │
│ 2016 Wimbledon Championships – Men's Singles             │    15 │
│ Wikipedia:Administrator intervention against vandalism   │    15 │
└──────────────────────────────────────────────────────────┴───────┘
Retrieved 5 rows in 0.04s.

See the Druid SQL documentation for more details about making SQL queries with Druid.

Direct Druid queries

Druid supports a rich family of JSON-based queries. You can make these queries through the Druid Broker by POSTing to http://QUERY_SERVER:8082/druid/v2/.

PlyQL

PlyQL is an alternative SQL language for Druid. You can also query it using the plyql command line tool included in the Imply distribution. To learn more, see the PlyQL documentation.

Pivot

Imply Pivot is a web-based exploratory visualization UI for Druid built on top of Plywood. You can visit it in your browser at http://QUERY_SERVER:9095/pivot.

With Pivot, you explore a dataset by filtering and splitting it across any dimension. For each filtered split of your data, Pivot can show you the aggregate value of any of your measures. Pivot offers different visualizations based on how you split your data. If you split on a string column, you will generally see a table. If you split on time, you can see either a timeseries plot or a table.

Pivot can be customized through settings, as described on our Pivot configuration page.

Plywood

Plywood is a JavaScript library that simplifies building interactive visualizations and applications for large data sets. Plywood acts as a middle-layer between data visualizations and data stores.

Plywood is architected around the principles of nested Split-Apply-Combine, a powerful divide-and-conquer algorithm that can be used to construct all types of data visualizations. Plywood comes with its own expression language where a single Plywood expression can translate to multiple database queries, and where results are returned in a nested data structure so they can be easily consumed by visualizaton libraries such as D3.js.

You can use Plywood in the browser and/or in node.js to easily create your own visualizations and applications.

To learn more, see the Plywood documentation.

Other options

There are many more query tools for Druid than we've included here, including other UIs, other SQL engines, and libraries for various languages like Python and Ruby. Please see the list of libraries at the Druid site for more!

How can we help?