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.
Interrogation des données sur place avec Amazon S3 Select
Important
Amazon S3 Select n'est plus disponible pour les nouveaux clients. Les clients existants d'Amazon S3 Select peuvent continuer à utiliser cette fonctionnalité comme d'habitude. En savoir plus
Avec Amazon S3 Select, vous pouvez utiliser des instructions de langage de requête structuré (SQL) pour filtrer le contenu d'un objet Amazon S3 et 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é dans CSVJSON, ou Apache Parquet . Il fonctionne également avec un objet compressé avec GZIP ou BZIP2 (pour CSV et uniquement JSON des objets) et un objet chiffré côté serveur. Vous pouvez définir le format des résultats comme suit : CSV ouJSON, et vous pouvez déterminer comment les enregistrements du résultat sont délimités.
Vous transmettez SQL des expressions à Amazon S3 dans la demande. Amazon S3 Select prend en charge un sous-ensemble de. SQL Pour plus d'informations sur les SQL éléments pris en charge par Amazon S3 Select, consultezSQLréférence pour Amazon S3 Select.
Vous pouvez effectuer des SQL requêtes à l'aide de la console Amazon S3, du AWS Command Line Interface (AWS CLI), de l'SelectObjectContent
RESTAPIopération ou du AWS SDKs.
Note
La console Amazon S3 limite la quantité de données renvoyées à 40 Mo. Pour récupérer davantage de données, utilisez le AWS CLI ou leAPI.
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 chiffré par chiffrement côté serveur à l'aide de 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 SQL expression 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 ne peut émettre des données imbriquées qu'en utilisant le format JSON de sortie.
-
Vous ne pouvez pas interroger un objet stocké dans les classes de stockage S3 Glacier Flexible Retrieval, S3 Glacier Deep Archive ou Reduced Redundancy Storage (RRS). 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 Comprendre et gérer les classes de stockage Amazon S3.
Des restrictions supplémentaires s'appliquent lors de l'utilisation d'Amazon S3 Select avec un Parquet objet :
-
Amazon S3 Select prend uniquement en charge la compression en colonnes à l'aide de ou GZIP Snappy. Amazon S3 Select ne prend pas en charge la compression de l'objet entier pour Parquet objet.
-
Amazon S3 Select n'est pas compatible Parquet sortie. Vous devez spécifier le format de sortie sous la forme CSV ouJSON.
-
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'SQLexpression qu'Amazon S3 utilise pour filtrer la demande.
Pour plus d'informations sur la création d'une demande Amazon S3 Select, consultez SelectObjectContentdans le Amazon Simple Storage Service API Reference. Vous pouvez également consulter l'un des exemples de SDK code 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, ce qui suit montre un objet Amazon S3 qui contient une série d'enregistrements dans un format délimité par des lignes CSV :
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 demande de l'assistance pour la plage de numérisation Parquet, CSV (sans séparateurs entre guillemets), ou JSON des objets (en LINES
mode uniquement). CSVet les JSON objets doivent être décompressés. Pour les JSON objets CSV et les lignes, lorsqu'une plage de numérisation est spécifiée dans le cadre de la demande Amazon S3 Select, tous les enregistrements commençant dans la plage de numérisation sont traités. Dans Parquet objets, tous les groupes de lignes commençant dans la plage de numérisation demandée sont traités.
Les demandes de plage de numérisation Amazon S3 Select peuvent être utilisées avec Amazon S3 API et AWS SDKs. AWS CLI Vous pouvez utiliser le paramètre ScanRange
dans la demande Amazon S3 Select pour cette fonction. Pour plus d’informations, consultez .SelectObjectContentdans le Amazon Simple Storage Service API Reference.
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 leurs descriptions, consultez la section Liste des codes d'erreur relatifs au contenu de l'SELECTobjet de la page Réponses aux erreurs du manuel Amazon Simple Storage Service API Reference.
Pour plus d'informations sur Amazon S3 Select, consultez les rubriques suivantes.