Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Filtro e recupero dei dati tramite Amazon S3 Select

Con Amazon S3 Select è possibile utilizzare un linguaggio di query strutturata (SQL) per filtrare i contenuti di oggetti Amazon S3 e recuperare solo il sottoinsieme di dati necessario. Utilizzando Amazon S3 Select per filtrare questi dati, è possibile ridurre la quantità di dati trasferiti da Amazon S3, riducendo il costo e la latenza di recupero dei dati.

Amazon S3 Select consente di eseguire query su un solo oggetto alla volta. Funziona su un oggetto archiviato in formato CSV, JSON o. Apache Parquet Funziona anche con un oggetto compresso con GZIP o BZIP2 (solo per oggetti CSV e JSON) e un oggetto crittografato lato server. Puoi specificare il formato dei risultati come CSV o JSON e determinare la modalità di delimitazione dei record nel risultato.

Passi espressioni SQL ad Amazon S3 nella richiesta. Amazon S3 Select supporta un sottoinsieme di SQL. Per ulteriori informazioni sugli elementi SQL supportati da Amazon S3 Select, consulta Documentazione di riferimento su SQL per Amazon S3 Select.

Puoi eseguire query SQL utilizzando la console Amazon S3, il AWS CLI(), AWS Command Line Interface l'operazione API REST o SelectObjectContent AWS gli SDK.

Nota

La console di Amazon S3 limita la quantità di dati restituiti a 40 MB. Per recuperare più dati, usa l'o l' AWS CLI API.

Requisiti e limiti

Di seguito vengono riportati i requisiti per l'utilizzo di Amazon S3 Select:

  • Devi disporre delle autorizzazioni s3:GetObject per l'oggetto su esegui la query.

  • Se l'oggetto su cui esegui la query è crittografato con una chiave di crittografia lato server fornita dal cliente (SSE-C), devi utilizzare https e fornire la chiave di crittografia nella richiesta.

Per l'utilizzo di Amazon S3 Select si applicano i seguenti limiti:

  • S3 Select può interrogare solo un oggetto per richiesta.

  • La lunghezza massima di un'espressione SQL è di 256 KB.

  • La lunghezza massima di un record nell'input o nel risultato è di 1 MB.

  • Amazon S3 Select può emettere solo dati nidificati utilizzando il formato di output JSON.

  • Non è possibile interrogare un oggetto archiviato nelle classi di storage S3 Glacier Flexible Retrieval, S3 Glacier Deep Archive o Reduced Redundancy Storage (RRS). Inoltre, non è possibile interrogare un oggetto archiviato nel livello S3 Intelligent-Tiering Archive Access o nel livello S3 Intelligent-Tiering Deep Archive Access. Per ulteriori informazioni sulle classi di storage, consulta Utilizzo delle classi di storage di Amazon S3.

Si applicano limitazioni aggiuntive quando si utilizza Amazon S3 Select con un Parquet oggetto:

  • Amazon S3 Select supporta solo la compressione a colonne con GZIP o Snappy. Amazon S3 Select non supporta la compressione dell'intero oggetto per un oggetto. Parquet

  • Amazon S3 Select non supporta l'output Parquet. È necessario specificare il formato di output, ad esempio CSV o JSON.

  • La dimensione massima del gruppo di righe non compresso è 256 MB.

  • È necessario utilizzare i tipi di dati specificati nello schema dell'oggetto.

  • Se si seleziona un campo ripetuto, viene restituito solo l'ultimo valore.

Costruzione di una richiesta

Quando costruisci una richiesta, devi fornire i dettagli dell'oggetto su cui si sta eseguendo la query utilizzando un oggetto InputSerialization. Fornisci i dettagli del modo in cui i risultati vengono restituiti utilizzando un oggetto OutputSerialization. Includi anche l'espressione SQL utilizzata da Amazon S3 per filtrare la richiesta.

Per ulteriori informazioni sulla creazione di una richiesta Amazon S3 Select, consulta  SelectObjectContent nella Documentazione di riferimento delle API di Amazon Simple Storage Service. Uno degli esempi di codice SDK è anche disponibile nelle seguenti sezioni.

Richieste che utilizzano intervalli di scansione

Amazon S3 Select consente di eseguire la scansione di un sottoinsieme di un oggetto specificando un intervallo di byte su cui eseguire la query. Ciò consente di parallelizzare la scansione dell'intero oggetto dividendo il lavoro tra due richieste Amazon S3 Select separate per una serie di intervalli di scansione senza sovrapposizione.

Gli intervalli di scansione non devono essere allineati con i limiti di record. Una richiesta Amazon S3 Select di intervallo di scansione viene eseguita nell'intervallo di byte specificato. Un record che inizia nell'intervallo di scansione specificato ma che si estende oltre verrà elaborato dalla query. Ad esempio, di seguito viene mostrato un oggetto Amazon S3 contenente una serie di record in formato CSV delimitato da righe:

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

Viene utilizzato il parametro ScanRange di Amazon S3 Select e Start a (Byte) 1 ed End a (Byte) 4. Pertanto, l'intervallo di scansione inizia a "," e la scansione verrà eseguita fino alla fine del record che inizia a C. La richiesta dell'intervallo di scansione restituirà il risultato C, D perché questa è la fine del record.

L'intervallo di scansione di Amazon S3 Select richiede supportoParquet, file CSV (senza delimitatori tra virgolette) o oggetti JSON (solo in modalità). LINES Gli oggetti CSV e JSON non devono essere compressi. Per gli oggetti CSV e JSON basati su righe, quando viene specificato un intervallo di scansione come parte della richiesta Amazon S3 Select, vengono elaborati tutti i record che iniziano nell'intervallo di scansione. Per gli oggetti Parquet, vengono elaborati tutti i gruppi di righe che iniziano all'interno dell'intervallo di scansione richiesto.

Le richieste dell'intervallo di scansione di Amazon S3 Select possono essere utilizzate con l' AWS CLI API Amazon S3 e gli SDK. AWS Per questa caratteristica, è possibile utilizzare il parametro ScanRange nella richiesta Amazon S3 Select. Per ulteriori informazioni, consulta SelectObjectContent in Amazon Simple Storage Service API Reference (Guida di riferimento per l'API di Amazon Simple Storage Service).

Errori

Amazon S3 Select restituisce un codice di errore e un messaggio di errore associato quando si verifica un problema durante il tentativo di esecuzione di una query. Per un elenco di codici di errore e descrizioni, consulta la sezione relativa all'elenco dei codici di errore relativo al contenuto dell'oggetto SELECT nella pagina delle risposte agli errori nella Documentazione di riferimento delle API di Amazon Simple Storage Service.

Per maggiori informazioni su Amazon S3 Select, consulta gli argomenti seguenti: