Stratégie insertion

Bonjour,

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 ?

merci

Pourquoi indexes tu des clients et non des commandes ?

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.

Pourquoi tu indexes pas directement les commandes avec pour chaque commande son client ?

Il me semble qu’il est conseillé d indexer les documents les plus plats possible ( si je dis pas des bêtises )

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.

Ok je vois.

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).

Quel est le message d'erreur du coup ?

Peut-être que du parent/child serait mieux dans ce cas ? (Même si je ne suis pas fan de ça).

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.

Parent/child résoudrait ce problème à moindre coût.
Et si le dataset reste finalement assez raisonnable, ça peut être un bon compromis à mon avis.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.