Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

UNLOAD

Modalità Focus
UNLOAD - Amazon Athena

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à.

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à.

Scrive i risultati delle query da un'istruzione SELECT al formato di dati specificato. I formati supportati per UNLOAD includono Apache Parquet, ORC, Apache Avro e JSON. CSV è l'unico formato di output supportato dal comando SELECT Athena, ma è possibile utilizzare UNLOAD il comando, che supporta diversi formati di output, per racchiudere SELECT la query e riscriverne l'output in uno dei formati supportati. UNLOAD

Sebbene sia possibile utilizzare l'istruzione CREATE TABLE AS (CTAS) per generare dati in formati diversi da CSV, le istruzioni CTAS richiedono la creazione di una tabella in Athena. L'UNLOADistruzione è utile quando si desidera restituire i risultati di una SELECT query in un formato non CSV ma non si desidera la tabella associata. Ad esempio, un'applicazione downstream potrebbe richiedere i risultati di una query SELECT in formato JSON, e Parquet o ORC potrebbe fornire un vantaggio in termini di prestazioni rispetto a CSV se si intende utilizzare i risultati della query SELECT per ulteriori analisi.

Considerazioni e limitazioni

Quando utilizzi l'istruzione UNLOAD in Athena, devi considerare quanto segue:

  • Nessun ordine globale dei file – I risultati UNLOAD vengono scritti in più file in parallelo. Se la query SELECT nell'istruzione UNLOAD specifica un ordine, il contenuto di ogni file è in ordine ordinato, ma i file non sono ordinati l'uno rispetto all'altro.

  • Dati orfani non eliminati — In caso di guasto, Athena non tenta di eliminare i dati orfani. Questo comportamento è lo stesso per CTAS e per le istruzioni INSERT INTO.

  • Partizioni massime: Il numero massimo di partizioni che possono essere utilizzate con UNLOAD è 100.

  • File manifest e metadati — Athena genera un file di metadati e un file manifesto di dati per ogni query UNLOAD. Il manifest tiene traccia dei file scritti dalla query. Entrambi i file vengono salvati nella posizione dei risultati della query Athena in Amazon S3. Per ulteriori informazioni, consulta Identifica i file di output delle query.

  • CrittografiaUNLOAD vengono crittografati in base alla configurazione di crittografia utilizzata per Amazon S3. Per configurare la configurazione di crittografia per crittografare i UNLOAD risultati, puoi utilizzare l'API. EncryptionConfiguration

  • Istruzioni preparateUNLOAD può essere utilizzato con istruzioni preparate. Per informazioni sulle istruzioni preparate in Athena, consulta Usa interrogazioni con parametri.

  • Quote di servizio: UNLOAD utilizza le quote di query DML. Per informazioni sulle quote, consulta Service Quotas (Quote di Servizio).

  • Proprietario previsto del bucket: l'impostazione relativa al proprietario previsto del bucket non si applica al percorso del bucket Amazon S3 di destinazione specificato nella query UNLOAD. L'impostazione attesa relativa al proprietario del bucket si applica solo al percorso di output di Amazon S3 specificato per i risultati delle query di Athena. Per ulteriori informazioni, consulta Specificare la posizione dei risultati della query utilizzando la console Athena.

Sintassi

L'istruzione UNLOAD utilizza la sintassi seguente.

UNLOAD (SELECT col_name[, ...] FROM old_table) TO 's3://amzn-s3-demo-bucket/my_folder/' WITH ( property_name = 'expression' [, ...] )

Tranne quando si scrive su partizioni, la TO destinazione deve specificare una posizione in Amazon S3 priva di dati. Prima che la query UNLOAD scrive nella posizione specificata, verifica che la posizione del bucket sia vuota. Poiché UNLOAD non scrive i dati nella posizione specificata se la posizione contiene già dati, UNLOAD non sovrascrive i dati esistenti. Per riutilizzare una posizione bucket come destinazione per UNLOAD, elimina i dati nella posizione del bucket e quindi esegui nuovamente la query.

Tieni presente che quando si UNLOAD scrive su partizioni, questo comportamento è diverso. Se esegui la stessa UNLOAD query più volte con la stessa SELECT istruzione, la stessa TO posizione e le stesse partizioni, ogni UNLOAD query scarica i dati in Amazon S3 nella posizione e nelle partizioni specificate.

Parametri

I valori possibili di property_name sono indicati di seguito.

format = '' file_format

Obbligatorio. Specifica il formato di file dell'output. I valori possibili per file_format sono ORCPARQUET,AVRO,JSON, oTEXTFILE.

compressione = 'compression_format'

Facoltativo. Questa opzione è specifica per i formati ORC e Parquet. Per ORC il valore predefinito è zlib e per Parquet il valore predefinito è gzip. Per informazioni sui formati di compressione supportati, consulta Supporto alla compressione Athena.

Nota

Questa opzione non è valida per il formato AVRO. Athena utilizza gzip per i formati JSON e TEXTFILE.

livello_compressione = compression_level

Facoltativo. Il livello di compressione da utilizzare per la compressione ZSTD. Questa proprietà si applica solo alla compressione ZSTD. Per ulteriori informazioni, consulta Usa i livelli di compressione ZSTD.

field_delimiter = '' delimiter

Facoltativo. Specifica un delimitatore di campo a carattere singolo per file in CSV, TSV e altri formati di testo. L'esempio seguente specifica la virgola come separatore decimale.

WITH (field_delimiter = ',')

Attualmente, i delimitatori di campo multicarattere non sono supportati. Se non si specifica un separatore di campo, viene usato il carattere ottale \001 (^A).

partizionato_da = ARRAY [[,...]] col_name

Facoltativo. Un elenco matrice di colonne in base al quale l'output è partizionato.

Nota

Nell'istruzione SELECT, assicurati che i nomi delle colonne partizionate siano elencati per ultimi nell'elenco delle colonne.

Esempi

L'esempio seguente scrive l'output di una query SELECT per la posizione Amazon S3 s3://amzn-s3-demo-bucket/unload_test_1/ utilizzando il formato JSON.

UNLOAD (SELECT * FROM old_table) TO 's3://amzn-s3-demo-bucket/unload_test_1/' WITH (format = 'JSON')

L'esempio seguente scrive l'output di una query SELECT in formato Parquet utilizzando la compressione Snappy.

UNLOAD (SELECT * FROM old_table) TO 's3://amzn-s3-demo-bucket/' WITH (format = 'PARQUET',compression = 'SNAPPY')

Nell'esempio seguente vengono scritte quattro colonne in formato testo, con l'output partizionato dall'ultima colonna.

UNLOAD (SELECT name1, address1, comment1, key1 FROM table1) TO 's3://amzn-s3-demo-bucket/ partitioned/' WITH (format = 'TEXTFILE', partitioned_by = ARRAY['key1'])

L'esempio seguente scarica i risultati della query nella posizione specificata utilizzando il formato file Parquet, la compressione ZSTD e il livello di compressione ZSTD 4.

UNLOAD (SELECT * FROM old_table) TO 's3://amzn-s3-demo-bucket/' WITH (format = 'PARQUET', compression = 'ZSTD', compression_level = 4)

Risorse aggiuntive

In questa pagina

Argomento successivo:

Funzioni

Argomento precedente:

DEALLOCATE PREPARE
PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.