Création d’un bloc-notes Studio avec Kinesis Data Streams - Service géré pour Apache Flink

Le service géré Amazon pour Apache Flink était auparavant connu sous le nom d’Amazon Kinesis Data Analytics pour Apache Flink.

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.

Création d’un bloc-notes Studio avec Kinesis Data Streams

Ce didacticiel explique comment créer un bloc-notes Studio qui utilise un flux de données Kinesis comme source.

Configuration

Avant de créer un bloc-notes Studio, créez un flux de données Kinesis (ExampleInputStream). Votre application utilise ce flux comme source de l’application.

Vous pouvez créer ce flux à l’aide de la console Amazon Kinesis ou de la commande AWS CLI suivante. Pour obtenir des instructions sur la console, consultez Création et mise à jour de flux de données dans le Guide du développeur Amazon Kinesis Data Streams. Nommez le flux ExampleInputStream et définissez le Nombre de partitions ouvertes sur 1.

Pour créer le stream (ExampleInputStream) à l'aide de AWS CLI, utilisez la commande Amazon Kinesis create-stream AWS CLI suivante.

$ aws kinesis create-stream \ --stream-name ExampleInputStream \ --shard-count 1 \ --region us-east-1 \ --profile adminuser

Création d'une AWS Glue table

Votre bloc-notes Studio utilise une base de données AWS Glue pour les métadonnées relatives à votre source de données Kinesis Data Streams.

Note

Vous pouvez d’abord créer la base de données manuellement ou laisser le service géré pour Apache Flink la créer pour vous lors de la création du bloc-notes. De même, vous pouvez soit créer la table manuellement comme décrit dans cette section, soit utiliser le code du connecteur de création de table pour le service géré pour Apache Flink dans votre bloc-notes dans Apache Zeppelin pour créer votre table via une instruction DDL. Vous pouvez ensuite vous enregistrer AWS Glue pour vous assurer que la table a été correctement créée.

Création d’une table
  1. Connectez-vous à la AWS Glue console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/glue/.

  2. Si vous n'avez pas encore de AWS Glue base de données, choisissez Bases de données dans la barre de navigation de gauche. Choisissez Ajouter une base de données. Dans la fenêtre Ajouter une base de données, saisissez default comme nom de la base de données. Choisissez Créer.

  3. Dans la barre de navigation de gauche, choisissez Tables. Sur la page Tables, choisissez Ajouter des tables, Ajouter une table manuellement.

  4. Sur la page Configurer les propriétés de votre table, saisissez stock pour Nom de la table. Assurez-vous de sélectionner la base de données que vous avez créée précédemment. Choisissez Suivant.

  5. Sur la page Ajouter un magasin de données, choisissez Kinesis. Pour le Nom du flux, saisissez ExampleInputStream. Pour URL source Kinesis, saisissez https://kinesis.us-east-1.amazonaws.com. Si vous copiez et collez l’URL source Kinesis, veillez à supprimer les espaces de début ou de fin. Choisissez Suivant.

  6. Sur la page Classification, choisissez JSON. Choisissez Suivant.

  7. Sur la page Définir un schéma, choisissez Ajouter une colonne pour ajouter une colonne. Ajoutez des colonnes avec les propriétés suivantes :

    Nom de la colonne Type de données
    ticker string
    price double

    Choisissez Suivant.

  8. Sur la page suivante, vérifiez vos paramètres, puis choisissez Terminer.

  9. Choisissez la table que vous venez de créer dans la liste des tables.

  10. Choisissez Modifier la table et ajoutez une propriété avec la clé managed-flink.proctime et la valeur proctime.

  11. Choisissez Appliquer.

Créer un bloc-notes Studio avec Kinesis Data Streams

Maintenant que vous avez créé les ressources utilisées par votre application, vous pouvez créer votre bloc-notes Studio.

Pour créer votre application, vous pouvez utiliser le AWS Management Console ou le AWS CLI.

Créez un bloc-notes Studio à l'aide du AWS Management Console

  1. Ouvrez la console du service géré pour Apache Flink à l’adresse https://console.aws.amazon.com/managed-flink/home?region=us-east-1#/applications/dashboard.

  2. Sur la page Applications de service géré pour Apache Flink, choisissez l’onglet Studio. Choisissez Créer un bloc-notes Studio.

    Note

    Vous pouvez aussi créer un bloc-notes Studio à partir des consoles Amazon MSK ou Kinesis Data Streams en sélectionnant votre cluster Amazon MSK ou votre flux de données Kinesis d’entrée, puis en choisissant Traiter les données en temps réel.

  3. Sur la page Créer un bloc-notes Studio, fournissez les informations suivantes :

    • Saisissez MyNotebook comme nom du bloc-notes.

    • Pour Base de données AWS Glue, choisissez Par défaut.

    Choisissez Créer un bloc-notes Studio.

  4. Sur la MyNotebookpage, choisissez Exécuter. Attendez que État indique En cours d’exécution. Des frais s’appliquent lorsque le bloc-notes fonctionne.

Créez un bloc-notes Studio à l'aide du AWS CLI

