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.

Filtrer et récupérer des données à l'aide d'Amazon S3 Select

Avec Amazon S3 Select, vous pouvez utiliser des instructions de langage de requête structurée (SQL) pour filtrer le contenu d'un objet Amazon S3 afin de récupérer uniquement le sous-ensemble de données dont vous avez besoin. En utilisant Amazon S3 Select pour filtrer ces données, vous pouvez réduire la quantité de données transférées par Amazon S3, ce qui limite le coût et la latence de récupération de ces données.

Amazon S3 Select ne vous permet d'interroger qu'un seul objet à la fois. Il fonctionne sur un objet stocké au format CSV, JSON ou Apache Parquet au format. Il fonctionne également avec un objet compressé avec GZIP ou BZIP2 (pour les objets CSV et JSON uniquement) et un objet chiffré côté serveur. Vous pouvez spécifier les résultats au format CSV ou JSON et vous pouvez décider de la manière dont les enregistrements sont délimités dans le résultat.

Vous transmettez des expression SQL à Amazon S3 dans la demande. Amazon S3 Select prend en charge un sous-ensemble du langage SQL. Pour de plus amples informations sur les éléments SQL pris en charge par Amazon S3 Select, veuillez consulter Référence SQL pour Amazon S3 Select.

Vous pouvez effectuer des requêtes SQL à l'aide de la console Amazon S3, du AWS Command Line Interface (AWS CLI), de l'opération de l'SelectObjectContentAPI REST ou AWS des SDK.

Note

La console Amazon S3 limite la quantité de données renvoyées à 40 Mo. Pour récupérer davantage de données, utilisez l'API AWS CLI ou.

Exigences et limites

Les exigences pour l'utilisation d'Amazon S3 Select sont les suivantes :

  • Vous devez bénéficier d'une autorisation s3:GetObject sur le l'objet que vous interrogez.

  • Si l'objet que vous interrogez est doté d'un chiffrement côté serveur avec des clés fournies par le client (SSE-C), vous devez utiliser https et fournir la clé de chiffrement dans la demande.

Les limites suivantes s'appliquent lors de l'utilisation d'Amazon S3 Select :

  • S3 Select ne peut interroger qu'un seul objet par demande.

  • La longueur maximale d'une expression SQL est de 256 Ko.

  • La longueur maximale d'un enregistrement dans l'entrée ou le résultat est de 1 Mo.

  • Amazon S3 Select peut seulement émettre des données imbriquées à l'aide du format de sortie JSON.

  • Vous ne pouvez pas interroger un objet stocké dans les classes de stockage S3 Glacier Flexible Retrieval, S3 Glacier Deep Archive ou RRS (Reduced Redundancy Storage). Vous ne pouvez pas non plus interroger un objet stocké dans le niveau S3 Intelligent-Tiering Archive Access ou le niveau S3 Intelligent-Tiering Deep Archive Access. Pour plus d’informations sur les classes de stockage, consultez Utilisation des classes de stockage Simple Storage Service (Amazon S3).

Des restrictions supplémentaires s'appliquent lors de l'utilisation d'Amazon S3 Select avec un Parquet objet :

  • Amazon S3 Select prend en charge uniquement la compression en colonnes avec GZIP ou Snappy. Amazon S3 Select ne prend pas en charge la compression de l'objet entier pour un Parquet objet.

  • Amazon S3 Select ne prend pas en charge la sortie Parquet. Vous devez spécifier le format de sortie CSV ou JSON.

  • La taille maximale des groupes de rangées non compressés est de 512 Mo.

  • Vous devez utiliser les types de données spécifiés dans le schéma de l'objet.

  • Une sélection opérée dans un champ répété renvoie uniquement la dernière valeur.

Création d'une demande

Lorsque vous créez une demande, vous fournissez des informations détaillées sur l'objet interrogé à l'aide d'un objet InputSerialization. Vous fournissez des informations détaillées sur la manière dont les résultats doivent être retournés à l'aide d'un objet OutputSerialization. Vous incluez également l'expression SQL qu'Amazon S3 Select utilise pour filtrer la demande.

Pour plus d'informations sur la création d'une demande Amazon S3 Select, consultez SelectObjectContent dans la Référence d'API Amazon Simple Storage Service. Vous pouvez également consulter l'un des exemples de code SDK dans les sections suivantes.

Demandes utilisant des plages d'analyse

Amazon S3 Select vous permet d'analyser un sous-ensemble d'un objet en spécifiant une plage d'octets à interroger. Vous pouvez ainsi paralléliser l'analyse de l'objet entier en divisant la tâche en demandes Amazon S3 Select distinctes pour une série de plages d'analyse qui ne se chevauchent pas.

Les plages d'analyse n'ont pas besoin d'être alignées sur des limites d'enregistrement. Une demande de plage d'analyse Amazon S3 Select s'exécute sur la plage d'octets que vous spécifiez. Un enregistrement qui commence dans la plage d'analyse spécifiée mais qui s'étend au-delà de celle-ci est traité par la requête. Par exemple, la section suivante montre un objet Amazon S3 contenant une série d'enregistrements au format CSV délimité par des lignes :

A,B C,D D,E E,F G,H I,J

Supposons que vous utilisiez le paramètre ScanRange d'Amazon S3 Select avec Début à (l'octet) 1 et Fin à (l'octet) 4. La plage d'analyse commence donc à « , » et l'analyse est exécutée jusqu'à la fin de l'enregistrement, à partir de C. Votre demande de plage d'analyse renverra le résultat C, D car c'est la fin de l'enregistrement.

Amazon S3 Select scan range demande la prise en charge Parquet des objets CSV (sans les séparateurs entre guillemets) ou JSON (en LINES mode uniquement). Les objets CSV et JSON doivent être non compressés. Pour les objets JSON et CSV de type ligne, quand une plage d'analyse est spécifiée dans le cadre d'une demande Amazon S3 Select, tous les enregistrements qui commencent dans la plage d'analyse sont traités. Pour les objets Parquet, tous les groupes de lignes qui commencent dans la plage d'analyse sont traités.

Les demandes de plage de numérisation Amazon S3 Select peuvent être utilisées avec l' AWS CLI API Amazon S3 et AWS les SDK. Vous pouvez utiliser le paramètre ScanRange dans la demande Amazon S3 Select pour cette fonction. Pour plus d'informations, veuillez consulter SelectObjectContent dans la Référence d'API Amazon Simple Storage Service.

Erreurs

Amazon S3 Select renvoie un code d'erreur et un message d'erreur associé en cas de problème lors de la tentative d'exécution d'une requête. Pour obtenir la liste des codes d'erreur et des descriptions, veuillez consulter la section Liste des codes d'erreur SELECT Object Content de la page Réponses d'erreur dans la Référence de l'API Amazon Simple Storage Service.

Pour plus d'informations sur Amazon S3 Select, consultez les rubriques suivantes.