338 karma · joined April 30, 2015
I also strongly believe in SQL to be the "glue", or the least common denominator for accessing data, that's why I built https://sql-workbench.com which is a free SQL environment in your browser for querying and visualizing local and remote Parquet, CSV, JSON and other data via DuckDB WASM.
It also supports bringing your local LLM for Text-to-SQL generation via Ollama...
An improvement could be having pre-calculated DuckDB database files that are directly attached from the DuckDB WASM frontend, see https://duckdb.org/docs/guides/network_cloud_storage/duckdb_...
In my experience, doing this will yield the query results faster than some other systems even starting the query execution (yes, I'm looking at you Athena)...
I even think that a lot of queries can be run from a browser nowadays, that's why I created https://sql-workbench.com/ with the help of DuckDB WASM (https://github.com/duckdb/duckdb-wasm) and perspective.js (https://github.com/finos/perspective).
You could use the Lambda function to verify Access Tokens etc. before returning the tile data if that is a concern.
CloudFront as CDN will enable Edge caching, meaning that recurrent requests will serve much faster, as S3 is always region-based.
Let me know if you‘re interested in access to the IaC repo of this.
Not sure what you mean with borrowed from the docs, as I have a hard time to imagine a way of delivering the current project without using or referencing specific things from the libraries/projects used.
Demo video: https://www.youtube.com/watch?v=rTuCec_fhlk
You can just do the data manipulations in DuckDB WASM and pipe the Arrow data to Perspective...
There’s also a accompanying tutorial blog post at https://tobilg.com/using-duckdb-wasm-for-in-browser-data-eng...
Here's an example for querying a Google Sheet:
https://sql-workbench.com/#queries=v0,SELECT-*-FROM-read_csv...
Question is more where to host this "on the cheap" because this is a free service, and I can't just spend hundreds of Dollars/month to keep it running... Do you have any recommendations?
I‘ll look into this as fallback method. I don’t like Monaco Editor‘s handling of selections and cursors, it’s quite complicated, but this should be possible to implement…
What would be a more intuitive way from your POV?
I‘ll look into the horizontal scrolling/CSV header issues, thanks!
GitHub supports CORS for raw data for example, that's why I put it in the sample queries.
https://sql-workbench.com/#queries=v0,SELECT-count(*)-FROM-'...
Thanks!