voici mon problème : J'ai des données issues d'un fichier type CSV avec des clients et des commandes. L'index Elastic est sous la forme suivante :
Un client qui a des commandes qui ont des lignes de commandes.
Idéalement il faudrait éviter ces nested mais bon, l'utilisation faite après répond à notre besoin.
Quoiqu'il en soit, tout marche très bien en bulk sauf un cas client qui a plus de 30 000 commandes associés (trop pour le bulk).
Quelles solutions ai je pour insérer ce type de données ?
J'exploite les données en datavisualisation, j'ai donc besoin que les informations ne soient pas dupliquées pour la partie client (d'ou aborder çà par clients et non commandes). Par exemple j'ai besoin d'avoir la répartition homme / femme, moyenne d'age, répartition géographique etc. et en meme temps etre capable en sélectionnant un produit ou une famille de produits d'avoir une carte geo des clients l'ayant acheté ou leur moyenne d'age.
Cela fonctionne très bien pour l'ensemble des clients sauf ce cas qui pose problème à l'import.
Effectivement il vaut mieux éviter. Pour autant, imaginons que je duplique mon client pour avoir un index à plat, de fait son age est répété. Si je veux ma moyenne d'age elle sera fausse.
J'avais échangé il y'a qq. temps avec David P. lors d'un BBL, c'était (à l'époque en tout cas) la meilleure manière par rapport au besoin final.
Nous avons une quarantaine de structure identique avec plusieurs millions de documents et tout fonctionne sans soucis.. Sauf ce cas là sur l'insertion.
le bulk global (un client / X milliers de commandes) fait un timeout.
Le contournement reste la création et l'update par lot avec un script painless mais c'est très très long.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.