Je migre des données de fichiers csv SQL (1 par table) vers une base de données Cassandra qui utilise un format prédéfini et standardisé. Par conséquent, je fais des transformations, des jointures, etc. sur les données SQL pour l'obtenir correspondant à ce format avant de l'écrire sur Cassandra. Mon problème est que cette migration db se passe par lots (pas tous en même temps) et je ne peux pas m'assurer que les informations des côtés multiples d'une table seront présentes lors de l'écriture d'une entrée dans Cassandra.Scala Spark Cassandra mise à jour ou insertion de lignes sur la correspondance de clé primaire
ex. Le tableau 1 et le tableau 2 ont tous deux les clés de partitionnement et de mise en cluster (autorisant la jointure car leur combinaison est unique) et sont joints à l'aide d'une jointure externe complète. Avec la façon dont nous recevons des données, cependant, il est possible que nous puissions obtenir un enregistrement du tableau 1 mais pas du tableau 2 dans un «lot» de données. Quand j'effectue la jointure externe complète, aucun problème ... les colonnes supplémentaires de l'autre table sont ajoutées et juste remplissent avec des nulls. Sur l'intervalle suivant où j'obtiens des données, je reçois ensuite la partie de la table 2 qui aurait dû être jointe au tableau 1.
Comment puis-je combiner ces entrées?
J'ai recherché une méthode de mise à jour ou de type d'insertion dans Spark selon que cet ensemble de clés de partitionnement et de cluster existe, mais n'a rien trouvé. Est-ce le moyen le plus efficace? Devrai-je simplement ajouter chaque entrée avec la requête spark.sql, puis mettre à jour/écrire?
Remarque: l'utilisation d'uuids qui empêcheraient le conflit de clé primaire ne résoudra pas le problème, je ne souhaite pas 2 entrées partielles. Toutes les données avec cette clé primaire particulière doivent être dans la même rangée.
Merci pour toute aide que vous pouvez fournir!
Toutes les écritures sont correctes même dans le connecteur Spark Cassandra. Les exécutions suivantes remplaceront simplement les entrées existantes. – RussS