

Après mûre réflexion, nous avons décidé de mettre fin à Amazon Kinesis Data Analytics pour les applications SQL :

1. À compter du **1er septembre 2025,** nous ne fournirons aucune correction de bogue pour les applications Amazon Kinesis Data Analytics for SQL, car leur support sera limité, compte tenu de l'arrêt prochain.

2. À compter du **15 octobre 2025,** vous ne pourrez plus créer de nouvelles applications Kinesis Data Analytics for SQL.

3. Nous supprimerons vos candidatures à compter **du 27 janvier 2026**. Vous ne serez pas en mesure de démarrer ou d'utiliser vos applications Amazon Kinesis Data Analytics for SQL. Support ne sera plus disponible pour Amazon Kinesis Data Analytics for SQL à partir de cette date. Pour de plus amples informations, veuillez consulter [Arrêt d'Amazon Kinesis Data Analytics pour les applications SQL](discontinuation.md).

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Stagger Windows
<a name="stagger-window-concepts"></a>

Les *fenêtres stagger* sont une méthode de fenêtrage adaptée à l'analyse des groupes de données qui arrivent à intervalles irréguliers. Elle est idéale pour les cas d'utilisation d'analyse de données chronologiques, comme un ensemble de ventes liées ou d'enregistrements de journaux.

Par exemple, les [journaux de flux VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-logs-limitations) ont une fenêtre de capture d'environ 10 minutes. Mais elle peut atteindre 15 minutes si vous regroupez des données sur le client. Les fenêtres stagger sont idéales pour agréger ces journaux à des fins d'analyse.

Stagger Windows résout le problème d'enregistrements connexes n'entrant pas dans la même fenêtre de temps, comme lors de l'utilisation de fenêtres à bascule.

## Résultats partiels avec les fenêtres à bascule
<a name="stagger-window-tumbling"></a>

L'utilisation [Fenêtres bascules](tumbling-window-concepts.md) pour agréger des données en retard ou des out-of-order données présente certaines limites.

Si les fenêtres bascules sont utilisées pour analyser les groupes de données connexes, les enregistrements individuels peuvent entrer dans des fenêtres distinctes. Par conséquent, les résultats partiels de chaque fenêtre doivent être combinés ultérieurement pour obtenir les résultats complets pour chaque groupe d'enregistrements. 

Dans la requête de fenêtre à bascule suivante, les enregistrements sont regroupés en fenêtres par valeur rowtime, heure d'événement et symbole boursier :

```
CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (
    TICKER_SYMBOL VARCHAR(4),
    EVENT_TIME timestamp,
    TICKER_COUNT     DOUBLE);

CREATE OR REPLACE PUMP "STREAM_PUMP" AS 
  INSERT INTO "DESTINATION_SQL_STREAM" 
    SELECT STREAM 
        TICKER_SYMBOL,
        FLOOR(EVENT_TIME TO MINUTE),
        COUNT(TICKER_SYMBOL) AS TICKER_COUNT
    FROM "SOURCE_SQL_STREAM_001"
    GROUP BY ticker_symbol, FLOOR(EVENT_TIME TO MINUTE), STEP("SOURCE_SQL_STREAM_001".ROWTIME BY INTERVAL '1' MINUTE);
```

Dans le schéma suivant, une application compte le nombre de transactions qu'elle reçoit, en fonction de la date à laquelle l'échange s'est produit (événement), avec une minute de granularité. L'application peut utiliser une fenêtre à bascule pour le regroupement des données en fonction de la chronologie et de l'événement. L'application reçoit quatre enregistrements qui arrivent les uns après les autres dans un délai d'une minute. Elle regroupe les enregistrements par valeur rowtime, heure d'événement et symbole boursier. Comme certains enregistrements arrivent après la fin de la première fenêtre à bascule, les enregistrements n'interviennent pas dans la même fenêtre à bascule d'une minute.

