README.md 5.9 KB
Newer Older
M
Maxime 已提交
1 2
Panoramix
=========
T
The Gitter Badger 已提交
3 4

[![Join the chat at https://gitter.im/mistercrunch/panoramix](https://badges.gitter.im/mistercrunch/panoramix.svg)](https://gitter.im/mistercrunch/panoramix?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
M
Maxime Beauchemin 已提交
5
![img](https://travis-ci.org/mistercrunch/panoramix.svg?branch=master)
M
Maxime Beauchemin 已提交
6
[![Coverage Status](https://coveralls.io/repos/mistercrunch/panoramix/badge.svg?branch=master&service=github)](https://coveralls.io/github/mistercrunch/panoramix?branch=master)
M
Maxime 已提交
7

8 9 10
Panoramix is a data exploration platform designed to be visual, intuitive
and interactive.

M
Maxime Beauchemin 已提交
11 12 13 14 15 16 17

Video - Introduction to Panoramix
---------------------------------
[![Panoramix - ](http://img.youtube.com/vi/3Txm_nj_R7M/0.jpg)](http://www.youtube.com/watch?v=3Txm_nj_R7M)

Screenshosts
------------
M
Maxime Beauchemin 已提交
18
![img](http://i.imgur.com/bi09J9X.png)
M
Maxime Beauchemin 已提交
19 20 21 22
![img](http://i.imgur.com/aOaH0ty.png)

Panoramix
---------
M
Maxime Beauchemin 已提交
23
Panoramix's main goal is to make it easy to slice, dice and visualize data.
M
Maxime Beauchemin 已提交
24 25 26 27
It empowers its user to perform **analytics at the speed of thought**.

Panoramix provides:
* A quick way to intuitively visualize datasets
28
* Create and share interactive dashboards
M
Maxime Beauchemin 已提交
29 30 31 32 33 34 35 36 37 38 39 40 41 42
* A rich set of visualizations to analyze your data, as well as a flexible
    way to extend the capabilities
* An extensible, high granularity security model allowing intricate rules
    on who can access which features, and integration with major
    authentication providers (database, OpenID, LDAP, OAuth & REMOTE_USER
    through Flask AppBuiler)
* A simple semantic layer, allowing to control how data sources are 
    displayed in the UI,
    by defining which fields should show up in which dropdown and which
    aggregation and function (metrics) are made available to the user
* Deep integration with Druid allows for Panoramix to stay blazing fast while
    slicing and dicing large, realtime datasets


43 44 45
Buzz Phrases
------------

46
* Analytics at the speed of thought!
47 48 49
* Instantaneous learning curve
* Realtime analytics when querying [Druid.io](http://druid.io)
* Extentsible to infinity
M
Maxime 已提交
50

51 52 53
Database Support
----------------

M
Maxime Beauchemin 已提交
54
Panoramix was originally designed on to of Druid.io, but quickly broadened
55
its scope to support other databases through the use of SqlAlchemy, a Python
M
Maxime Beauchemin 已提交
56 57 58
ORM that is compatible with
[most common databases](http://docs.sqlalchemy.org/en/rel_1_0/core/engines.html). 

59

M
Maxime Beauchemin 已提交
60
What is Druid?
M
Maxime Beauchemin 已提交
61 62 63 64 65 66 67 68 69 70
-------------
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.*

71 72 73 74

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

75 76 77 78
Panoramix is currently only tested using Python 2.7.*. Python 3 support is
on the roadmap, Python 2.6 won't be supported.

Follow these few simple steps to install Panoramix.
79 80

```
M
Maxime Beauchemin 已提交
81 82
# Install panoramix
pip install panoramix
83

M
Maxime Beauchemin 已提交
84 85
# Create an admin user
fabmanager create-admin --app panoramix
86

87 88 89
# Initialize the database
panoramix db upgrade

90 91 92
# Create default roles and permissions
panoramix init

93 94
# Load some data to play with
panoramix load_examples
95

96 97
# Start the development web server
panoramix runserver -d
98 99 100 101 102 103 104 105
```

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 已提交
106 107 108

Configuration
-------------
M
Maxime Beauchemin 已提交
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130

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.
131
SQLALCHEMY_DATABASE_URI = 'sqlite:////tmp/panoramix.db'
M
Maxime Beauchemin 已提交
132 133 134 135 136 137 138 139 140 141 142 143 144

# 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 已提交
145 146 147 148 149 150 151
* 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
152 153 154 155 156 157 158

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

![img](http://i.imgur.com/Rt6gNQ9.png)
![img](http://i.imgur.com/t7VOtqQ.png)
![img](http://i.imgur.com/PaiFQnH.png)
M
Maxime Beauchemin 已提交
159
![img](http://i.imgur.com/CdcGHuC.png)
M
Maxime Beauchemin 已提交
160

161 162 163
Related Links
-------------
* [Panoramix Google Group] (https://groups.google.com/forum/#!forum/airbnb_panoramix)
164
* [Gitter (live chat) Channel](https://gitter.im/mistercrunch/panoramix)
165

M
Maxime Beauchemin 已提交
166 167 168 169 170 171 172 173 174 175 176

Tip of the Hat
--------------

Panoramix would not be possible without these great frameworks / libs

* Flask App Builder - Allowing us to focus on building the app quickly while
getting the foundation for free
* The Flask ecosystem - Simply amazing. So much Plug, easy play.
* NVD3 - One of the best charting library out there
* Much more, check out the requirements.txt file!