Pour créer votre bloc-notes Studio à l'aide du AWS CLI, procédez comme suit :

  1. Vérifiez votre identifiant de compte. Vous avez besoin de cette valeur pour créer votre application.

  2. Créez le rôle arn:aws:iam::AccountID:role/ZeppelinRole et ajoutez les autorisations suivantes au rôle créé automatiquement par la console.

    "kinesis:GetShardIterator",

    "kinesis:GetRecords",

    "kinesis:ListShards"

  3. Créez un fichier nommé create.json avec le contenu suivant. Remplacez les valeurs des espaces réservés par vos informations.

    { "ApplicationName": "MyNotebook", "RuntimeEnvironment": "ZEPPELIN-FLINK-3_0", "ApplicationMode": "INTERACTIVE", "ServiceExecutionRole": "arn:aws:iam::AccountID:role/ZeppelinRole", "ApplicationConfiguration": { "ApplicationSnapshotConfiguration": { "SnapshotsEnabled": false }, "ZeppelinApplicationConfiguration": { "CatalogConfiguration": { "GlueDataCatalogConfiguration": { "DatabaseARN": "arn:aws:glue:us-east-1:AccountID:database/default" } } } } }
  4. Pour créer votre application, exécutez la commande suivante.

    aws kinesisanalyticsv2 create-application --cli-input-json file://create.json
  5. Lorsque la commande est terminée, vous voyez une sortie contenant les détails de votre nouveau bloc-notes Studio. Voici un exemple de la sortie.

    { "ApplicationDetail": { "ApplicationARN": "arn:aws:kinesisanalyticsus-east-1:012345678901:application/MyNotebook", "ApplicationName": "MyNotebook", "RuntimeEnvironment": "ZEPPELIN-FLINK-3_0", "ApplicationMode": "INTERACTIVE", "ServiceExecutionRole": "arn:aws:iam::012345678901:role/ZeppelinRole", ...
  6. Pour lancer votre application, exécutez la commande suivante. Remplacez les exemples de valeur par l’identifiant de votre compte.

    aws kinesisanalyticsv2 start-application --application-arn arn:aws:kinesisanalyticsus-east-1:012345678901:application/MyNotebook\

Envoyer des données vers votre flux de données Kinesis

Pour envoyer des données de test vers votre flux de données Kinesis, procédez comme suit :

  1. Utilisez le Kinesis Data Generator.

  2. Choisissez Créer un utilisateur Cognito avec. CloudFormation

  3. La AWS CloudFormation console s'ouvre avec le modèle Kinesis Data Generator. Choisissez Suivant.

  4. Sur la page Spécifier les détails de la pile, saisissez le nom d’utilisateur et le mot de passe de votre utilisateur Cognito. Choisissez Suivant.

  5. Sur la page Configurer les options de pile, choisissez Suivant.

  6. Sur la page Review Kinesis-Data-Generator-Cognito-User, choisissez l'option Je reconnais qui pourrait créer des ressources IAM. AWS CloudFormation case à cocher. Sélectionnez Créer une pile.

  7. Attendez la fin de la création de la AWS CloudFormation pile. Une fois la pile terminée, ouvrez la pile Kinesis-Data-Generator-Cognito-User dans la console et choisissez l'onglet Sorties. AWS CloudFormation Ouvrez l'URL répertoriée pour la valeur KinesisDataGeneratorUrlde sortie.

  8. Sur la page Amazon Kinesis Data Generator, connectez-vous avec les informations d’identification que vous avez créées à l’étape 4.

  9. Sur la page suivante, renseignez les valeurs suivantes :

    Région us-east-1
    Ruisseau Stream/Firehose ExampleInputStream
    Enregistrements par seconde 1

    Pour Modèle d’enregistrement, collez le code suivant :

    { "ticker": "{{random.arrayElement( ["AMZN","MSFT","GOOG"] )}}", "price": {{random.number( { "min":10, "max":150 } )}} }
  10. Choisissez Envoyer les données.

  11. Le générateur enverra les données à votre flux de données Kinesis.

    Laissez le générateur tourner pendant que vous terminez la section suivante.

Tester votre bloc-notes Studio

Dans cette section, vous utilisez votre bloc-notes Studio pour interroger les données de votre flux de données Kinesis.

  1. Ouvrez la console du service géré pour Apache Flink à l’adresse https://console.aws.amazon.com/managed-flink/home?region=us-east-1#/applications/dashboard.

  2. Sur la page Applications de service géré pour Apache Flink, choisissez l’onglet Bloc-notes Studio. Choisissez MyNotebook.

  3. Sur la MyNotebookpage, choisissez Ouvrir dans Apache Zeppelin.

    L’interface Apache Zeppelin s’ouvre dans un nouvel onglet.

  4. Sur la page Bienvenue sur Zeppelin !, choisissez Note Zeppelin.

  5. Sur la page Note Zeppelin, entrez la requête suivante dans une nouvelle note :

    %flink.ssql(type=update) select * from stock

    Choisissez l’icône d’exécution.

    Après un court instant, la note affiche les données du flux de données Kinesis.

Pour ouvrir le tableau de bord Apache Flink de votre application afin de visualiser les aspects opérationnels, choisissez FLINK JOB. Pour plus d’informations sur le tableau de bord Flink, consultez Tableau de bord Apache Flink dans le guide du développeur du service géré pour Apache Flink.

Pour d’autres exemples de requêtes SQL Flink Streaming, consultez la section Queries de la documentation Apache Flink.