
Django SQL Explorer - uyoakaoma
https://github.com/groveco/django-sql-explorer
======
numlocked
Well...this is a surprise. I wrote SQL Explorer :)

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...

------
lsh
Just like to say that django sql explorer has been very useful in getting a
few non-technical people (who know sql) investigating the state of our
databases, their relations and attempting to express reports they need. I'm
hoping their work will be easy to translate into Metabase 'questions' while I
pull our reporting project together.

[http://www.metabase.com/](http://www.metabase.com/)

~~~
arikfr
I hope you don't mind the self plug: I think Metabase has support for raw SQL,
but if you find it hard to translate to Metabase "questions", it sure will be
easy to translate into queries in Redash... In Redash you create
visualizations from regular SQL queries (although we do support adding
parameters and such).

[https://redash.io](https://redash.io)
[https://github.com/getredash/redash](https://github.com/getredash/redash)

Disclaimer: I'm the author/founder of Redash.

~~~
lsh
I don't mind the plug at all. I know Metabase supports raw queries, but we're
going from normalised schemas to 'flattened' denormalised ones to help the
reporting effort.

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

~~~
lsh
Well done on Redash - It looks and feel very nice. I'll definitely keep an eye
on it, but Metabase's 'Questions' and visualisations are a bit more polished
for now.

~~~
arikfr
I guess that's the kind of polish VC money buys :-) I went the
bootstrap/community route. But I hope that in about two months we will have
funds to hire a UI/UX designer to improve the user experience and general look
and feel.

~~~
lsh
> I guess that's the kind of polish VC money buys :-)

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.

------
viiralvx
Something that we use at my job is Looker
([https://looker.com/](https://looker.com/)). While it's not open-source or
free, I didn't know about the product until I joined and I love their features
for data visualization and running ad-hoc queries. We just set a read-only
user named 'looker' and its good to go. :)

Disclaimer: I'm not a Looker employee or anything, just a happy user of their
product.

~~~
thenaturalist
Hey, we're thinking about switching our reporting to Looker. Would you mind
sharing your impressions of the tool and maybe how your daily workflow roughly
looks like?

You can shoot me an email via jankyri.com (link at the bottom).

~~~
teej
If you're at the point where you have the need and the budget for a business
intelligence tool, Looker is fantastic. Anyone who can pivot in Excel will
pick up Looker quickly and be able to get actionable insights.

------
iriche
Really fun to see this on HN:s front page - I started using this last week to
give some non technical people access to some queries I usually run for them.
Works perfect so far!

~~~
numlocked
Woohoo! Thanks and great to hear. If you have any feedback or suggestions,
feel free to open a GH issue (...or a pull request), or email me directly:
cc@grove.co

------
agentgt
An easy way to fix many of the "production" concerns is to run SQL explorer
only on syndicated read only slave servers.

Most databases support slave servers.

Probably should be added to the readme.

~~~
numlocked
Good idea. Will do!

------
uyoakaoma
It's trending
[https://github.com/trending/python](https://github.com/trending/python)

------
webmaven
This looks like an interesting tool, and a great way to sharethis sort of
knowledge internally.

I'm hankering after a SQLAlchemy version, though.

------
madrox
Well done! We built something similar at my company for the same purposes.
This functionality is powerful for any team that wants easier data access for
casual SQL users.

------
nepsilon
So this has nothing to do with Django, other than being built with it? It took
me a while to realize that.

~~~
webmaven
What does something that does "have to do with Django" look like to you?

~~~
alexbecker
I think the parent was expecting this to be more like a plugin for Django.

~~~
Ensorceled
But it _is_ a Django plugin. The readme.md includes instructions for
integrating it into your Django app and the use case provided is for exploring
your Django database.

