File di dati per le query in Amazon Redshift Spectrum - Amazon Redshift

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

File di dati per le query in Amazon Redshift Spectrum

Questa sezione descrive come creare file di dati in Amazon S3 in un formato supportato da Redshift Spectrum.

I file di dati utilizzati per le query in Amazon Redshift Spectrum sono in genere gli stessi tipi di file utilizzati per altre applicazioni. Ad esempio, gli stessi tipi di file vengono utilizzati con Amazon AthenaEMR, Amazon e Amazon. QuickSight È possibile eseguire query sui dati nel loro formato originale direttamente da Amazon S3. Per farlo, i file di dati devono avere un formato supportato da Redshift Spectrum e trovarsi in un bucket Amazon S3 accessibile da parte del cluster.

Il bucket Amazon S3 con i file di dati e il cluster Amazon Redshift devono trovarsi nella stessa regione. AWS Per informazioni sulle AWS regioni supportate, consulta. Regioni di Amazon Redshift Spectrum

Formati di dati per Redshift Spectrum

Redshift Spectrum supporta i seguenti formati di dati strutturati e semi-strutturati:

Formato del file Colonna Supporta letture parallele Unità divisa
Parquet Gruppo di righe
ORC Stripe
RCFile Gruppo di righe
TextFile No Riga
SequenceFile No Riga o blocco
RegexSerde No Riga
Aprire CSV No Riga
AVRO No Blocco
Ion No No N/D
JSON No No N/D

Nella tabella precedente, i titoli indicano quanto segue:

  • Colonna: se il formato del file memorizza fisicamente i dati in una struttura orientata alle colonne anziché in una struttura orientata alle righe.

  • Supporta letture parallele: se il formato di file supporta la lettura di singoli blocchi all'interno del file. La lettura di singoli blocchi consente l'elaborazione distribuita di un file su più richieste Redshift Spectrum indipendenti invece di dover leggere il file completo in una singola richiesta.

  • Unità di divisione: per i formati di file che possono essere letti in parallelo, l'unità di divisione è il più piccolo blocco di dati che una singola richiesta Redshift Spectrum può elaborare.

    Nota

    I valori di timestamp nei file di testo devono essere nel formato yyyy-MM-dd HH:mm:ss.SSSSSS, come il seguente valore di timestamp 2017-05-01 11:30:59.000000.

    Consigliamo di utilizzare un formato di file di storage a colonne come Apache Parquet. Con un formato di questo tipo, è possibile ridurre al minimo il trasferimento di dati al di fuori di Amazon S3 selezionando solo le colonne necessarie.

Tipi di compressione per Redshift Spectrum

Per ridurre lo spazio di archiviazione, migliorare le prestazioni e ridurre i costi, consigliamo vivamente di comprimere i file di dati. Redshift Spectrum riconosce i tipi di compressione in funzione dell'estensione dei file.

Redshift Spectrum supporta i seguenti tipi di compressione ed estensioni:

Algoritmo di compressione Estensione di file Supporta letture parallele
Gzip .gz No
Bzip2 .bz2
Snappy .snappy No

Puoi applicare la compressione a diversi livelli. Più comunemente, comprimi un intero file o comprimi singoli blocchi all'interno di un file. La compressione dei formati colonnari a livello di file non comporta vantaggi in termini di prestazioni.

Affinché Redshift Spectrum possa leggere un file in parallelo, deve essere vero quanto segue:

  • Il formato di file supporta le letture parallele.

  • La compressione a livello di file, se presente, supporta le letture parallele.

Non importa se le singole unità di divisione all'interno di un file vengono compresse utilizzando un algoritmo di compressione che può essere letto in parallelo, perché ogni unità divise viene elaborata da una singola richiesta Redshift Spectrum. Un esempio di questo sono i file Parquet compressi con Snappy. I singoli gruppi di righe all'interno del file Parquet vengono compressi utilizzando Snappy, ma la struttura di livello superiore del file rimane decompressa. In questo caso, il file può essere letto in parallelo perché ogni richiesta Redshift Spectrum può leggere ed elaborare singoli gruppi di righe da Amazon S3.

Crittografia per Redshift Spectrum

Redshift Spectrum decrittografa in modo trasparente i file di dati crittografati utilizzando le seguenti opzioni di crittografia:

  • Crittografia lato server (SSE-S3) utilizzando una chiave di crittografia AES -256 gestita da Amazon S3.

  • Crittografia lato server con chiavi gestite da (-). AWS Key Management Service SSE KMS

Redshift Spectrum non supporta la crittografia lato client di Amazon S3. Per ulteriori informazioni sulla crittografia lato server, consultare Protezione dei dati con la crittografia lato server nella Guida per l'utente di Amazon Simple Storage Service.

Amazon Redshift utilizza l'elaborazione parallela di massa MPP () per eseguire rapidamente query complesse che operano su grandi quantità di dati. Redshift Spectrum applica lo stesso principio per eseguire le query di dati esterni, utilizzando molteplici istanze di Redshift Spectrum per eseguire la scansione di file. Inserisci i file in una cartella distinta per ogni tabella.

Puoi ottimizzare i dati per l'elaborazione parallela procedendo come segue:

  • Se il formato di file o la compressione non supporta la lettura in parallelo, fraziona file di grandi dimensioni in molti file più piccoli. Ti consigliamo di utilizzare file di dimensioni comprese tra 64 MB e 1 GB.

  • Fai in modo che tutti i file siano all'incirca della stessa dimensione. Se alcuni file sono più grandi di altri, Redshift Spectrum non può distribuire il carico di lavoro in modo uniforme.