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à.
Interrogazione dei dati in loco con Amazon S3 Select
Importante
Amazon S3 Select non è più disponibile per i nuovi clienti. I clienti esistenti di Amazon S3 Select possono continuare a utilizzare la funzionalità come di consueto. Ulteriori informazioni
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 interrogare un solo oggetto alla volta. Funziona su un oggetto memorizzato 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.
È possibile eseguire query SQL utilizzando la console Amazon S3, AWS Command Line Interface il AWS CLI(), l'operazione API REST o SelectObjectContent
il. AWS SDKs
Nota
La console di Amazon S3 limita la quantità di dati restituiti a 40 MB. Per recuperare più dati, usa AWS CLI o l'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 un solo 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 memorizzato nelle classi di storage Recupero flessibile S3 Glacier, S3 Glacier Deep Archive o Reduced Redundancy Storage (RRS). Non è inoltre possibile interrogare un oggetto memorizzato nel livello S3 Intelligent-Tiering Archive Access o nel livello S3 Intelligent-Tiering Deep Archive Access. Per ulteriori informazioni sulle classi di storage, consulta Comprensione e gestione delle classi di storage Amazon S3.
Ulteriori limitazioni si applicano quando si utilizza Amazon S3 Select con un oggetto Parquet:
-
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.
Le richieste di intervallo di scansione di Amazon S3 Select supportano gli oggetti Parquet, CSV (senza delimitatori quotati) o 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. AWS SDKs 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: