Add DB adaptor for RedisGraph
onyame opened this issue · comments
Adaptor to store PROV in RedisGraph (https://oss.redislabs.com/redisgraph/)
Nice I will look into that if I have some time during the holidays! 👍
Thanks, Andreas, for the hint with the module. I think this could be a great new feature for the lib.
I evaluated the current status of the Redis graph project and created a minimal implementation of the Redis adapter. The technology is promising but in an early stage of development. I want to share some thoughts I had during the implementation :
- No stable docker image
redislabs/redisgraph:edge
needed to get it running /:latest
is 4 months old - No stable python lib - I had to install it directly via git
git+git://github.com/RedisGraph/redisgraph-py
- Some Cypher features missing - see blocking issues
Todos
- Proper session support (transactions?)
- Redis authentication support (username / password)
- Redis host / port via config instead of static values
- Support merge feature (Curretly not possible)
Blocking issues
- RedisGraph/redisgraph-py#66
- Missing Cypher Support
Casting functions (toBoolean, toFloat, toInteger)
Relationship functions (startNode, endNode, type)
WITH REDUCE
- ... ?
Currently, we need to rewrite the Chyper queries and rethink the logic in the adapter itself. That will be a lot of work if you like to support the full feature set. The other "solution" would be to wait a couple of months and hope that the Redis team will implement more Chyper features and solve some blocking issues.
I don't have the time to rewrite the whole adapter code, but If someone likes to deep dive into this, I'm happy to support it!
Otherwise, I will look into this again and provide an update In a couple of months.
Prototype working branch:
https://github.com/DLR-SC/prov-db-connector/tree/%2384-redis-support
There seems to be little activity in the RedisGraph repository. I don't think that RedisGraph will support the full feature set of cypher in the near future.
To implement this feature a valid option is to rewrite and rethink/optimize the queries itself. By using only the already provided features within RedisGraph
Update: The issue is still open but I requested an update.
Update: The issue is still open but I requested an update.