Fork me on GitHub
Vincent Cantin18:03:15

I went through the documentation of Crux and I still have questions.

Vincent Cantin18:03:52

Are vectors of vectors supported?

Vincent Cantin18:03:40

Are maps of maps supported? (supposing that we can't flatten them at the root level of the document, for some reasons)


Hi @vincent.cantin - you can put almost any valid edn map in as a document, so long as it has a valid :crux.db/id - but you won't be able to use Datalog queries to their fullest potential unless you shred your data into smaller documents. If you can give an example of the kind of document structures you are working with I can try to help you understand how it could be modelled

Vincent Cantin18:03:01

I don't have the data at hand, but I have been told that it is heavily aggregated into documents.

Vincent Cantin18:03:45

The use case is to import a huge legacy DB into (maybe) Crux, in order to run data analytics on it.

Vincent Cantin18:03:18

The reason why I thought about Crux is for the bitemporal aspect.


Ah okay, interesting. Crux is certainly fast enough to support many kinds of analytical queries (likely with a mixture of Datalog + Clojure), and bitemporality can be very helpful for integrating views over multiple data sources or even multiple imports of the same legacy DB. Numerical analytics over timeseries data is not going to be efficient with Crux today though. Ingesting the data as-is and then gradually transforming it (retroactively!) to support your queries would be a reasonable thing to do. Feel free to reach out if you want to discuss anything in more detail - I would be very happy to video call etc. 🙂

👍 4