graphprotocol / graphprotocol/graph-node

[Feature] Windowed aggregates

Ouverte
#5,302 3 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

area/aggregations enhancement Stale
Langage dominant
Rust
Étoiles
3.2k
Forks
1.1k
Merge moyen
4 j 1 h
PR mergées (30 j)
1

Description

Description

Aggregates can be formed either over the current bucket (hour, day) or the entire lifetime of the underlying timeseries. In some cases, it would also be useful to aggregate over a limited window, e.g., the last 6 hours. That could look something like

  recent_max_price: BigDecimal! @aggregate(fn: "max", arg: "price", window: 6)

The current ways to aggregate would be expressed as window: 1 (default) and window: "all" (lifetime/cumulative)

There's a bunch of things that aren't entirely clear:

  • Is it enough if the window is always an integer multiple of the bucket? Or should we offer expressing arbitrary times there, like window: "90 minutes"
  • How would users express that a windowed aggregate should be done for one interval but not the others, e.g., if the above aggregation is done both hourly and daily, how do you express "only add this to the hourly aggregates"

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Aucun fichier, test ou point d’entrée n’est nommé. Commencez par examiner la syntaxe d’agrégation existante et le fonctionnement des agrégations du bucket courant et sur toute leur durée de vie ; la définition comme terminée nécessite une représentation convenue de la fenêtre et une portée d’intervalle, avec des tests couvrant les fenêtres bornées, par défaut et sur toute la durée de vie.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
graphql, rust
Domaine
api, data
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.