0

Je travaille actuellement sur une configuration qui utilise Google Cloud Dataflow pour transformer des données et les enregistrer dans une base de données Neo4j hébergée sur une machine virtuelle Compute Engine. La configuration actuelle utilise un JdbcIO pour écrire sur Neo4j en exécutant une instruction préparée, mais il semble également possible d'utiliser un pilote Neo4j directement en Java, ce qui permet plus de flexibilité dans la création dynamique de la requête.sortie de flux de données vers neo4j en utilisant jdbcIO vs pilote java

Je me demande si quelqu'un avait comparé les 2 approches et remarqué des différences? Je suppose que l'approche Jdbc serait plus efficace car il suffit de lancer la déclaration préparée, mais c'est juste ma conjecture.

Mise à jour Je vais poster mes résultats que j'expérimenter plus avec les deux méthodes

+0

Des mises à jour sur ce problème? – harveyxia

+0

nous finissons par développer un plugin personnalisé qui se déploie dans notre base de données neo4j. la chaîne d'insertion du plugin consiste en des objets json bruts et crée les nœuds et les relations en conséquence. Afin d'obtenir de meilleures performances, nous avons utilisé une transformation de fenêtrage et de combinaison dans le pipeline pour regrouper toutes les requêtes reçues en 10 secondes en une seule grande requête, et les envoyer une fois à neo4j. nous avons également utilisé un cache en mémoire dans le plugin pour booster les performances. Jusqu'à présent, il était en mesure de répondre à nos besoins –

+0

Puis-je demander quelle API Neo4J vous avez utilisé pour effectuer les écritures? – harveyxia

Répondre

0

Une différence que j'ai trouvé que lorsque vous utilisez JdbcIO, je lance dans une impasse lorsque la transaction multiple tente d'écrire au même noeud en même temps. Cependant, ce problème ne s'est pas produit lors de l'utilisation directe du pilote Neo4j.