This repository has been archived by the owner. It is now read-only.
For the open source UI formerly know as Pivot
Clone or download
BenLloydPearson Added lack of support notice.
This project is no longer maintained or supported.
Latest commit 768ebff Oct 5, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea Rename pivot to swiv Nov 23, 2016
assets Rename pivot to swiv Nov 23, 2016
bin Rename pivot to swiv Nov 23, 2016
docs Rename pivot to swiv Nov 23, 2016
lib Fixing compilation failure (#15) Jul 21, 2017
resources Rename pivot to swiv Nov 23, 2016
script use swiv-plywood Feb 19, 2017
src Fixing compilation failure (#15) Jul 21, 2017
test use swiv-plywood Feb 19, 2017
typings Use modules (#345) Aug 17, 2016
webstorm working Nov 12, 2015
.gitignore Rename pivot to swiv Nov 23, 2016
.npmignore Rename pivot to swiv Nov 23, 2016
.sass-lint.yml Cube seed modal (#363) Aug 24, 2016
.travis.yml Save state (#338) Aug 16, 2016
CHANGELOG.md Rename pivot to swiv Nov 23, 2016
CONTRIBUTING.md Rename pivot to swiv Nov 23, 2016
LICENSE directory tree shakeup Sep 12, 2015
NOTICE Add notice of fork to NOTICE file Dec 28, 2016
README.md Added lack of support notice. Oct 5, 2018
compile added timekeeper (#358) Aug 23, 2016
config-examples.yaml Basic version of collections (#326) Aug 12, 2016
full-test Using TypeScript2.0 (#334) Aug 12, 2016
gulpfile.js added timekeeper (#358) Aug 23, 2016
npm-shrinkwrap.json 0.9.42 Apr 28, 2017
package.json Fixing compilation failure (#15) Jul 21, 2017
run Rename pivot to swiv Nov 23, 2016
run-coverage custom extraction fucntions (#335) Aug 12, 2016
travis-test custom extraction fucntions (#335) Aug 12, 2016
tsconfig.json added timekeeper (#358) Aug 23, 2016
tslint.json added timekeeper (#358) Aug 23, 2016

README.md

Build Status

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

Drag to Split

Contextual exploration

Time Highlight

Comparisons

Time Highlight

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.