Salta al contenuto

Come posso progettare la codifica delle colonne in Amazon Redshift?

4 minuti di lettura
0

Desidero progettare la codifica delle colonne in Amazon Redshift.

Breve descrizione

Per configurare la codifica delle colonne in Amazon Redshift, utilizza i comandi ENCODE AUTO e ANALYZE COMPRESSION. Per ulteriori informazioni, consulta Codifiche di compressione.

Se applichi la compressione alla colonna della chiave di ordinamento, le prestazioni delle query possono peggiorare perché vengono aggiunte scansioni a blocchi per determinati tipi di query. Se specifichi manualmente i tipi di codifica per una tabella, imposta la codifica RAW per la colonna della chiave di ordinamento.

Per ulteriori informazioni, consulta Best practice di Amazon Redshift per la progettazione di tabelle.

Risoluzione

Utilizza ENCODE AUTO per massimizzare la compressione delle colonne

Utilizza ENCODE AUTO per ottimizzare automaticamente la compressione delle colonne nelle tabelle Amazon Redshift. Per impostazione predefinita, ENCODE AUTO analizza continuamente i modelli di carico di lavoro del cluster per massimizzare le prestazioni delle query e ridurre la necessità di una gestione manuale della compressione.

Se specifichi un tipo di codifica su qualsiasi colonna della tabella, disattivi ENCODE AUTO.

Per verificare se hai attivato ENCODE AUTO per una tabella, utilizza la seguente query:

SELECT "table", encoded FROM svv_table_info WHERE "table" = 'table_name';

Nota: sostituisci table_name con il nome della tua tabella.

Esegui il comando ANALYZE COMPRESSION per esaminare un'analisi della tabella

Per eseguire l'analisi della compressione e produrre un report che suggerisca la codifica di compressione per la tabella, esegui il comando ANALYZE COMPRESSION:

ANALYZE COMPRESSION lineitem;

Nota: sostituisci lineitem con il nome della tua tabella.

Esempio di output:

Table   |     Column      | Encoding | Est_reduction_pct
----------+-----------------+----------+-------------------
 lineitem | l_orderkey      | raw      | 0.00
 lineitem | l_partkey       | az64     | 33.34
 lineitem | l_suppkey       | az64     | 45.46
 lineitem | l_linenumber    | az64     | 87.88
 lineitem | l_quantity      | az64     | 80.00
 lineitem | l_extendedprice | az64     | 60.32
 lineitem | l_discount      | az64     | 90.77
 lineitem | l_tax           | az64     | 90.77
 lineitem | l_returnflag    | zstd     | 80.99
 lineitem | l_linestatus    | zstd     | 86.86
 lineitem | l_shipdate      | az64     | 61.15
 lineitem | l_commitdate    | az64     | 61.26
 lineitem | l_receiptdate   | az64     | 61.15
 lineitem | l_shipinstruct  | zstd     | 96.50
 lineitem | l_shipmode      | bytedict | 88.89
 lineitem | l_comment       | zstd     | 70.36
 lineitem | l_dummy         | zstd     | 99.97
(17 rows)

Nota: per ogni colonna, il report include una stima della potenziale riduzione dello spazio su disco rispetto alla codifica RAW.

(Facoltativo) Per aiutarti a comprendere l'output del comando ANALYZE COMPRESSION, puoi visualizzare la definizione della tabella. Esegui questo comando:

SHOW TABLE lineitem;

Nota: sostituisci lineitem con il nome della tua tabella.

Esempio di output:

Show Table DDL statement             
-------------------------------------------------
 CREATE TABLE public.lineitem (                 
     l_orderkey integer ENCODE raw,             
     l_partkey integer ENCODE raw,              
     l_suppkey integer ENCODE raw,              
     l_linenumber integer ENCODE raw,           
     l_quantity numeric(15,2) ENCODE raw,       
     l_extendedprice numeric(15,2) ENCODE raw,  
     l_discount numeric(15,2) ENCODE raw,       
     l_tax numeric(15,2) ENCODE raw,            
     l_returnflag character(1) ENCODE raw,      
     l_linestatus character(1) ENCODE raw,      
     l_shipdate date ENCODE raw,                
     l_commitdate date ENCODE raw,              
     l_receiptdate date ENCODE raw,             
     l_shipinstruct character(25) ENCODE raw,   
     l_shipmode character(10) ENCODE raw,       
     l_comment character varying(44) ENCODE raw,
     l_dummy character varying(10) ENCODE raw   
 )                                              
 DISTSTYLE AUTO                                 
 SORTKEY ( l_orderkey );
(1 row)

ANALYZE COMPRESSION funge da strumento di supporto alla decisione e non modifica le codifiche delle colonne della tabella. Per applicare le codifiche suggerite, ricrea la tabella o esegui il comando ALTER TABLE:

ALTER TABLE lineitem ALTER COLUMN l_dummy ENCODE example_compression;

Nota: sostituisci lineitem con il nome della tua tabella, l_dummy con il nome della tua colonna e example_compression con la tua codifica di compressione.

Informazioni correlate

Come posso rilevare e sbloccare i blocchi in Amazon Redshift?

Compressione delle colonne per ridurre le dimensioni dei dati archiviati

AWS UFFICIALEAggiornata un anno fa