README.md 4.4 KB
Newer Older
M
Maxime 已提交
1 2 3
Panoramix
=========

4 5 6 7 8 9
Panoramix is a data exploration platform designed to be visual, intuitive
and interactive.

Buzz Phrases
------------

10
* Analytics at the speed of thought!
11 12 13
* Instantaneous learning curve
* Realtime analytics when querying [Druid.io](http://druid.io)
* Extentsible to infinity
M
Maxime 已提交
14

M
Maxime 已提交
15
![img](http://i.imgur.com/aOaH0ty.png)
M
Maxime Beauchemin 已提交
16

17 18 19
Database Support
----------------

20 21
Panoramix was originally designed on to of Druid.io, but quickly broadened 
its scope to support other databases through the use of SqlAlchemy, a Python
22 23 24
ORM that is compatible with 
[many external databases](http://docs.sqlalchemy.org/en/rel_1_0/core/engines.html). 

M
Maxime Beauchemin 已提交
25 26 27 28 29 30 31 32 33 34 35 36 37
What's Druid?
-------------
From their website at http://druid.io

*Druid is an open-source analytics data store designed for 
business intelligence (OLAP) queries on event data. Druid provides low 
latency (real-time) data ingestion, flexible data exploration, 
and fast data aggregation. Existing Druid deployments have scaled to 
trillions of events and petabytes of data. Druid is best used to 
power analytic dashboards and applications.*

Panoramix
---------
M
Maxime 已提交
38 39 40 41 42 43
Panoramix's main goal is to make it easy to slice, dice and visualize data
out of Druid. It empowers its user to perform **analytics 
at the speed of thought**.

Panoramix started as a hackathon project at Airbnb in while running a POC
(proof of concept) on using Druid. 
M
Maxime Beauchemin 已提交
44 45 46 47 48 49 50 51 52

Panoramix provides:
* A way to query intuitively a Druid dataset, allowing for grouping, filtering
    limiting and defining a time granularity
* Many charts and visualization to analyze your data, as well as a flexible
    way to extend the visualization capabilities
* An extensible, high granularity security model allowing intricate rules
    on who can access which features, and integration with major 
    authentication providers (through Flask AppBuiler)
M
Maxime 已提交
53 54 55
* A simple semantic layer, allowing to control how Druid datasources are 
    displayed in the UI,
    by defining which fields should show up in which dropdown and which
M
Maxime Beauchemin 已提交
56
    aggregation and function (metrics) are made available to the user
57 58 59 60 61 62 63

Installation
------------

Follow these few simple steps to install Panoramix

```
M
Maxime Beauchemin 已提交
64 65
# Install panoramix
pip install panoramix
66

M
Maxime Beauchemin 已提交
67 68
# Create an admin user
fabmanager create-admin --app panoramix
69

70 71
# Load some data to play with
panoramix load_examples
72

73 74
# Start the development web server
panoramix runserver -d
75 76 77 78 79 80 81 82
```

After installation, you should be able to point your browser to the right
hostname:port [http://localhost:8088](http://localhost:8088), login using
the credential you entered while creating the admin account, and navigate to
`Menu -> Admin -> Refresh Metadata`. This action should bring in all of 
your datasources for Panoramix to be aware of, and they should show up in
`Menu -> Datasources`, from where you can start playing with your data!
M
Maxime 已提交
83 84 85

Configuration
-------------
M
Maxime Beauchemin 已提交
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107

To configure your application, you need to create a file (module) 
`panoramix_config.py` and make sure it is in your PYTHONPATH. Here are some
of the parameters you can copy / paste in that configuration module:

```
#---------------------------------------------------------
# Panoramix specifix config
#---------------------------------------------------------
ROW_LIMIT = 5000
WEBSERVER_THREADS = 8

PANORAMIX_WEBSERVER_PORT = 8088
#---------------------------------------------------------

#---------------------------------------------------------
# Flask App Builder configuration
#---------------------------------------------------------
# Your App secret key
SECRET_KEY = '\2\1thisismyscretkey\1\2\e\y\y\h'

# The SQLAlchemy connection string.
108
SQLALCHEMY_DATABASE_URI = 'sqlite:////tmp/panoramix.db'
M
Maxime Beauchemin 已提交
109 110 111 112 113 114 115 116 117 118 119 120 121

# Flask-WTF flag for CSRF
CSRF_ENABLED = True

# Whether to run the web server in debug mode or not
DEBUG = True
```

This file also allows you to define configuration parameters used by
Flask App Builder, the web framework used by Panoramix. Please consult
the [Flask App Builder Documentation](http://flask-appbuilder.readthedocs.org/en/latest/config.html) for more information on how to configure Panoramix.


M
Maxime 已提交
122 123 124 125 126 127 128
* From the UI, enter the information about your clusters in the 
``Admin->Clusters`` menu by hitting the + sign. 

* Once the Druid cluster connection information is entered, hit the 
``Admin->Refresh Metadata`` menu item to populate

* Navigate to your datasources
129 130 131 132 133 134 135

More screenshots
----------------

![img](http://i.imgur.com/Rt6gNQ9.png)
![img](http://i.imgur.com/t7VOtqQ.png)
![img](http://i.imgur.com/PaiFQnH.png)