Ask HN: Tools to visualize data in SQL databases?
I’d like to hear what tools you use to easily visualize the data in a sql table?
Preferably I’d just like to click on a MariaDB table and receive some plots and statistics on the columns.
Whats your experience on this?
Edit: to clarify, I don’t want to visualize the database itself (Schema’s, keys etc). Just the data within it.
136 comments
[ 3.3 ms ] story [ 214 ms ] threador its commercialized offer: Preset (Cloud)
Which includes free version for five users. But it is SaaS so your database has to be visible from the internet.
I really like it though.
https://datasette.io/
This actually works pretty well for small (<1GB) databases, where you can run a cron periodically to build the SQLite version.
Then you can visualize with plugins such as https://datasette.io/plugins/datasette-cluster-map or https://datasette.io/plugins/datasette-vega
I also often load data into Datasette and then do custom visualizations in Observable Notebooks by fetching data back out through the Datasette JSON API - here's an example notebook that does that, using the Observable Plot charting library: https://observablehq.com/@simonw/datasette-downloads-per-day...
"Connect to an arbitrary database, create a view that joins numerous tables (including foreign tables, via blending) together, load to columnar storage on a local SSD for performance if necessary, add arbitrary derived columns (including well-defined lateral lookups for things like 'annotate this action with the date of the first action of this action's user' [0]), group by 4 of the derived columns, map two of the groupings to nested dimensions along the horizontal axis and two to the vertical axis, and show the sum or count at each cell in a resulting table, then when satisfied, drill down into a slice and turn it into a bar chart with colors that match your branding needs" - every one of those clauses can be accomplished with drag-and-drop mouse commands almost at the speed of thought.
And once you get the hang of it, there's zero impedance mismatch with hand-rolled SQL, it's just way faster to iterate on, especially with schemas where you may not remember all the columns available to you, and especially when you're doing so over screenshare with non-technical colleagues.
[0] https://help.tableau.com/current/pro/desktop/en-us/calculati...
This is a popular opinion, in my book.
Pandas is better but requires programming.
Tableau is fine for what it is, but I've found that the requests from stakeholders often grow to a point where you either can't do it in Tableau or have to move mountains to get it to work... so, in essence, sunk cost fallacy makes tableau millions.
I still refuse to learn pandas enough to replace dplyr though, as it's just so painful to use the API compared to how easy this stuff is in R.
Also, it always struck me as something too complex for the non-technical folks, and not expressive enough for tech-literate analysts/data engineers &c.
That's more than an equally domain specific process like Qlik, and more than a specific vendor tool like tableau. And anyway if PowerBI didn't have a pain point it wouldn't be a MS product.
PowerBI on the other hand is a straight up dashboarding tool. I've used it and it isn't quite as powerful as Tableau, but it's an easier step up from Excel. It doesn't require you reorient your mindset as much as Tableau does. But it also doesn't let you probe your data as easily as Tableau does. It's essentially a supercharged Excel dashboarding tool
Excel viz is rudimentary. It gets the job done for simple plots, but it's a hassle to join data (you have to do cell VLOOKUPs or INDEX(MATCH())) and pivot tables are a poor-man's approximation of the true power of SQL operations. It doesn't scale to large datasets but the cell-based spreadsheet paradigm (vs. a relational database paradigm) is easy to understand which has an appeal of its own. But you're ultimately limited to what fits on a spreadsheet.
Tableau is really amazing actually.
PowerBI?
Apache Superset? https://superset.apache.org
I have used Vega + Jupyter a few times. As well as the Vega Viewer extension for VS Code. I haven't used it enough to be proficient and fast, but I have used it enough to know that I want to be.
https://github.com/multiprocessio/datastation
Are there some videos that walk a user through setting it up to using it?
[0] https://datastation.multiprocess.io/docs/
[1] https://www.youtube.com/channel/UCGOQFKonPUVo5LgxQDW26yg/vid...
On the other hand, Redash has served my startup really well for the first 3 years (and now we're finally moving to Tableau)
The backstory was a large BI team having no proper tools for reporting, except maybe Looker for tabular KPI reports. So any addition of Tableau was an all our nothing buy, every single analyst or whoever on the BI team needed a seat, even though most of them wouldn't ever use it. For that matter 95 percent of the BI team would never move away from Excel. Anyway, the costs were huge for something that should have been a leap in capabilities.
The most effective, efficient data exploration tool I've ever used. I'm a data scientist, but I use this before I write so much as a line of code.
See https://www.kaggle.com/rhuebner/human-resources-data-set. I think it's a great view on top of a datatable.
For SQLite databases, I use sqlitebrowser.
Both tools are open source.
Paid: If you have the budget, Aqua Data Studio gives you the database management functionality AND all of the visualizations you'll find in Tableau in the 1 product.
(My company shifted from Tableau to Power BI. At first it seemed like a beta product with lower fidelity. But Microsoft has made the whole power suite into a force to be reckoned with... highly recommended)
I can see hundreds of logins to my database per user, and when I cut the logins per userid to 5, their applications collapse. Their queries cannot be tuned to available indexes according to my users.
They remain the very first ones that I throw off a database if there is a performance problem, with some degree of prejudice.
Whether that's a viable answer in any given situation is of course highly variable, but even if the analytics queries are my own hand-rolled SQL it's still my preference any time it -is- viable if nothing else so I don't have to worry as much about screwing up and taking too many locks / using too few indices while I'm iterating on the query in question.
Under the covers Power BI is running a tabular Analysis Services Cube, so import mode will be optimized for reporting regardless of the source database indexing.
The PBI dataset can be shared across users, so only 1 connection is required to update it, instead of dozens of users hitting the db directly.
Also as another person mentioned, reporting is usually done on an separate database to production applications like an operational data store, data lake, or warehouse.
Edit...just to add to this. I personally pay for it and it's $5/mth. Premium capacity can be a lot more...but if the Data Scientist needed a license, it may have only been $5/mth, paltry compared to a data scientist salary.
1. In general the idea of a separate reporting DB maintained by separate people who might not understand the semantics of schema changes seems inefficient in a world of cheap compute, compared to an application exposing key metrics directly. Upgrading every two weeks with an ETL pipeline off an app can result in RTL breaking every two weeks. Better just to release metrics from the same team that makes any other changes.
2. I think connecting hosted PowerBI to a IP-whitelisted Azure blob store is not possible, and that just seemed silly.
The desktop version is free, no strings attached. However the value comes from publishing to the web service for sharing etc. That's not free. It can be cheap, but when you have a lot of users the "premium capacity" can be quite expensive.
It's based on Observable (https://www.observablehq.com), which has a nice Summary table feature, sounds like what you need (https://observablehq.com/@observablehq/summary-table)
Can somebody please explain why they consider this to've been a terrible answer?
Just guesses.
https://metabase.com/
Also, "everyone nervous" is an interesting choice of words - I'm pretty sure most people wouldn't really care one way or the other. What is it about AGPL that causes stress among the masses?
Things like Google's AGPL internal policy[1] existing as a public piece of corporate-friendly IP propaganda have snowballed into a lot of FUD about the license.
People like to parrot perceived and secondhand opinions about the AGPL, and "some companies don't like the AGPL" transformed into "the AGPL makes everyone nervous."
[1] https://opensource.google/documentation/reference/using/agpl...
Clarifications: no, using the tool directly is not a problem for us.
"Everyone" - appreciate your question and not guessing :-) I meant everyone at my company. That phrasing maybe speaks to my mindset :-D Basically I really mean legal and those in charge who might listen to legal over tech.
the visual builder still relies on knowing fundamentally what a db is, what a join is. like mega obvious stuff that actually isn't obvious to non technical people.
we area also multi tenent and it's not the best for that. like the default permissions when you add a db are broad, the organization of dashboards, questions, etc is not great. through different versions they have re organized and stuffed things oddly.
i've also messed up the elastic beanstalk a few times. i am not even close to an expert on aws so might just be me being stupid.
probably worth just paying for their service in the end..
There are maybe 1/10-1/5 or maybe more who will be enabled by them on a technical level. The same kind of people who will build a site out of WP themes and plugins or build quite involved spreadsheets and so on.
I think it’s generally important and useful to enable and respect power users like that. They occupy a unique niche.
If you're using Microsoft, you can use MS Access for data entry to similar ODBC and SQL Server backends. If you want to do some VBA programming you can set up a UI in an Excel workbook too.
Otherwise, there are many ETL solutions.
Disclosure: I am the Spectral Core CEO (and author of Full Convert).
Credentials to admin panel in one click.
This is very much a Java application, and appears to allow several JDBC drivers for 3rd party databases.
It's free, and is designed to compete with (or drag underwater) Quest Software's Toad.
https://www.oracle.com/database/technologies/appdev/sqldevel...
3rd party drivers:
https://www.oracle.com/database/technologies/appdev/sqldev/t...