170 karma · joined October 15, 2021
https://duckdb.org/community_extensions/extensions/stats_duc...
https://duckdb.org/community_extensions/extensions/stochasti...
-Customer software engineer at MotherDuck
https://duckdb.org/docs/extensions/sqlite
(I work at MotherDuck and DuckDB Labs)
(I work for DuckDB Labs and MotherDuck)
Your blog does a great job contrasting the two use cases. I don't think too much has changed on your main use case, however here are a few ideas to test out!
DuckDB can read SQLite files now! So if you like DuckDB syntax or query optimization, but want to use the SQLite format / indexes, that may work well.
Since DuckDB is columnar (and compressed), it frequently needs to read a big chunk of rows (~100K) just to get 1 row out and decompressed. Mind trying to store your data uncompressed? Might help in your case! (PRAGMA force_compression='uncompressed')
All that said - SQLite is still faster for transactions. Now DuckDB can actually read and write from/to SQLite, so you can use SQLite for OLTP and DuckDB for OLAP.
(I work on docs for the DuckDB Foundation)
Starting in this release, the DuckDB team invested significantly in adding memory safety throughout catalog operations. There is more on the roadmap, but I would expect this release and all following to have improved stability!
That said, at my primary company, we have used it in production for years now with great success!
No data is persisted in DuckDB unless you do an insert statement with the result of the Postgres scan. DuckDB does process that data in a columnar fashion once it has been pulled into DuckDB memory though!
Does that help?
Does that help or do you have any other questions?
And yes it is fast!
Also, with Pyarrow's help, DuckDB can already do this with Delta tables!