Après mûre réflexion, nous avons décidé de mettre fin à Amazon Kinesis Data Analytics pour les applications SQL en deux étapes :
1. À compter du 15 octobre 2025, vous ne pourrez plus créer de nouvelles applications Kinesis Data Analytics for SQL.
2. Nous supprimerons vos candidatures à compter du 27 janvier 2026. Vous ne pourrez ni démarrer ni 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.
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.
Mappage d'éléments d'une source de streaming à des colonnes d'entrée SQL
Note
Après le 12 septembre 2023, vous ne pourrez plus créer de nouvelles applications en utilisant Kinesis Data Firehose comme source si vous n’utilisez pas déjà Kinesis Data Analytics pour SQL. Pour plus d’informations, consultez Limites .
Avec Amazon Kinesis Data Analytics, vous pouvez traiter et analyser des données de streaming au format JSON ou CSV à l’aide du langage SQL standard.
-
Pour traiter et analyser des données de streaming au format CSV, vous devez attribuer des noms de colonne et des types de données aux colonnes du flux d'entrée. Votre application importe une colonne du flux d'entrée par définition de colonne, dans l'ordre.
Vous n'avez pas besoin d'inclure toutes les colonnes du flux d'entrée de l'application, mais vous ne pouvez pas ignorer les colonnes du flux source. Par exemple, vous pouvez importer les trois premières colonnes d'un flux d'entrée contenant cinq éléments, mais vous ne pouvez pas importer uniquement les colonnes 1, 2 et 4.
-
Pour traiter et analyser des données JSON en streaming, vous utilisez des JSONPath expressions pour mapper les éléments JSON d'une source de streaming aux colonnes SQL d'un flux d'entrée. Pour plus d'informations sur l'utilisation JSONPath d'Amazon Kinesis Data Analytics, Travailler avec JSONPath consultez. Les colonnes de la table SQL possèdent des types de données qui sont mappées à partir de types JSON. Pour connaître les types de données pris en charge, consultez Types de données. Pour plus d'informations sur la conversion des données JSON en données SQL, consultez Mappage de types de données JSON à des types de données SQL.
Pour plus d’informations sur la configuration des flux d’entrée, consultez Configuration de l'entrée de l'application.
Mappage de données JSON à des colonnes SQL
Vous pouvez mapper des éléments JSON à des colonnes d'entrée à l'aide de l'API AWS Management Console ou de l'API Kinesis Data Analytics.
-
Pour mapper des éléments à des colonnes à l'aide de la console, consultez Utilisation de l'éditeur de schéma.
-
Pour mapper des éléments à des colonnes à l’aide de l’API Kinesis Data Analytics, reportez-vous à la section suivante.
Pour mapper des éléments JSON à des colonnes du flux d'entrée intégré à l'application, vous avez besoin d'un schéma avec les informations suivantes pour chaque colonne :
-
Expression source : JSONPath expression qui identifie l'emplacement des données de la colonne.
-
Nom de la colonne : Nom que vos requêtes SQL utilisent pour référencer les données.
-
Type de données : Type de données SQL de la colonne.
Utilisation de l’API
Pour mapper des éléments d’une source de streaming à des colonnes d’entrée, vous pouvez utiliser l’action CreateApplication de l’API Kinesis Data Analytics. Pour créer le flux intégré à l'application, spécifiez un schéma pour transformer vos données en une version schématisée utilisée dans SQL. L'action CreateApplication configure votre application pour qu'elle reçoive des entrées d'une source de streaming. Pour mapper des éléments JSON ou des colonnes CSV à des colonnes SQL, vous créez un objet RecordColumn dans le tableau SourceSchema RecordColumns
. L'objet RecordColumn présente le schéma suivant:
{ "Mapping": "String", "Name": "String", "SqlType": "String" }
Les champs de l'objet RecordColumn possèdent les valeurs suivantes :
-
Mapping
: JSONPath expression qui identifie l'emplacement des données dans l'enregistrement du flux d'entrée. Cette valeur n'est pas disponible pour le schéma d'entrée d'un flux source au format CSV. -
Name
: Nom de la colonne dans le flux de données SQL intégré à l'application. -
SqlType
: Type des données du flux de données SQL intégré à l'application.
Exemple de schéma d'entrée JSON
L'exemple suivant présente le format de la valeur InputSchema
pour un schéma JSON.
"InputSchema": { "RecordColumns": [ { "SqlType": "VARCHAR(4)", "Name": "TICKER_SYMBOL", "Mapping": "$.TICKER_SYMBOL" }, { "SqlType": "VARCHAR(16)", "Name": "SECTOR", "Mapping": "$.SECTOR" }, { "SqlType": "TINYINT", "Name": "CHANGE", "Mapping": "$.CHANGE" }, { "SqlType": "DECIMAL(5,2)", "Name": "PRICE", "Mapping": "$.PRICE" } ], "RecordFormat": { "MappingParameters": { "JSONMappingParameters": { "RecordRowPath": "$" } }, "RecordFormatType": "JSON" }, "RecordEncoding": "UTF-8" }
Exemple de schéma d'entrée CSV
L'exemple suivant présente le format de la valeur InputSchema
pour un schéma CSV.
"InputSchema": { "RecordColumns": [ { "SqlType": "VARCHAR(16)", "Name": "LastName" }, { "SqlType": "VARCHAR(16)", "Name": "FirstName" }, { "SqlType": "INTEGER", "Name": "CustomerId" } ], "RecordFormat": { "MappingParameters": { "CSVMappingParameters": { "RecordColumnDelimiter": ",", "RecordRowDelimiter": "\n" } }, "RecordFormatType": "CSV" }, "RecordEncoding": "UTF-8" }
Mappage de types de données JSON à des types de données SQL
Les types de données JSON sont convertis en types de données SQL correspondants selon le schéma d'entrée de l'application. Pour plus d’informations sur les types de données SQL pris en charge, consultez Types de données. Amazon Kinesis Data Analytics convertit les types de données JSON en types de données SQL selon les règles suivantes.
Littéral null
Un littéral null dans le flux d'entrée JSON (c'est-à-dire "City":null
) est converti en null SQL, quel que soit le type de données de destination.
Littéral booléen
Un littéral booléen dans le flux d'entrée JSON (c'est-à-dire "Contacted":true
) est converti en données SQL comme suit :
-
Numérique (DECIMAL, INT, etc.) :
true
est converti en 1 ;false
est converti en 0. -
Binaire (BINARY ou VARBINARY) :
-
true
: Le résultat possède l'ensemble de bits le plus faible, les autres bits sont effacés. -
false
: Tous les bits sont effacés.
La conversion en données VARBINARY génère une valeur de 1 octet de longueur.
-
-
BOOLEEN : Conversion dans la valeur BOOLEENNE SQL correspondante.
-
Caractère (CHAR ou VARCHAR) : Conversion dans la valeur de chaîne correspondante (
true
oufalse
). La valeur est tronquée pour s'adapter à la longueur du champ. -
Date/heure (DATE, TIME ou TIMESTAMP) : La conversion échoue et une erreur de forçage de type est écrite dans le flux d'erreurs.
Nombre
Un littéral numérique dans le flux d'entrée JSON (c'est-à-dire "CustomerId":67321
) est converti en données SQL comme suit :
-
Numérique (DECIMAL, INT, etc.) : Conversion directe. Si la valeur convertie dépasse la taille ou la précision du type de données cible (c'est-à-dire, conversion de
123.4
en INT), la conversion échoue et une erreur de forçage du type est écrite dans le flux d'erreurs. -
Binaire (BINARY or VARBINARY) : La conversion échoue et une erreur de forçage du type est écrite dans le flux d'erreurs.
-
BOOLEAN:
-
0
: Conversionfalse
. -
Tous les autres nombres : Conversion en
true
.
-
-
Caractère (CHAR ou VARCHAR) : Conversion en une représentation de chaîne du nombre.
-
Date/heure (DATE, TIME ou TIMESTAMP) : La conversion échoue et une erreur de forçage de type est écrite dans le flux d'erreurs.
Chaîne
Une valeur de chaîne dans le flux d'entrée JSON (c'est-à-dire "CustomerName":"John
Doe"
) est convertie en données SQL comme suit :
-
Numérique (DECIMAL, INT, etc.) : Amazon Kinesis Data Analytics tente de convertir la valeur dans le type de données cible. Si la valeur ne peut être convertie, la conversion échoue et une erreur de forçage du type est écrite dans le flux d'erreurs.
-
Binaire (BINARY ou VARBINARY) : Si la chaîne source est un littéral binaire valide (c'est-à-dire
X'3F67A23A'
, avec un nombre pair de f), la valeur est convertie dans le type de données cible. Dans le cas contraire, la conversion échoue et une erreur de forçage du type est écrite dans le flux d'erreurs. -
BOOLEEN : Si la chaîne source est
"true"
, conversion entrue
. Cette comparaison n'est pas sensible à la casse. Sinon, conversion enfalse
. -
Caractère (CHAR ou VARCHAR) : Conversion dans la valeur de chaîne de l'entrée. Si la valeur est plus longue que le type de données cible, elle est tronquée et aucune erreur n'est écrite dans le flux d'erreurs.
-
Date/heure (DATE, TIME ou TIMESTAMP) : Si la chaîne source est dans un format convertible dans la valeur cible, la valeur est convertie. Dans le cas contraire, la conversion échoue et une erreur de forçage du type est écrite dans le flux d'erreurs.
Les formats de date et d'heure sont les suivants :
-
"1992-02-14"
-
"1992-02-14 18:35:44.0"
-
Tableau ou objet
Un tableau ou un objet dans le flux d'entrée JSON est converti en données SQL comme suit :
-
Caractère (CHAR ou VARCHAR) : Convertit en texte source du tableau ou de l'objet. Consultez Accès aux tableaux.
-
Tous les autres types de données : La conversion échoue et une erreur de forçage du type est écrite dans le flux d'erreurs.
Pour voir un exemple de tableau JSON, consultez Travailler avec JSONPath.