Caricamento di tabelle con compressione automatica - 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à.

Caricamento di tabelle con compressione automatica

È possibile applicare manualmente le codifiche di compressione alle colonne delle tabelle, in base alla propria valutazione dei dati. In alternativa, è possibile utilizzare il COPY comando COMPUPDATE impostato su ON per analizzare e applicare automaticamente la compressione in base a dati di esempio.

È possibile utilizzare la compressione automatica quando crei e carichi una nuova tabella. Il COPY comando esegue un'analisi di compressione. È anche possibile eseguire un'analisi di compressione senza caricare dati o modificare la compressione in una tabella eseguendo il comando ANALYZE COMPRESSION in una tabella già popolata. Ad esempio, puoi eseguire ANALYZE COMPRESSION quando desideri analizzare la compressione su una tabella per utilizzi futuri, preservando al contempo le istruzioni Data Definition Language (DDL) esistenti.

La compressione automatica equilibra le prestazioni globali quando si scelgono le codifiche di compressione. Le prestazioni delle scansioni a intervallo limitato potrebbero risultare scadenti se le colonne di chiave di ordinamento vengono compresse più delle altre colonne nella stessa query. Di conseguenza, la compressione automatica salta la fase di analisi dei dati sulle colonne chiave di ordinamento e mantiene i tipi di codifica definiti dall'utente.

La compressione automatica sceglie la RAW codifica se non avete definito esplicitamente un tipo di codifica. ANALYZECOMPRESSIONsi comporta allo stesso modo. Per prestazioni ottimali delle query, si consiglia di utilizzare RAW le chiavi di ordinamento.

Come funziona la compressione automatica

Quando il COMPUPDATE parametro è ON, il COPY comando applica la compressione automatica ogni volta che si esegue il COPY comando con una tabella di destinazione vuota e tutte le colonne della tabella hanno una RAW codifica o nessuna codifica.

Per applicare la compressione automatica a una tabella vuota, indipendentemente dalle codifiche di compressione correnti, esegui il COPY comando con l'COMPUPDATEopzione impostata su ON. Per disattivare la compressione automatica, esegui il COPY comando con l'COMPUPDATEopzione impostata su. OFF

Non è possibile applicare la compressione automatica a una tabella che contiene già dati.

Nota

L'analisi della compressione automatica richiede un numero sufficiente di righe nei dati di carico (almeno 100.000 righe per sezione) per generare un campione significativo.

La compressione automatica esegue queste operazioni in background come parte della transazione di caricamento:

  1. Un campione iniziale di righe viene caricato dal file di input. La dimensione del campione si basa sul valore del COMPROWS parametro. Il valore predefinito è 100,000.

  2. Le opzioni di compressione vengono scelte per ogni colonna.

  3. Le righe di esempio vengono rimosse dalla tabella.

  4. La tabella viene ricreata con le codifiche di compressione scelte.

  5. L'intero file di input viene caricato e compresso utilizzando le nuove codifiche.

Dopo aver eseguito il COPY comando, la tabella è completamente caricata, compressa e pronta per l'uso. Se carichi più dati in un secondo momento, le righe aggiunte vengono compresse in base alla codifica esistente.

Se desideri eseguire solo un'analisi di compressione, esegui ANALYZECOMPRESSION, che è più efficiente dell'esecuzione completaCOPY. Quindi è possibile valutare i risultati per decidere se utilizzare la compressione automatica o ricreare manualmente la tabella.

La compressione automatica è supportata solo per il COPY comando. In alternativa, è possibile applicare manualmente la codifica della compressione quando crei la tabella. Per informazioni sulla codifica della compressione manuale, consultare Utilizzo della compressione delle colonne.

Esempio di compressione automatica

In questo esempio, si supponga che il TICKIT database contenga una copia della LISTING tabella chiamata BIGLIST e che si desideri applicare la compressione automatica a questa tabella quando viene caricata con circa 3 milioni di righe.

Per caricare e comprimere automaticamente la tabella
  1. Assicurati che la tabella sia vuota. È possibile applicare la compressione automatica solo a una tabella vuota:

    TRUNCATE biglist;
  2. Caricate la tabella con un solo COPY comando. Sebbene la tabella sia vuota, potrebbe essere stata specificata una codifica precedente. Per facilitare l'esecuzione di un'analisi di compressione da parte di Amazon Redshift, imposta il COMPUPDATE parametro su ON.

    COPY biglist FROM 's3://amzn-s3-demo-bucket/biglist.txt' IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole' DELIMITER '|' COMPUPDATE ON;

    Poiché non viene specificata alcuna COMPROWS opzione, viene utilizzata la dimensione del campione predefinita e consigliata di 100.000 righe per slice.

  3. Guardate il nuovo schema della BIGLIST tabella per esaminare gli schemi di codifica scelti automaticamente.

    SELECT "column", type, encoding from pg_table_def where tablename = 'biglist'; Column | Type | Encoding ----------------+-----------------------------+---------- listid | integer | az64 sellerid | integer | az64 eventid | integer | az64 dateid | smallint | none numtickets | smallint | az64 priceperticket | numeric(8,2) | az64 totalprice | numeric(8,2) | az64 listtime | timestamp without time zone | az64
  4. Verifica che il numero previsto di righe sia stato caricato:

    select count(*) from biglist; count --------- 3079952 (1 row)

Quando le righe vengono successivamente aggiunte a questa tabella utilizzando INSERT le istruzioni COPY or, vengono applicate le stesse codifiche di compressione.