Much like Redis, I admire the technology but can't think of a project I've worked on that would benefit from it.
Is it for games, maybe? Desktop or mobile apps?
Much like Redis, I admire the technology but can't think of a project I've worked on that would benefit from it.
Is it for games, maybe? Desktop or mobile apps?
DuckDB lets you process all that locally. It's the OLAP equivalent to SQLite's OLTP.
If I wasn't so beholden to the vagaries and inefficiencies of C-level endorsed enterprise software, I'd immediately be trying this out for data transformations/pipelines. I think that one big box (200+ gb ram, couple of cores and fat IO/network) runs circles around an entire spark cluster.
Is there a reason "in-core" is a specific requirement here?
(By the way, maybe I was vague, using overloaded terminology. To be precise with 'in-core' i meant that the solution to an analytic query is held completely in memory, not that it's restricted to using one cpu thread.)
I can totally see how not having to manage a standalone RDBMS makes sense. But, what's the real-world advantage over something like SQLite?
I mean, the idea of an in-memory relational engine for things like games or embedded totally makes sense, but this seems to target large datasets and deep analysis.
As far as I understand with this model you pretty much re-ingest data from the "raw" source on startup every time. Is this correct?
Judging by the rise on interest I'm sure there's an obvious use case I'm not seeing either.
I thought about that, but I'd never use DuckDB for it because DuckDB is locked into a single process. I can't figure out a benefit of being suck with one core when I always have between 2 and 32 available to me.
This very specific question is what I'm trying to understand. SQLite can be run in memory and as a temporary store.
This is definitely a pretty niche case, though, so there must be something more general that this was built to do.
This has to be the main point, right? DuckDB isn't the first mover here (SQL.js, which is SQLite compiled to WASM using emscripten, seems to work fine), but perhaps DuckDB is better as a purpose-built solution.
If so, that's the opposite of what DuckDB does. Under to "When not to use DuckDB" section of their website, they say:
> "[Do not use DuckDB when] writing to a single database from multiple concurrent processes"
Honestly, that's the most baffling part. I can't imagine wanting any database that's locked in a single process.