Awesome
Swiv
Swiv is no longer actively supported or maintained. For something that is under active development, you might be interested in turnilo.
Swiv is a web-based exploratory visualization UI for Druid built on top of Plywood.
Swiv is best used with Druid. Internal and external APIs may change with little notice.
Contribution
This is a community owned and operated project. Contributions are welcome and all interaction is done via this git repository. File issues, make pull requests and review them all here please.
Features
Drag-and-drop UI
Contextual exploration
Comparisons
Usage
Ensure that you have an up-to-date node
Make sure you have node (>= 4.x.x) installed. On MacOS with homebrew you can do:
brew update
brew install node
Install
Next simply run:
npm i -g yahoo-swiv
That's it. You are ready to Swiv.
Example
Start off by running an example (static) dataset:
swiv --examples
Run with Druid
Next connect Swiv to your broker by simply pointing it to your broker host
swiv --druid your.druid.broker.host:8082
Swiv will automatically introspect your Druid cluster and figure out your dimensions and measures.
Note: if Swiv starts up and gives you a query error it is most likely because it could not properly introspect your schema. You probably have some hyperUnique column that Swiv is trying to SUM over. You will have to provide Swiv with a config file as in the nest section.
Create a config
In general Swiv will never know your schema as well as you. To get a better experience you should create a config and provide it to Swiv. The fastest way to create a config is to have Swiv do it for you.
swiv --druid your.druid.broker.host:8082 --print-config --with-comments > config.yaml
The --print-config
option will make Swiv run through its regular introspection and then, instead of tarting a server, dump the YAML onto the stdout and exit.
swiv --config config.yaml
Now open the config in your favorite editor and adjust to taste. Make sure to read through the documentation about the possible configuration options.
Development
Here are the steps to clone Swiv and run it as a developer.
Firstly make sure you have the latest node (>= 5.5.x) and gulp installed:
npm i -g gulp
Clone the project
git clone git@github.com:yahoo/swiv.git
cd swiv
Inside the swiv folder run:
npm install
gulp
Finally you have to create a config.yaml
file. (or use the sample)
./bin/swiv --druid your.druid.broker.host:8082 --print-config --with-comments > config.yaml
The --with-comments
flag adds docs about what goes into the config.
Then you are ready to
./bin/swiv --config config.yaml
We use WebStorm 2016.1 to develop Swiv and the checked in .idea
directory contains
all of the auto formatting and code styles. You are free to use any editor as all the build scripts are editor agnostic.
Running gulp watch
will build the project and start all the automated watchers.
Roadmap
Recent improvements:
- Exclusion filters
- Full support of Druid 0.9.1
- Swiv can connect to multiple clusters, also Postgres and MySQL
- Continuous dimension filtering and splitting
- Support for Druid Theta sketches (for countDistinct())
- Horizontal bars in Table
- Side panel resizing
- Ability to define custom granularities for bucketing
- Timezone support
For a full list of changes see our CHANGELOG
We will be working on:
- Additional visualizations (geo, heatmap)
- String / RegExp filters
- Removing strict limits on queries
- Bookmarks and dashboarding features
- Various additions, improvements and fixes to make the app more complete
Questions & Support
Please file bugs and feature requests by opening an issue on GitHub, also questions can be asked via GitHub issues.