![](http://docs.aws.amazon.com/fr_fr/kinesisanalytics/latest/dev/images/stagger_0.png)


Le schéma précédent comporte les événements suivants.


****  

| ROWTIME | EVENT\_TIME | TICKER\_SYMBOL | 
| --- | --- | --- | 
| 11:00:20 | 11:00:10 | AMZN | 
| 11:00:30 | 11:00:20 | AMZN | 
| 11:01:05 | 11:00:55 | AMZN | 
| 11:01:15 | 11:01:05 | AMZN | 

L'ensemble de résultats de l'application de fenêtre à bascule se présente comme suit.


****  

| ROWTIME | EVENT\_TIME | TICKER\_SYMBOL | COUNT | 
| --- | --- | --- | --- | 
| 11:01:00 | 11:00:00 | AMZN | 2  | 
| 11:02:00 | 11:00:00 | AMZN | 1  | 
| 11:02:00 | 11:01:00 | AMZN | 1  | 

Dans le jeu de résultats précédent, trois résultats sont renvoyée :
+ Un enregistrement avec un `ROWTIME` de 11:01:00 qui regroupe les deux premiers enregistrements.
+ Un enregistrement à 11:02:00 qui regroupe uniquement le troisième enregistrement. Cet enregistrement possède un `ROWTIME` dans la deuxième fenêtre, mais un `EVENT_TIME` dans la première fenêtre.
+ Un enregistrement à 11:02:00 qui regroupe uniquement le quatrième enregistrement.

Pour analyser les résultats complets, les enregistrements doivent être regroupés dans le magasin de persistance. Cela ajoute de la complexité et des exigences en matière de traitement à l'application.

## Résultats complets avec Stagger Windows
<a name="stagger-window-concepts-stagger"></a>

Pour améliorer la précision de l’analyse des enregistrements de données temporelles, Kinesis Data Analytics offre un nouveau type de fenêtre appelé *fenêtre Stagger*. Dans ce type de fenêtre, les fenêtres s'ouvrent lorsque le premier événement correspondant à la clé de partition se produit, et non pas sur un intervalle de temps fixe. Les fenêtres se ferment en fonction de l'âge spécifié, qui est mesuré à partir du moment où la fenêtre s'est ouverte.

Une fenêtre stagger est une fenêtre distincte limitée dans le temps pour chaque regroupement clé d'une clause de fenêtre. L'application regroupe chaque résultat de la clause de fenêtre à l'intérieur de sa propre fenêtre temporelle, au lieu d'utiliser une seule fenêtre pour tous les résultats.

Dans la requête de fenêtre stagger suivante, les enregistrements sont regroupés en fenêtres par rowtime, heure d'événement et symbole boursier :

```
CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (
    ticker_symbol    VARCHAR(4), 
    event_time       TIMESTAMP,
    ticker_count     DOUBLE);

CREATE OR REPLACE PUMP "STREAM_PUMP" AS 
  INSERT INTO "DESTINATION_SQL_STREAM" 
    SELECT STREAM 
        TICKER_SYMBOL,
        FLOOR(EVENT_TIME TO MINUTE),
        COUNT(TICKER_SYMBOL) AS ticker_count
    FROM "SOURCE_SQL_STREAM_001"
    WINDOWED BY STAGGER (
            PARTITION BY FLOOR(EVENT_TIME TO MINUTE), TICKER_SYMBOL RANGE INTERVAL '1' MINUTE);
```

Dans le schéma suivant, les enregistrements sont regroupés en fenêtres stagger par heure d'événement et symbole boursier :

![](http://docs.aws.amazon.com/fr_fr/kinesisanalytics/latest/dev/images/stagger_1.png)


Le schéma précédent comporte les événements suivants, qui sont les mêmes événements que ceux analysés par l'application de fenêtre à bascule :


****  

| ROWTIME | EVENT\_TIME | TICKER\_SYMBOL | 
| --- | --- | --- | 
| 11:00:20 | 11:00:10 | AMZN | 
| 11:00:30 | 11:00:20 | AMZN | 
| 11:01:05 | 11:00:55 | AMZN | 
| 11:01:15 | 11:01:05 | AMZN | 

L'ensemble de résultats de l'application de fenêtre stagger se présente comme suit.


****  

| ROWTIME | EVENT\_TIME | TICKER\_SYMBOL | Nombre | 
| --- | --- | --- | --- | 
| 11:01:20 | 11:00:00 | AMZN | 3 | 
| 11:02:15 | 11:01:00 | AMZN | 1 | 

Les enregistrements retournés regroupent les trois premiers enregistrements d'entrée. Les enregistrements sont regroupés par fenêtres stagger de 1 minute. La fenêtre stagger démarre lorsque l'application reçoit le premier enregistrement AMZN (avec un `ROWTIME` de 11:00:20). Lorsque la fenêtre stagger de 1 minute expire à 11:01:20, un enregistrement avec les résultats qui se trouvent dans la fenêtre stagger (en fonction de `ROWTIME` et d'`EVENT_TIME`) est écrit dans le flux de sortie. À l'aide d'une fenêtre stagger, tous les enregistrements avec un `ROWTIME` et un `EVENT_TIME` dans une fenêtre d'une minute sont émis en un seul résultat.

Le dernier enregistrement (avec un `EVENT_TIME` une fois passée l'agrégation d'une minute) est regroupé séparément. En effet, `EVENT_TIME` est l'une des clés de partition utilisées pour séparer les enregistrements en jeux de résultats, et la clé de partition `EVENT_TIME` pour la première fenêtre est `11:00`.

La syntaxe d'une fenêtre stagger est définie dans une clause spéciale, `WINDOWED BY`. Cette clause est utilisée au lieu de la clause `GROUP BY` pour les regroupements de streaming. La clause s'affiche immédiatement après la clause `WHERE` facultative et avant la clause `HAVING`. 

La fenêtre stagger est définie par la clause `WINDOWED BY` et accepte deux paramètres : les clés de partition et la longueur de la fenêtre. Les clés de partition partitionnent les flux de données entrantes et définissent à quel moment la fenêtre s'ouvre. Une fenêtre stagger s'ouvre lorsque le premier événement avec une clé de partition unique s'affiche dans le flux. La fenêtre stagger se ferme après une période définie, par la longueur de la fenêtre. Cette syntaxe est illustrée dans l'exemple de code suivant.

```
...
FROM <stream-name>
WHERE <... optional statements...>
WINDOWED BY STAGGER(
	PARTITION BY <partition key(s)>
	RANGE INTERVAL <window length, interval>
);
```