Django SQL Explorer
github.com
github.com
Glad folks are finding it useful!
Happy to answer any questions or take feedback/feature requests (I'm cc@grove.co)! We use the heck out of this thing internally.
A couple fun notes:
1. Every SQL statement is logged as a QueryLog object. This really simple data model enables a ton of the functionality:
- unique, bookmarkable URLs for every single query (including ad-hoc queries)
- historic runtime/query duration reporting
- query versioning
- 'popularity' in the form of run-count
2. The 'snapshot' feature is incredibly powerful. Tick a box on a saved query and (assuming you have Celery), Explorer will the run query on a cron and save the results to s3. Super useful for mutable data. Like, if you have a product catalog and the prices sometimes change, but not very often, it's great to have a query of 'current prices' that snapshots once per day.
3. Queries are all exposed as CSV and JSON endpoints (with token auth). A great way to shuffle data between applications.
4. The only 'django-specific' part of this is that it introspects the Django app metadata to build the 'schema viewer' on the right hand side. If not for this one feature, this would just be a totally general-purpose query tool that happened to be built on Django. One day...
Metabase however has a better interface in many regards but especially in it's 'Questions' interface - under the hood it's generating SQL, but it gives any person just enough flexibility to select, filter and aggregate results and then turn them into graphs and stick the graphs on a dashboard.
I don't particularly like Metabase's false peppiness - it's a bit like Slack's "You look good today!" type messages - that really get under my skin, and the blue+light-grey on white colour scheme.
For those who do know SQL and write the majority of the reports, Django SQL Explorer was a great drop-in just-works lib to get insight into several of our data silos.
https://redash.io https://github.com/getredash/redash
Disclaimer: I'm the author/founder of Redash.
At the same time, I don't expect the whole organisation to know SQL while I do expect them to make a slight effort to use Metabase's 'Question' interface (if they want data out).
I'll be sure to take a look at Redash
quite possibly. I've also read some of their bug threads and they're quite discerning (protective?) of what makes it in from the community. so, money+perfectionism, perhaps.
but honestly - their 'questions' interface is a hell of a lot more fun than sql. thanks to ORMs, my sql knowledge is really quite rusty as well and the simple/constrained "select, filter, aggregate" options on a single table or data source lets me faceroll what I need.
I'm using both not because they are complementary, but at this moment they have a distinct feature set and no one has all the features that I want/need.
Btw, congrats for the Mozilla award, really well deserved! https://blog.mozilla.org/blog/2016/10/03/moss-supports-four-...
I would love to understand what you're missing in Redash. If it's too much for a comment here, feel free to email me (arik at redash.io).
We do have raw SQL (and Mongo/Druid/etc) mode if that's your preference, or if you can't express something in our graphical query builder.
There's also a neat little feature that will translate your query builder query to the equivalent SQL to use as a starting point if you can't express something using the UI.
We also have parameters so you can parameterize questions (both graphical and SQL) on a dashboard.
Finally, we recently started added permissions and groups, so Metabase will be able to grow with your company. A lot more to come there too.
Disclaimer: I'm not a Looker employee or anything, just a happy user of their product.
You can shoot me an email via jankyri.com (link at the bottom).
We actually use Looker as well internally. It's a great tool. When we were smaller, Explorer fit our needs really well (I should hope so - since I specifically wrote it for us), but as we got bigger (~40 employees now) it's harder to manage a large number of reports, and we started getting a bit of a backlog of "please add field x to report y" engineering tickets. Looker has been a great solution to allow people to self-serve even more.
We still use the heck out of SQL Explorer as well, but Looker adds a ton of additional value (though notably, is not terribly cheap).
Most databases support slave servers.
Probably should be added to the readme.
I'm hankering after a SQLAlchemy version, though.
It is tied to Django. When generating the schema information to show fields, etc, it introspects the Django application metadata. So in that sense it is tied to Django and expects to be querying a Django application DB. I would actually love to remove this requirement though, and have it just be SQL Explorer.