Exemple : Détection des points chauds sur un flux (fonction HOTSPOTS) - Manuel du développeur des applications Amazon Kinesis Data Analytics pour SQL

Pour les nouveaux projets, nous vous recommandons d’utiliser le nouveau service géré pour Apache Flink Studio plutôt que les applications Kinesis Data Analytics pour SQL. Le service géré pour Apache Flink Studio allie facilité d’utilisation et capacités analytiques avancées, ce qui vous permet de créer des applications sophistiquées de traitement des flux en quelques minutes.

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.

Exemple : Détection des points chauds sur un flux (fonction HOTSPOTS)

Amazon Kinesis Data Analytics fournit la fonction HOTSPOTS qui peut rechercher et renvoyer des informations sur les régions relativement denses de vos données. Pour plus d’informations, consultez HOTSPOTS dans le manuel Référence SQL du service géré Amazon pour Apache Flink.

Dans cet exercice, vous allez écrire du code d'application pour localiser les points chauds sur la source de streaming de votre application. Pour configurer l'application, exécutez les étapes suivantes :

  1. Configurer une source de streaming : vous configurez un flux Kinesis et écrivez des exemples de données de coordonnées, comme illustré ci-après :

    {"x": 7.921782426109737, "y": 8.746265312709893, "is_hot": "N"} {"x": 0.722248626528026, "y": 4.648868803193405, "is_hot": "Y"}

    L'exemple fournit un script Python qui vous permet de remplir le flux. Les valeurs x et y sont générées de façon aléatoire, avec des enregistrements regroupés autour de certains emplacements.

    Le champ is_hot est fourni en tant qu'indicateur si le script a généré intentionnellement la valeur dans le cadre d'un point chaud. Cela peut vous aider à évaluer si la fonction de détection des points chauds fonctionne correctement.

  2. Créer l’application : avec AWS Management Console, vous pouvez alors créer une application Kinesis Data Analytics. Configurez l'entrée d'application en mappant la source de streaming sur un flux intégré à l'application (SOURCE_SQL_STREAM_001). Lorsque l’application démarre, Kinesis Data Analytics lit en continu la source de streaming et insère des enregistrements dans le flux intégré à l’application.

    Dans cet exercice, vous utilisez le code suivant pour l'application :

    CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" ( "x" DOUBLE, "y" DOUBLE, "is_hot" VARCHAR(4), HOTSPOTS_RESULT VARCHAR(10000) ); CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM" SELECT "x", "y", "is_hot", "HOTSPOTS_RESULT" FROM TABLE ( HOTSPOTS( CURSOR(SELECT STREAM "x", "y", "is_hot" FROM "SOURCE_SQL_STREAM_001"), 1000, 0.2, 17) );

    Le code lit les lignes dans le flux SOURCE_SQL_STREAM_001, l'analyse pour rechercher les points chauds significatifs et écrit les données résultantes dans une autre flux intégré à l'application (DESTINATION_SQL_STREAM). Vous utilisez des pompes pour insérer des lignes dans les flux intégrés à l'application. Pour de plus amples informations, veuillez consulter Flux et pompes intégrés à l'application.

  3. Configurer la sortie : vous configurez la sortie de l’application pour envoyer des données depuis l’application vers une destination externe qui est un autre flux de données Kinesis. Vérifiez les scores de point chaud et identifiez ceux qui indiquent qu'un point chaud a eu lieu (et que vous devez être alerté). Vous pouvez utiliser une fonction AWS Lambda pour traiter plus en détails les informations sur les points chauds et configurer des alertes.

  4. Vérifiez la sortie – L'exemple inclut une application JavaScript qui lit les données du flux de sortie et les affiche de façon graphique pour que vous puissiez consulter les points chauds que l'application génère en temps réel.

L’exercice utilise la région USA Ouest (Oregon) (us-west-2) pour créer ces flux et votre application. Si vous utilisez une autre région, mettez à jour le code en conséquence.