OctoSQL

Dev tools

command line query tool

SHOW HN2019

Legend

OctoSQL

Query and join multiple databases and files, written in Go

github.com

#sql#join csv#query json#multiple databases#command line

310points
70comments
#94of 2,195 in 2019
Top 5%of 2019 by points

How HN took it

CuriousMostly questions and neutral comments

3 positive, 10 neutral or asking, 0 mixed, 3 critical, out of 16 comments about the project. Thread score +0.03.

Idea: 2 for, 2 againstExecution: 0 for, 1 against

The thread, comment by comment

Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.

positive neutral or mixed critical about another commenter or something else the maker

What HN said

What people liked

  • Simple interface and useful idea for joining data sources

    From 2 comments
    • A great motivation and keeping it simple from an interface perspective is a cool intention. It's a great start with tons of directions you can take it, and many interesting…
      sixdimensional on HN
    • Thanks for sharing. This is cool, just what I wanted. I like the fact I can create config files and query not just he database but also query JSON.
      srameshc on HN

Objections

  • Only supports reads, and lookup joins scan whole files each time

    From 2 comments
    • Thanks! We only support reads, and for now we're not planning to add write support. You can use the csv output format though and later import that somewhere.
      cube2222 on HN
    • Hey, sorry for the late response, currently totally inefficient - scan whole file each time. We plan on adding an in memory or on disk index for such cases.
      cube2222 on HN
  • Apache Drill already does this

    From 2 comments
    • > commandline tool allowing me to join data from different places, without needing to set up stuff like presto or spark. On another hand, I never encountered any tool which…
      minxomat on HN
    • Yeah an Drill has been around for a few years. Will likely continue to use Drill over octocat (no offense OP)
      dk- on HN

Requests

  • Support stdin piping

    From 1 comment
    • Thanks! 1. Initially we wanted to do one table per config-entry, but that'll be an easy to do UX improvement. 2. We're planning to add support for piping the csv/json file…
      cube2222 on HN
  • Link whole databases, not just tables

    From 1 comment
    • This is great. I keep the following in my bash profile for querying CSVs with SQL, which works OK, but this is probably better: ``` function csv_to_sqlite() { echo "used as…
      mjirv on HN
  • Add a server or daemon with scheduling

    From 1 comment
    • Consider adding a server/daemon with jobs and scheduling. This would let people copy and reconcile data between systems, or prep data at night, etc... It could also save indexes…
      irq-1 on HN

Questions

  • Does it support writing to data sources?

    From 1 comment
    • Pretty cool stuff. Does it support writing to (single) data sources too or only reading queries?
      arendtio on HN
  • Can it do hash joins for large data?

    From 1 comment
    • When joining tables from 2 different data sources, is the join performed by loading two tables in full into memory ? If yes - any plans on improving this, so that it does not OOM…
      polskibus on HN

Alternatives named

  • Apache Drill

    From 2 comments
    • > commandline tool allowing me to join data from different places, without needing to set up stuff like presto or spark. On another hand, I never encountered any tool which…
      minxomat on HN
    • Cool project. On a side note, Apache Drill (https://drill.apache.org/) is also worth checking out. The homepage doesn't make it very apparent, but I've used it to query CSVs,…
      cplat on HN
  • PostgreSQL foreign data wrappers

    From 2 comments
    • Generally, I make use of file_fdw module of Postgres to achieve this. https://www.postgresql.org/docs/11/file-fdw.html
      truth_seeker on HN
    • Postgres Foreign Data Wrappers are an incredibly powerful tool. I've in the past built a basic data warehouse for a distributed system by pulling in read slaves from assorted…
      jon-wood on HN
  • Apache Calcite

    From 1 comment
    • Really cool, thanks for sharing. You all might want to look at Apache Calcite (http://calcite.apache.org/) as well for inspiration, which has similar functionality as a subset of…
      MoOmer on HN
  • Dremio

    From 1 comment
    • Really nice! Something similar (with a GUI) is https://www.dremio.com/ that I think has gained some traction.
      sails on HN
  • Sqawk

    From 1 comment
    • "Sqawk is an Awk-like program that uses SQL and can combine data from multiple files. It is powered by SQLite." https://github.com/dbohdan/sqawk
      blacksqr on HN

Category, keywords, summaries and labels on this page were made by AI (Thread Reader v2) and not checked by hand. Each point links to the comments it came from.

Add a badge to your READMEShown on HackerShow
[![Shown on HackerShow](https://hackershow.org/badge.svg)](https://hackershow.org/show/20449610)