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 : ajout de données de référence à une application Kinesis Data Analytics
Dans cet exercice, vous allez ajouter des données de référence à une application Kinesis Data Analytics existante. Pour plus d'informations sur les données de référence, consultez le rubrique suivante :
Dans cet exercice, vous allez ajouter des données de référence à l’application que vous avez créée dans l’exercice de mise en route de Kinesis Data Analytics. Les données de référence fournissent le nom de la société pour chaque symbole boursier, par exemple :
Ticker, Company AMZN,Amazon ASD, SomeCompanyA MMB, SomeCompanyB WAS, SomeCompanyC
Suivez d'abord les étapes de l'exercice de mise en route pour créer une application de démarrage. Puis suivez ces étapes pour configurer et ajouter des données de référence à votre application :
-
Préparation des données
-
Stockez les données de référence précédentes sous forme d’objet dans Amazon Simple Storage Service (Amazon S3).
-
Créez un rôle IAM pouvant être assumé par Kinesis Data Analytics pour lire l’objet Amazon S3 en votre nom.
-
-
Ajoutez la source des données de référence à votre application.
Kinesis Data Analytics lit l’objet Amazon S3 et crée une table de référence intégrée à l’application que vous pouvez interroger dans votre code d’application.
-
Testez le code.
Dans votre code d'application, vous allez écrire une requête de jointure pour joindre le flux intégré à l'application à la table de référence intégrée à l'application afin d'obtenir le nom de la société pour chaque symbole boursier.
Rubriques
Étape 1 : Préparation
Dans cette section, vous stockez des exemples de données de référence en tant qu’objet dans un compartiment Amazon S3. Vous créez également un rôle IAM pouvant être assumé par Kinesis Data Analytics pour lire l’objet en votre nom.
Stockage des données de référence en tant qu’objet Amazon S3
Dans cette étape, vous stockez les exemples de données de référence en tant qu’objet Amazon S3.
-
Ouvrez un éditeur de texte, ajoutez les données suivantes et enregistrez le fichier sous le nom
TickerReference.csv
.Ticker, Company AMZN,Amazon ASD, SomeCompanyA MMB, SomeCompanyB WAS, SomeCompanyC
-
Chargez le fichier
TickerReference.csv
dans votre compartiment S3. Pour en savoir plus, consultez Téléchargement d’objets dans Amazon S3 dans le Guide de l’utilisateur Amazon Simple Storage Service.
Créer un rôle IAM
Créez ensuite un rôle IAM que Kinesis Data Analytics peut assumer et lisez l’objet Amazon S3.
-
Dans AWS Identity and Access Management (IAM), créez un rôle IAM nommé
KinesisAnalytics-ReadS3Object
. Pour créer le rôle, suivez les instructions de Création d’un rôle pour déléguer des autorisations à un service Amazon (AWS Management Console) dans le Guide de l’utilisateur IAM.Dans la console IAM, spécifiez les valeurs suivantes :
-
Dans Sélectionner le type de rôle, choisissez AWS Lambda. Après avoir créé le rôle, vous allez modifier la stratégie d’approbation pour autoriser Kinesis Data Analytics (pas AWS Lambda) à assumer le rôle.
-
N'attachez pas de stratégie sur la page Attach Policy.
-
-
Mettez à jour les stratégies de rôle IAM :
-
Dans la console IAM, choisissez le rôle que vous avez créé.
-
Dans l’onglet Relations d’approbation, mettez à jour la stratégie d’approbation pour accorder à Kinesis Data Analytics des autorisations pour assumer le rôle. La stratégie d'approbation est présentée ci-après :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "kinesisanalytics.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
Dans l’onglet Autorisations, attachez une stratégie gérée par Amazon appelée AmazonS3ReadOnlyAccess. Vous accordez ainsi au rôle les autorisations pour lire un objet Amazon S3. Cette stratégie est présentée ci-après :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": "*" } ] }
-
Étape 2 : Ajout de la source de données de référence à la configuration d'application
Dans cette étape, vous ajoutez une source de données de référence à la configuration de votre application. Pour commencer, vous avez besoin des informations suivantes :
-
Le nom de votre compartiment S3 et le nom de la clé d'objet
-
L’Amazon Resource Name (ARN) du rôle IAM
Dans la page principale de l'application, choisissez Connect reference data (Connecter des données de référence).
Sur la page Connecter une source de données de référence, choisissez le compartiment Amazon S3 contenant vos objets de données de référence, puis saisissez le nom de clé de l’objet.
Saisissez
CompanyName
comme nom du tableau de référence intégré à l'application.Dans la section Access to chosen resources (Accéder aux ressources sélectionnées), choisissez Choose from IAM roles that Kinesis Analytics can assume (Choisir depuis des rôles IAM que les analyses Kinesis peuvent prendre en charge) et sélectionnez le rôle IAM KinesisAnalytics-ReadS3Object que vous avez créé dans la section précédente.
Choisissez Discover schema (Découvrir le schéma). La console détecte deux colonnes dans les données de référence.
Choisissez Enregistrer et fermer.
Étape 3 : Test : Interrogation de la table de référence intégrée à l'application
Vous pouvez maintenant interroger la table de référence intégrée à l'application, CompanyName
. Vous pouvez utiliser les informations de référence pour enrichir votre application en joignant les données de prix des actions à la table de référence. Le résultat indique le nom de l'entreprise.
-
Remplacez le code de votre application par ce qui suit. La requête joint le flux d'entrée intégré à l'application à la table de référence intégrée à l'application. Le code d'application écrit les résultats dans un autre flux intégré à l'application,
DESTINATION_SQL_STREAM
.CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (ticker_symbol VARCHAR(4), "Company" varchar(20), sector VARCHAR(12), change DOUBLE, price DOUBLE); CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM" SELECT STREAM ticker_symbol, "c"."Company", sector, change, price FROM "SOURCE_SQL_STREAM_001" LEFT JOIN "CompanyName" as "c" ON "SOURCE_SQL_STREAM_001".ticker_symbol = "c"."Ticker";
-
Vérifiez que la sortie de l'application s'affiche dans l'onglet SQLResults. Assurez-vous que certaines des lignes affichent des noms de société (vos exemples de données de référence n'ont pas tous les noms de société).