Show HN: DataStation – App to easily query, script, and visualize data
Hey folks! I quit my job at Oracle almost a year ago now to build DataStation. It&#x27;s an app I&#x27;ve wanted as an engineering manager for years. It&#x27;s entirely open-source and while I&#x27;ve had a few awesome contributors I&#x27;m mostly the only person on it. It has been funded out of contract development and savings.<p>DataStation helps you query a variety of data sources (conventional SQL like PostgreSQL and MySQL, non-SQL like Prometheus or Elasticsearch), files and HTTP APIs. It is not a SQL layer on top of these various APIs like FDW in Postgres or Apache Calcite.<p>DataStation just tries to abstract away glue code. So in DataStation for Prometheus you query with PromQL. For Elasticsearch you query with Lucene. And for SQL databases you query with their SQL dialect. But you don&#x27;t need to remember how to use the appropriate library for your language. You just need your own credentials.<p>DataStation is made of panels (other apps might call them cells) that each produce a result. Panels can refer to other panels. These allow you to build workflows that cross the boundary of a particular datasource. For example you might have some data in a CSV a product manager gave you and the bulk of your data is in PostgreSQL. In DataStation you could pull in the CSV with a File panel and pull in the Postgres data with a Database panel. Then you can join both panel results in a Code panel using your favorite language like Python, Ruby, R, Node, Julia, etc. You can even script Code panels in a SQLite dialect with a bunch of rich addons (url parsing, best-effort date parsing, statistics aggregation, etc.): <a href="https:&#x2F;&#x2F;github.com&#x2F;multiprocessio&#x2F;go-sqlite3-stdlib" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;multiprocessio&#x2F;go-sqlite3-stdlib</a>.<p>You can watch a simple introductory video: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=q_jRBvbwIzU" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=q_jRBvbwIzU</a>. Or if you want to see that cross-datasource interaction taken to an extreme, check out this video using Postgres metadata to filter log data in Elasticsearch to do historic request analysis on a subset of customers: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=tIh99YVHoRE" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=tIh99YVHoRE</a>.<p>DataStation is mainly a desktop app today where the end result is that you export graph SVGs or HTML tables or markdown tables or just a CSV file. All this data stays on your laptop so it&#x27;s as easy to use in a corporate environment as any existing SQL IDE or Jupyter Notebook.<p>In the last year it&#x27;s reached 1.5k stars on Github, over 1000 unique users and currently on-average about 40 fairly active users per month (defined as having opened the app more than a few times).<p>Since it&#x27;s only just now 12 months old it&#x27;s been going through a lot of maturing during this time. If you&#x27;ve tried it before and it was buggy or too slow it&#x27;s probably worth another try now if you&#x27;re still interested.<p>DataStation is primarily an Electron app but the code that evaluates panels is written in Go. The Go evaluation code forms the backbone of another app you may have seen around HN, dsq: <a href="https:&#x2F;&#x2F;github.com&#x2F;multiprocessio&#x2F;dsq" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;multiprocessio&#x2F;dsq</a>, which is a limited version of DataStation as a CLI for querying files with SQL.<p>In the future I&#x27;d like to see more people using it as a server app where my goal is to support read-only dashboards and recurring exports. That part is still work-in-progress.<p>You can find a ton of tutorials on how to interact with supported databases on the DataStation website: <a href="https:&#x2F;&#x2F;datastation.multiprocess.io&#x2F;docs&#x2F;" rel="nofollow">https:&#x2F;&#x2F;datastation.multiprocess.io&#x2F;docs&#x2F;</a>.<p>Looking forward to your feedback!