Stratégie de stockage


#1

Bonjour,

j'ai une application qui permet d'importer des CSV de différents clients / formats etc. dans un serveur elasticsearch (afin d'afficher un graphisme avec les données).

Actuellement chaque CSV crée un index et un type.
A terme cela pourrait représenter plusieurs centaines d'index.

Qu'elle est la meilleure solution pour cela ? Est que créer un index par client puis un type par CSV est une bonne idée ? Quels sont les inconvénients ?

merci


(David Pilato) #2

Un index = potentiellement plusieurs instances de Lucene. Chaque Lucene consomme des ressources.
Il vaut mieux en limiter le nombre à mon avis.

Je te conseille de lire notamment https://www.elastic.co/guide/en/elasticsearch/guide/current/kagillion-shards.html


#3

merci pour ta réponse.

Effectivement c'est compliqué car je ne maitriserai pas l'utilisation faite par les clients. Il faut donc trouver le bon nombre de shard "moyen" par rapport à un volume inconnu.

De ton expérience si je pars sur 1 index, 30 types avec une moyenne à 100 000 documents par type quelle est la bonne configuration de shard ? Qui est plus pour une utilisation kibana like (donc filtre sur Term, agrégation etc.)

(sachant que j'ai un cluster de 3 noeuds à 16 Go de ram chacun et que pour égayer le tout sont déjà des index à 45 et 25 millions de documents.)

merci


(system) #4