Utilisation de la fonction de découverte de schéma sur des données statiques - Guide du développeur d'Amazon Kinesis Data Analytics SQL pour applications

Pour les nouveaux projets, nous vous recommandons d'utiliser le nouveau service géré pour Apache Flink Studio plutôt que Kinesis Data Analytics SQL for Applications. 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.

Utilisation de la fonction de découverte de schéma sur des données statiques

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 .

La fonction de découverte de schéma peut générer un schéma à partir des données dans un flux ou des données dans un fichier statique qui est stocké dans un compartiment Amazon S3. Supposons que vous souhaitez générer un schéma pour une application Kinesis Data Analytics à des fins de référence ou lorsque des données de streaming ne sont pas disponibles. Vous pouvez utiliser la fonction de découverte de schéma sur un fichier statique qui contient un échantillon de données au format attendu de vos données de diffusion ou de référence. Kinesis Data Analytics peut exécuter une découverte de schéma sur des exemples de données provenant d’un fichier JSON ou CSV stocké dans un compartiment Amazon S3. L'utilisation de la découverte de schéma sur un fichier de données fait appel soit à la console, soit à l'API DiscoverInputSchema avec le paramètre S3Configuration spécifié.

Exécution de la découverte de schéma à l'aide de la console

Pour exécuter la découverte sur un fichier statique à l'aide de la console, procédez comme suit :

  1. Ajoutez un objet de données de référence à un compartiment S3.

  2. Choisissez Connecter des données de référence dans la page principale de l’application dans la console Kinesis Data Analytics.

  3. Fournissez les données relatives au compartiment, au chemin d’accès et au rôle IAM pour pouvoir accéder à l’objet Amazon S3 contenant les données de référence.

  4. Choisissez Discover schema (Découvrir le schéma).

Pour plus d'informations sur l'ajout des données de référence et la découverte du schéma dans la console, consultez Exemple : ajout de données de référence à une application Kinesis Data Analytics.

Exécution de la découverte de schéma à l'aide de l'API

Pour exécuter la découverte sur un fichier statique à l'aide de l'API, vous devez fournir l'API avec une structure S3Configuration à l'aide des informations suivantes :

Pour générer un schéma à partir d’un objet Amazon S3 à l’aide de l’API DiscoverInputSchema
  1. Assurez-vous que vous disposez de la AWS CLI configuration requise. Pour plus d'informations, consultez Étape 2 : configurer le AWS Command Line Interface (AWS CLI) dans la section Mise en route.

  2. Créez un fichier nommé data.csv avec le contenu suivant :

    year,month,state,producer_type,energy_source,units,consumption 2001,1,AK,TotalElectricPowerIndustry,Coal,ShortTons,47615 2001,1,AK,ElectricGeneratorsElectricUtilities,Coal,ShortTons,16535 2001,1,AK,CombinedHeatandPowerElectricPower,Coal,ShortTons,22890 2001,1,AL,TotalElectricPowerIndustry,Coal,ShortTons,3020601 2001,1,AL,ElectricGeneratorsElectricUtilities,Coal,ShortTons,2987681
  3. Connectez-vous à la console Amazon S3 à l’adresse https://console.aws.amazon.com/s3/.

  4. Créez un compartiment Amazon S3 et chargez le fichier data.csv que vous avez créé. Notez l'ARN du compartiment créé. Pour plus d’informations sur la création d’un compartiment Amazon S3 et le chargement d’un fichier, consultez Démarrez avec Amazon Simple Storage Service.

  5. Ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/. Créez un rôle avec la stratégie AmazonS3ReadOnlyAccess. Notez l'ARN du nouveau rôle. Pour plus d’informations sur la création d’un rôle, consultez Création d’un rôle pour déléguer des autorisations à un service Amazon. Pour plus d'informations sur comment ajouter une stratégie à un rôle, consultez Modification d'un rôle.

  6. Exécutez la DiscoverInputSchema commande suivante dans le AWS CLI, en remplaçant les ARN par votre compartiment Amazon S3 et votre rôle IAM :

    $aws kinesisanalytics discover-input-schema --s3-configuration '{ "RoleARN": "arn:aws:iam::123456789012:role/service-role/your-IAM-role", "BucketARN": "arn:aws:s3:::your-bucket-name", "FileKey": "data.csv" }'
  7. La réponse ressemble à ce qui suit :

    { "InputSchema": { "RecordEncoding": "UTF-8", "RecordColumns": [ { "SqlType": "INTEGER", "Name": "COL_year" }, { "SqlType": "INTEGER", "Name": "COL_month" }, { "SqlType": "VARCHAR(4)", "Name": "state" }, { "SqlType": "VARCHAR(64)", "Name": "producer_type" }, { "SqlType": "VARCHAR(4)", "Name": "energy_source" }, { "SqlType": "VARCHAR(16)", "Name": "units" }, { "SqlType": "INTEGER", "Name": "consumption" } ], "RecordFormat": { "RecordFormatType": "CSV", "MappingParameters": { "CSVMappingParameters": { "RecordRowDelimiter": "\r\n", "RecordColumnDelimiter": "," } } } }, "RawInputRecords": [ "year,month,state,producer_type,energy_source,units,consumption\r\n2001,1,AK,TotalElectricPowerIndustry,Coal,ShortTons,47615\r\n2001,1,AK,ElectricGeneratorsElectricUtilities,Coal,ShortTons,16535\r\n2001,1,AK,CombinedHeatandPowerElectricPower,Coal,ShortTons,22890\r\n2001,1,AL,TotalElectricPowerIndustry,Coal,ShortTons,3020601\r\n2001,1,AL,ElectricGeneratorsElectricUtilities,Coal,ShortTons,2987681" ], "ParsedInputRecords": [ [ null, null, "state", "producer_type", "energy_source", "units", null ], [ "2001", "1", "AK", "TotalElectricPowerIndustry", "Coal", "ShortTons", "47615" ], [ "2001", "1", "AK", "ElectricGeneratorsElectricUtilities", "Coal", "ShortTons", "16535" ], [ "2001", "1", "AK", "CombinedHeatandPowerElectricPower", "Coal", "ShortTons", "22890" ], [ "2001", "1", "AL", "TotalElectricPowerIndustry", "Coal", "ShortTons", "3020601" ], [ "2001", "1", "AL", "ElectricGeneratorsElectricUtilities", "Coal", "ShortTons", "2987681" ] ] }