4.3 Opérateurs de flux
4.3.1 Fenêtres
Comme nous l’avons vu dans la section3.1, l’opérateur de fenêtre est un des
opé-rateurs les plus étudiés dans la littérature. Toutefois, son comportement est encore
flou sur certains points. La formalisation de son fonctionnement permet une meilleure
spécification.
Association position-batch
Avant de définir formellement l’opération de fenêtrage, nous avons besoin d’un
outil pour gérer l’association entre la position d’un n-uplet et de sonbatch. La fonction
τ
Sdéfinit cette association (def4.3.1).
Définition 4.3.1 Fonction position-batch
SoitSun flux,
La fonctionτ
S: N→T×Nest la fonction qui par une position (dans
N) donne l’identifiant du batch (dansT×N) du seul n-uplet ayant cette
position.
Par convention,τ
S(0) = (t
0, 0).
En corollaire de l’hypothèse des ordres4.1, la fonctionτ
Sest croissante non-stricte.
Ainsi, il est possible de définir une pseudo inverse (cor4.1)τ
S−1capable de donner une
position (la maximale) pour unbatchdonné.
Corollaire 4.1 Fonction pseudo-inverse deτ
SoitSun flux,
La pseudo-inverse τ
S−1: T×N → N existe et correspond à la plus
grande position dubatchdonné en entrée. Si aucunbatchn’existe, le plus
proche est utilisé. Formellement,
∀b ∈ T×N, τ
S−1(b) =
+∞∑
n=0
n1
[τS(n),τS(n+1)[(b)
Description de séquences de fenêtres
Afin de se rapprocher le plus possible d’un aspect déclaratif, il est nécessaire de
décomposer l’opérateur de fenêtre en deux objets mathématiques : la description de
son évolution et la séquence de fenêtres. Cette dernière prend une description en
argu-ment pour représenter la relation temporelle résultante. Le principe des descriptions
de séquences de fenêtres tel que décrit dans la définition4.3.2) est assez simple
puis-qu’il suffit de décrire deux bornes (α et β) évoluant de manière discrète ainsi qu’un
taux d’évaluation de ces bornes (r).
Exemple 4.5 :
Nous souhaitons connaître tous les 100 relevés de charge processeur, les 10 derniers
relevés. Dans ce cas, nous souhaitons obtenir une séquence de fenêtres positionnelles
générées tous les100n-uplets (r = 100 ∈ N). Nous appliquons des bornes
position-nelles α,β ∈ (N → N)
2. La première fenêtre contient du 91
èmen-uplet au 100
ème.
Ainsi :α(0) =91etβ(0) =100. Sachant que l’évolution des bornes est linéaire, nous
Définition 4.3.2 Description de Séquence de Fenêtre (DSF)
Soient D et D
0pouvant êtreT ouN, une description de séquence de
fenêtre (DSF) est un triplet(α,β,r)tel que :
– r∈ D est le taux d’évaluation des bornes de la fenêtre
– α et β sont deux fonctions de N → D
0représentant l’évolution des
bornes.
α(j)et β(j) définissent les j
èmevaleurs des bornes. La première borne
est donnée pourj=0. Ces fonctions se doivent de vérifier les propriétés
suivantes (en considérantD =D
0=T) :
∀j∈ N,
α(j) ≤β(j) le début est avant la fin
α(j) ≥t
0le début existe
β(j)≤ jr+β(0) la fin est accessible
Les conditions pour les autres cas pour D et D
0se déduisent par
appli-cation des fonctionsτ
Setτ
S−1.
avons :
α(j) = 100j+91
β(j) = 100j+100
r = 100
La création de fenêtres nécessite d’associer les n-uplets du flux et le numéro de
fenêtre décrit dans la DSF. Pour cela, nous définissons en 4.3.3une fonction d’attente
utilisant les identifiants debatchs. Cette fonction donne le rang de la dernière fenêtre
complète au moment du batch. Le terme attenteest lié au fait que l’évaluateur de
fe-nêtre doit attendre le prochain changement deγ. Nous retrouvons dans cette fonction
le caractèrebloquantdes fenêtres.
Définition 4.3.3 Fonction d’attenteγ
SoitSun flux, soit(α,β,r)une DSF,
La fonction d’attente de la DSF est une fonctionT×N → N
permet-tant de trouver pour un identifiant de batch, l’identifiant de la dernière
fenêtre complétée.
– Sir∈ T, cette fonction est définie parγ: (t,i) 7→j
t−β(0)r
k
.
– Sir∈ N, cette fonction est définie parγ: (t,i) 7→
τS−1(t,i)−β(0)
r
.
Exemple 4.6 :
En reprenant l’exemple précédent, après simplification nous obtenons :
γ(b) =
$
τ
S−1(b)
100
%
−1.
Si nous supposons que le flux produit un n-uplet par seconde (ainsi, τ
S−1(t,i) =
bt/1sc) : alors γ(1024s, 0) = j
1024 100
k
−1 = 9. Nous avons bien la 10
èmefenêtre
(j=9) comme la dernière fenêtre créée à l’instant 1024.
L’opérateur
Il devient désormais possible de définir un opérateur permettant de générer une
relation temporelle à partir d’un flux donné. Cette relation temporelle change d’état
avec l’instant défini par la fonctionγ. De manière générale, une DSF peut être ramenée
à une expression plus générale (α,β,γ) ce que nous utilisons pour la définition 4.3.4
de séquence de fenêtres.
Définition 4.3.4 Opérateur de Séquence de Fenêtres
SoitSun flux et(α,β,γ)une description de séquence,
L’opérateur de séquence de fenêtres est défini par :∀(t,i)∈ T×N,
– Siγ(t,i) ≥0,
– Si la description possède des bornes temporelles :
S[α,β,γ](t,i) = {s∈ S, (α(γ(t,i)), 0)≤ B
S(s) ≤(β(γ(t,i)),i)}
– Si la description possède des bornes positions :
E(t,i) ={s∈ S, τ
S(α(γ(t,i)))≤ B
S(s)≤τ
S(β(γ(t,i)))}
S[α,β,γ](t,i) ={s ∈ E(t,i)/(#E(t,i)−pos
E(t,i)
(s))≤ β(γ(t,i))−α(γ(t,i))}
– Siγ(t,i) <0 alorsS[α,β,γ](t,i) = ∅
Plusieurs remarques peuvent être formulées sur cette définition. Tout d’abord, les
expressions sont différentes si les bornes sont positionnelles ou temporelles. Pour les
fenêtres temporelles, l’opérateur inclut les n-uplets dont l’identifiant debatchs’étend :
depuis le premierbatchde la fenêtre : (α(γ(t,i)), 0), i.e. ceux dont letimestampest
supérieur à la borne inférieure.
jusqu’au dernierbatchde la fenêtre :(β(γ(t,i)),i). Ce qui correspond aui
èmebatch
ayant letimestampinférieur ou égal à la borne.
Il est important de voir que S[α,β,γ] peut changer à l’arrivée d’un nouveau batch,
même si letimestampne change pas. Ne pas inclure ces modifications ferait perdre des
données à la fenêtre. Nous retrouvons les problématiques explorées dans la section3.1.
Pour les fenêtres positionnelles, la gestion est plus délicate. Si nous considérons
que le flux réparti ses batchs (un n-uplet par batch), alors E(b) = S[α,β,γ](b). Mais
dans le cadre général, E(b) contient l’ensemble des n-uplets potentiels et la séquence
S[α,β,γ](b)en est un sous-ensemble dont la taille est exactement celle décrite dans la
DSF (sélections des n-uplets les plus récents). De plus, nous remarquons queγen
po-sitionnel est défini en fonction deτ
S−1qui fournit la position maximale en cas d’égalité
debatchs, ce qui nous garanti de couvrir l’ensemble des n-uplets concernés.
Exemple 4.7 :
La figure4.1montre l’évolution d’une séquence où la fenêtre glisse de2secondes toutes
les2secondes (r=2) avec une taille constante de3secondes. t
0=0par simplicité ici.
La première fenêtre possède les bornesα(0) = t
0+0s etβ(0) = t
0+3s. Sachant que
le glissement est de2s la description de fenêtre est
∀j∈ N,
(
α(j) = j∗2s+t
0β(j) = j∗2s+3s+t
0La relation temporelle générée par cette DSF peut être notée S[2js, 2js +3s, 2s]. Le
calcul de son état à un instant est simple. Prenons le batch (t
0+5.5s, 0). La fenêtre
à calculer est la fenêtre numérotée γ(t
0+5.5s, 0) = j
t0+5.5s−β(0)r
k
= 1. Ainsi :
S[2js, 2js+3s, 2s](t
0+5.5s, 0) = F
1={s
4,s
5,s
6,s
7,s
8}.
F
IGURE4.1 – Séquence de fenêtre de taille 3sglissante de 2s
Définition 4.3.5 Exclusions de bornes de fenêtres
SoitSun flux et(α,β,γ)une description de séquence de fenêtre,
Les notations S]α,β,γ], S[α,β,γ[ et S]α,β,γ[ désignent les définitions
de l’opérateur classique de séquence de fenêtre permettant d’exclure
res-pectivement les bornes inférieures, supérieures ou les deux.
Exemple 4.8 :
En reprenant la définition de fenêtre sur 5 secondes :(j∗5s+t
0,j∗5s+5s+t
0, 5s).
Nous remarquons que les fenêtres 0 et 1 contiennent les n-uplets dont le timestamp est
égal à t
0+5s. Ainsi, l’opérateur S]jr+t
0,jr+r+t
0,r]avec r=5s permet de retirer
les n-uplets à ce timestamp de cette fenêtre.
Fenêtres partitionnées
L’opérateur de fenêtres partitionnées est très utilisé pour appliquer la même
sé-quence de fenêtres à des sous-flux. Les opérateurs partitionnés sont tous décrits de
la même manière. Le principe, illustré dans la figure4.2 est de diviser le flux suivant
un (ou des) attribut A donné. Sur chacun de ces sous-flux est appliqué un opérateur
quelconque. Le résultat est l’union des résultats de ces opérateurs.
F
IGURE4.2 – Principe d’un opérateur partitionné
Ainsi, nous décrivons dans la définition 4.3.6de séquence de fenêtre partitionnée
l’application de ces principes de partitionnement sur l’opérateur de séquence de
fe-nêtre.
Définition 4.3.6 Séquence de fenêtre partitionnée
Soient S un flux, a
1, ...,a
kun ensemble d’attributs du schéma de S, et
(α,β,γ)une DSF,
Soit∪
∗l’union relationnelle conservant les identifiants physiques,
Alors, la séquence de fenêtres (α,β,γ) partitionnées par a
1, ...,a
kest
définie par :
S[a
1...a
k/α,β,γ] = [
∗a∈Dom(a1,...,ak)
(σ
(a1,...,ak)=aS)[α,β,γ]
Nous remarquons que nous utilisons la définition de l’union relationnelle
conser-vant les identifiants physiques présentés dans la section précédente, ainsi l’ordre
na-turel décrit dans le flux d’entrée peut être retrouvé dans la relation de sortie.
Exemple 4.9 :
L’exemple le plus courant est la représentation de l’état actuel d’un système à partir
d’un flux. Supposons un flux d’entrée CPU(appId,cpu,τ), nous donnant les relevés
de charge de processeur. Soit la description de fenêtre rapportant le dernier n-uplet
d’un flux : (1j, 1j, 1). Nous pouvons obtenir la relation temporelle représentant pour
chaque application appId, la dernière valeur connue de cpu ainsi que le timestamp τ
de mesure :
CPU[appId/1j, 1j, 1]
Cet exemple illustre comment nous pouvons passer d’un flux brut à une
représen-tation (dynamique) d’uncontexte.
La définition du partitionnement par l’union conservant les identifiants physiques
permet d’avoir un ordre clair et intuitif sur la relation temporelle résultante. Lorsqu’un
nouveau n-uplet entre dans cette relation (ou remplace l’ancien n-uplet), alors il est
mis en bout. Avec l’union classique, il est nécessaire de définir l’ordre d’application des
unions. Et les n-uplets auraient changé d’identifiants à chaque nouvel état de la fenêtre,
ce qui est difficile à contrôler et à manipuler.
Par la suite, plusieurs notations simplifiées sont utilisées pour désigner des
des-criptions de fenêtres courantes décrites dans le tableau 4.2. Notons que les
équiva-lences présentées dans ce tableau sont non triviales et sont démontrées dans
l’an-nexeA.
Définition Équivalence
[L] [j,j, 1]
La séquence de fenêtre où chaque fenêtre ne contient que le dernier
n-uplet du flux. Cette séquence est égale à [B] si le flux répartit ses
n-uplets avec un n-uplet parbatch.
[B] ]τ
S−1(τ
S(j)
−),j, 1] {s ∈ S,B
S(s) = τ
S◦τ
S−1(b)}
Séquence de fenêtre où chaque fenêtre contient le dernierbatch.
[∞] [0,j, 1] {s ∈ S,B
S(s) ≤b}
Séquence cumulative contenant tout le flux jusqu’aubatchcourant.
[T r s] ]max(sj−r+t
0,t
0),sj+t
0,s]
Fenêtre temporelle de taille r se déplaçant toutes les s unités de
temps.
[P r s] ]max(sj−r, 0),sj,r]
Fenêtre positionnelle de taille r n-uplets se déplaçant tous les s
n-uplets.
T
ABLE4.2 – Liste des fenêtres courantes
Dans le document
Gestion de flux de données pour l'observation de systèmes
(Page 79-85)