Splunk

Créer des requêtes plus complexes

Ratio homme/femme au cours du temps

Comme précisé dans le cours, le SPL permet de concaténer plusieurs sous-requêtes afin d'effectuer plutôt facilement de multiples opérations.

Nous cherchons à évaluer l'évolution du ratio homme/femme au cours du temps, pour voir si sur les 12 ans de l'étude, les choses ont significativement changé.

Nous allons procéder à la création de sous-requêtes petit à petit, afin de comprendre le processus.

1
|eval X=...

est une commande qui permet de stocker un résultat dans la variable X.

On va utiliser la fonction ternaire IF(a,b,c) qui renvoie b si a est vrai, c sinon.

Question

Stocker dans une variable male le nombre d'événements où le client est un homme. De même pour une femme dans female.

Indice

On va pour l'instant seulement donner aux variables male et female la valeur 1 si on tombe sur une personne du bon sexe, 0 sinon. On s'occupera après de sommer ces booléens.

Solution
1
|eval male=IF(CLIENT_GENDER="M",1,0)
2
|eval female=IF(CLIENT_GENDER="F",1,0)

Question

Tracer la courbe de la variable qui contient la somme de chacune de ces deux valeurs male et female au cours du temps. Stocker dans smale et sfemale ces deux sommes.

Indice

On utilisera la fonction sum() et le mot clé as qui fonctionne comme en SQL.

Solution
1
|timechart sum(male) as smale, sum(female) as sfemale

On obtient ainsi un graphique par mois du nombre d'événements où un client homme est impliqué tracé par smale, et de même pour les femmes avec la courbe sfemale.

Question

Enregistrer de la même façon que dans la question 1 le ratio homme/femme dans une variable, qui servira ensuite à tracer une courbe.

Indice

Souvenez-vous du mot-clé "eval".

Solution
1
|eval ratio=smale/sfemale

Enfin, créer un tableau de ce ratio en fonction du temps, grâce à la requête :

1
|table _time, ratio

Requête complète

Cela nous donne la requête complète :

1
source="lightsaber.csv"|eval male=IF(CLIENT_GENDER="M",1,0)|eval female=IF(CLIENT_GENDER="F",1,0)|timechart sum(male) as smale, sum(female) as sfemale|eval ratio =smale/sfemale|table _time, ratio

Graphiquement, cela nous donne ce résultat :

Ratio homme/femme au cours du temps

Le directeur marketing se rend compte que ce ratio est plutôt stable au cours du temps. Graphiquement il se rend compte très facilement de la réalité du terrain : les hommes achètent plus que les femmes des sabres-laser.

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimer Olympio Barthélemy Paternité - Partage des Conditions Initiales à l'IdentiqueRéalisé avec Scenari (nouvelle fenêtre)