Show HN: Dropbase 2.0 – Turn offline files into live databases
dropbase.io
dropbase.io
We're happy to introduce Dropbase 2.0! It's a tool that helps you bring offline files, such as CSV, Excel, and JSON files, into Postgres database. You can also process your data before uploading it using a spreadsheet-like interface or by writing a custom Python script. Once your data is in the database, you can query it using any third party tool (credentials will be provided). You can also access your data via REST API (powered by PostgREST) or create custom endpoints to serve a more specific use case.
A bit about the tech:
Currently, we support .csv, .json, .xls, .xlsx files. For data processing, we use Pandas, so if you are comfortable using Python, you can write your own custom functions to process the data. We also give you a free shared Postgres database to test the tool with (your data is isolated and hidden from others). Each one of these databases come with an instance of PostgREST preinstalled, so you can query your database using REST API ([http://postgrest.org/en/v7.0.0/](http://postgrest.org/en/v7....). You can also generate an access token with an expiry date to share your data with others.
There are many more features that we baked into the product. Come check it out, it's open for HN community.
"However, by posting Content using Service you grant us the right and license to use, modify, publicly perform, publicly display, reproduce, and distribute such Content on and through Service. You agree that this license includes the right for us to make your Content available to other users of Service, who may also use your Content subject to these Terms"
Does this mean I should have no expectation of privacy or control over anything I upload?
I mean, fundamentally, really consistent security is hard; and the best you can reasonably expect from someone you're not paying is "best effort". For them to make real promises about security opens them up to being sued if they fail; it's not really reasonable to ask someone to do that unless you're paying them a reasonable chunk of cash to offset that risk.
I don't see what security, paid vs. free or best-effort has got to do with my argument, which is that the loopholes in legalese are so hard to spot for anyone but a lawyer, that effectively my data might still be used in any way and possibly against my wishes or expectations (but which becomes legal when I consent to the PP and ToC).
Would you mind describing the kind of data you work with and which constraints you're subject to?
I have two questions:
- How do you handle incremental loads from files (or even google sheets)? Am I able to only load the diff, load full snapshots and get bi-temporality, etc?
- Are you supporting PostgREST as sponsors in any way? It's one of the most solid tools I've ever used, and I love to see that companies build great products on top of it!
- PostgREST is great. We are not sponsors at the moment, but looking to do this when we can!
I can install a database on-prem and upload files to it and then I can too query it as if it was in a database.
From what I've seen on the this seems like a fancy cloud database client.
pandas.concat and similar functions for appending to a Pandas dataframe can be quite slow. Just mentioning this in case you ever encounter this issue; maybe you don't need to. In my case I changed to dictionaries for important parts and 2 mins changed to 5 seconds execution time.
However, in my case, I have to change logical row structure and not just read in rows as is.
Example: I wanted to use their "Hero Sections - with angled image on right" without the navigation where shown (was going to add a standard top navbar). As soon as you delete it, the angled bar doesn't reach to the top. I ended up keeping an empty navbar in that place to keep the block looking right.
My astigmatism makes reading dark UIs migraine inducing, so as cool as this sounds I unfortunately can’t read more about it without triggering a migraine. x_x
(Maybe still default to the dark UI, but if the user has light mode enabled it uses a light UI?)
I’m used to getting “most of our users don’t have an issue, so we don’t care” responses (Robinhood did this for a while before they finally added a toggle, and Spotify straight up doesn’t care), so having a company actually note they’ll look into doing it if possible is really appreciated by me.
I wonder if lighter colors and soft grey palettes would work for your case. have you experimented with colors that are easier on your eyes, given your complications?
Anyway, +1 for astigmatism and extreme sensitivity to glare. The rise of dark themes is something of a curse for my ability to interact with interfaces these days.
Obviously, sync (Dropbox) is just the beginning, and Dropbase takes it a step further. There's been times where I had a (big-ish) CSV and wanted to run a few tests/queries on it. Auto-importing it into some database and being able to run SQL/Python on the dataset (without bootstrapping that locally) would've been a godsend.
Good luck with this!
I've seen the thread linked as a 'tech people don't appreciate simplicity' but he actually acknowledges Dropbox could be very useful and wishes success.
The other criticisms were also very valid at the time, and were acted upon.
One of the features we added is to do make the "magic" replicable (or deployable in production). So we keep track of processing steps and let you export Python code that that applies those same processing steps. This could be used to run the exact same steps in a larger version of that dataset later.
You can then work with it through the ORMs methods, with regular SQL or with external tools like Tinkerwell that just displays them in a tabular fashion.
At my current company, we load google sheets into s3, then mount those files as external tables. There has not been a commit in years, meaning it has worked out well for us.
What seems to be missing in these solutions, and what Dropbase provides, is a UI to guide users through the process.
[1] https://gitlab.com/gitlab-data/analytics/tree/master/extract...
As engineers, we also tend to think in terms of modularity and control - call this "tool flexibility."
With Dropbase, we're balancing flexibility with the goal of creating an experience that allows users who can't directly work with these composable units.
How we balance experience vs flexibility is that we give users full control of the database and the processing steps (we even allow you to export Python code you can run anywhere else).
We found this is the right balance for the uses cases we're targeting, although, we're still doing a lot of research to figure out the right balance and that balance might also evolve over time.
We are offering our current pricing to early adopters on HN. We'll likely increase prices once we do a general public launch.
In all seriousness, this product could bring leverage to those in society who could have the most impact. Design is brilliant, the pipeline idea is brilliant, I can see this really gaining traction.
Yes, we will offer non-profit and academic plans.
What I would really love though is something a little more similar to Dropbox, with tight integration to the user's filesystem, and keeping the spreadsheet as the source of the data.
I shared some thoughts on how it compares to DropBase in another comment: https://news.ycombinator.com/edit?id=24194916
If you end up giving it a try, I'd love to hear what you think :)
Just a tiny thing I noticed. The free plan is usually mentioned on the left of the page. ( https://www.dropbase.io/pricing )
Or was the page layout put intentionally that way?
Minor grammar fix: "See how your data looks like as you process it." -> "See what your data looks like as you process it."
(could be "how it looks" or "what it looks like", not "how it looks like")
Update it to: "Spreadsheet view. See how your data looks as you process it". Went for this suggestion to keep everything to 2 lines.
Does anyone know of a self-hosted interface like Dropbase or Airtable?
Would you be able to describe your use case and the kind of data you're using?
We've decided to focus primarily on the CLI for the moment, which you can see showcased through the example code on the homepage: https://meltano.com, but we're working on a UI as well, as evidenced by today's release blog post: https://meltano.com/blog/2020/08/17/now-available-meltano-v1...
---
Meltano uses open source Singer taps and targets (https://singer.io) as its extractors and loaders, so to put together something similar to DropBase (which looks amazing, by the way), you could use:
- tap-spreadsheets-anywhere (https://github.com/ets/tap-spreadsheets-anywhere, https://gitlab.com/meltano/meltano/-/merge_requests/1813), which supports CSV and XLS over S3, HTTP(S), (S)FTP (etc),
along with:
- target-postgres (https://github.com/meltano/target-postgres, https://meltano.com/plugins/loaders/postgres.html),
- target-jsonl (https://github.com/andyh1203/target-jsonl, https://meltano.com/plugins/loaders/jsonl.html), or
- any of the others you find on https://meltano.com/plugins/extractors/, https://meltano.com/plugins/loaders/, or https://www.singer.io/.
---
For transformation, Meltano currently supports only dbt (https://www.getdbt.com/), which means that unlike DropBase, it's built for ELT rather than ETL, since transformation takes place inside the loading database, rather than in between the E and L steps.
I'm very interested in exploring the ETL direction more, though, because as DropBase clearly shows, there are still a lot of companies and people who may not be experts on SQL, but would benefit tremendously from sturdy ETL with an accessible interface and flexible integration points.
As I just wrote on our Slack workspace (there's a link on https://meltano.com):
> I’d love to see Meltano UI develop into that direction for simple transformations over Singer tap stream/entity schema and record JSON, so that we can do ETL as well as dbt-backed ELT.
> We’d probably start with a way of specifying transformations in `meltano.yml`, similar in spirit to the `select`, `schema`, and `metadata` extra’s (https://meltano.com/docs/command-line-interface.html#extract...), and/or by pointing at a Python file that can process each Singer message. Building a DropBase-style UI over that would be on the horizon too, once we’ve brought the Entity Selection interface back (https://gitlab.com/meltano/meltano/-/issues/2002) and add interfaces for metadata rules and schema overrides.
I'll create some more issues around this potential direction tomorrow :-)
---
If you or anyone else interested in open source, self-hosted ETL/ELT end up giving it a try, I'd love to hear what you think, so that we can figure out how to build it into this direction together!
I was debating going with a similar stack (postgres(t)) but am currently playing around with sqlitebiter. Cool to see a similar product like this!
We don't let you manage your file system through API but we offer access to your database tables through REST APIs. It's not the same but you could hack it to work that way.
Access to XMLHttpRequest at 'https://api.dropbase.io/v1/pipeline/HhNFQmZnnFkjrqK6Lptr3w/l... from origin 'https://app.dropbase.io' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
The csv file is UTF-8 encoding.
If you want, you can also share the csv with us and we'll troubleshoot it on our end. just email us at hello@dropbase.io
Really?
If not, could you clarify what you mean?
What would you be interested more in: loading data from parquet files or converting and storing your data in parquet?
if you want to join/group static files (like csv/excel), then you'd need import your files into dropbase DB first and then run sql query on that DB.
let me know if this answered your questions.