3 ms·
So if I understand this correctly from an application developers perspective: - for OLTP tasks, something row based like sqlite is great. Small to medium amoun
by anonyfox 6y ago
So if I understand this correctly from an application developers perspective:
- for OLTP tasks, something row based like sqlite is great. Small to medium amounts of data mixed reading/writing with transactions
- for OLAP tasks, arrow looks great. Big amounts of data, faster querying (datafusion) and more compact data files with parquet.
Basically prevent the operational database from growing too large, offload older data to arrow/parquet. Did I get this correct?
Additionally there seem to be further benefits like sharing arrow/parquet with other consumers.
Sounds convincing, I just have two very specific questions:
- if I load a ~2GB collection of items into arrow and query it with datafusion, how much slower will this perform in comparison to my current rust code that holds a large Vec in memory and „queries“ via iter/filter?
- if I want to move data from sqlite to a more permanent parquet „Archive“ file, is there a better way than recreating the whole file or write additional files, like, appending?
Really curious, could find no hints online so far to get an idea.
- humbleMouse 6y agoI think the best way to think about it is, you have teams where hadoop queries take 5+ hours to run. You port that same data into arrow, now that same query takes 30 seconds.
- anonyfox 6y agoThis is something I understood, but I ask specifically as a person at the intersection point between those worlds, owning the operational database and want to see if I can enhance systems for both, speedy operations _and_ seamless analytics using arrow.