J'ai un grand dataset
avec éventuellement plus d'un million d'entrées. Tous les éléments ont un horodatage assigné et les éléments sont ajoutés à l'ensemble au moment de l'exécution (généralement, mais pas toujours, avec un horodatage plus récent). Je dois montrer un sous-ensemble de ces données pour une certaine plage de temps. Cette plage de temps est généralement relativement petite par rapport à l'ensemble de données total, c'est-à-dire que parmi les 1.000.000+ articles, pas plus d'environ 1000 sont dans cette plage de temps donnée. Cette plage de temps se déplace à un rythme constant, par ex. chaque seconde, la plage de temps est déplacée d'une seconde. En outre, l'utilisateur peut ajuster la plage de temps à tout moment ("se déplacer" dans l'ensemble de données) ou définir des filtres supplémentaires (par exemple, filtrer par du texte). Jusqu'ici je n'étais pas inquiet au sujet de la performance, essayant d'obtenir les autres choses correctes, et seulement travaillé avec de plus petits ensembles de test. Je ne suis pas sûr de savoir comment aborder ce problème efficacement et je serais heureux pour chaque contribution. Merci.Filtrage d'un sous-ensemble de (potentiellement) 1.000.000+ éléments
Edit: Le langage utilisé est C# 4.
Mise à jour: Je suis maintenant en utilisant un arbre intervalle, la mise en œuvre peut être trouvée ici: https://github.com/mbuchetics/RangeTree
Il est également livré avec une version asynchrone qui reconstruit l'arbre à l'aide la bibliothèque parallèle de tâches (TPL).
L'ensemble de données est-il trié en fonction de l'horodatage? – mtrw
Quelle structure de données utilisez-vous pour stocker des éléments 1000000 +? – TalentTuner
Est-ce un objet 'DataSet' ou faites-vous référence à une base de données quand vous dites Dataset? – jvanrhyn