

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éer un bloc-notes Studio avec Kinesis Data Streams
<a name="example-notebook-streams"></a>

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

**Topics**
+ [Remplir les conditions préalables](#example-notebook-streams-setup)
+ [Création d'une AWS Glue table](#example-notebook-streams-glue)
+ [Créer un bloc-notes Studio avec Kinesis Data Streams](#example-notebook-streams-create)
+ [Envoyer des données vers votre flux de données Kinesis](#example-notebook-streams-send)
+ [Tester votre bloc-notes Studio](#example-notebook-streams-test)

## Remplir les conditions préalables
<a name="example-notebook-streams-setup"></a>

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](https://docs.aws.amazon.com/kinesis/latest/dev/amazon-kinesis-streams.html) 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
<a name="example-notebook-streams-glue"></a>

Votre bloc-notes Studio utilise une base de données [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) 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/](https://console.aws.amazon.com/glue/).

1. 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**. Sélectionnez **Create** (Créer).

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

1. 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**.

1. 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**.

1. Sur la page **Classification**, choisissez **JSON**. Choisissez **Suivant**.

1. 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 :    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/managed-flink/latest/java/example-notebook-streams.html)

   Choisissez **Suivant**.

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

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

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

1. Choisissez **Appliquer**.

## Créer un bloc-notes Studio avec Kinesis Data Streams
<a name="example-notebook-streams-create"></a>

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

**Topics**
+ [Créez un bloc-notes Studio à l'aide du AWS Management Console](#example-notebook-create-streams-console)
+ [Créez un bloc-notes Studio à l'aide du AWS CLI](#example-notebook-msk-create-api)

### Créez un bloc-notes Studio à l'aide du AWS Management Console
<a name="example-notebook-create-streams-console"></a>

1. Ouvrez le service géré pour la console Apache Flink [ https://console.aws.amazon.com/managed-flink/chez vous ? region=us-east-1\$1/applications/tableau](https://console.aws.amazon.com/managed-flink/home?region=us-east-1#/applications/dashboard) de bord. 

1. 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**.

1. 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**.

1. Sur la **MyNotebook**page, 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
<a name="example-notebook-msk-create-api"></a>

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.

1. 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"`

1. 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"
                   }
               }
           }
       }
   }
   ```

1. Pour créer votre application, exécutez la commande suivante.

   ```
   aws kinesisanalyticsv2 create-application --cli-input-json file://create.json 
   ```

1. 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",
   ...
   ```

1. 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
<a name="example-notebook-streams-send"></a>

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

1. Utilisez le [Kinesis Data Generator](https://awslabs.github.io/amazon-kinesis-data-generator/web/help.html). 

1. Choisissez **Créer un utilisateur Cognito** avec. CloudFormation

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

1. 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**.

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

1. Sur la page **Review Kinesis-Data-Generator-Cognito -User**, sélectionnez l'option **J'accuse réception AWS CloudFormation susceptible de créer des ressources IAM**. case à cocher. Sélectionnez **Créer une pile**.

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

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

1. Sur la page suivante, renseignez les valeurs suivantes :    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/managed-flink/latest/java/example-notebook-streams.html)

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

   ```
   {
       "ticker": "{{random.arrayElement(
           ["AMZN","MSFT","GOOG"]
       )}}",
       "price": {{random.number(
           {
               "min":10,
               "max":150
           }
       )}}
   }
   ```

1. Choisissez **Envoyer les données**.

1. 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
<a name="example-notebook-streams-test"></a>

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

1. Ouvrez le service géré pour la console Apache Flink [ https://console.aws.amazon.com/managed-flink/chez vous ? region=us-east-1\$1/applications/tableau](https://console.aws.amazon.com/managed-flink/home?region=us-east-1#/applications/dashboard) de bord.

1. Sur la page **Applications de service géré pour Apache Flink**, choisissez l’onglet **Bloc-notes Studio**. Sélectionnez **MyNotebook**.

1. Sur la **MyNotebook**page, choisissez **Ouvrir dans Apache Zeppelin**.

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

1. Sur la page **Bienvenue sur Zeppelin \$1**, choisissez **Note Zeppelin**.

1. 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](https://docs.aws.amazon.com/managed-flink/latest/java/how-dashboard.html) dans le [guide du développeur du service géré pour Apache Flink](https://docs.aws.amazon.com/).

Pour d’autres exemples de requêtes SQL Flink Streaming, consultez la section [Queries](https://nightlies.apache.org/flink/flink-docs-release-1.15/dev/table/sql/queries.html) de la documentation [Apache Flink](https://nightlies.apache.org/flink/flink-docs-release-1.15/).