Salta al contenuto

Perché Amazon Redshift crea tabelle temporanee nel mio cluster e le tabelle create consumano lo spazio di memoria dei nodi?

3 minuti di lettura
0

Amazon Redshift ha creato tabelle temporanee nel mio cluster e desidero sapere perché. Inoltre, desidero sapere se queste tabelle consumano lo spazio di memoria disponibile sui miei nodi

Risoluzione

Amazon Redshift crea tabelle temporanee per archiviare i risultati intermedi di elaborazione delle query delle operazioni DDL (Data Definition Language) e DML (Data Manipulation Language). Amazon Redshift memorizza queste tabelle in uno schema separato specifico per la sessione con una convenzione di denominazione pg_temp_1. Non puoi specificare un nome per questo schema. Anche l'aggiornamento della vista materializzata utilizza tabelle temporanee per archiviare i risultati delle query intermedie.

Gli utenti possono anche utilizzare le parole chiave TEMPORARY e TEMP nelle istruzioni CREATE TABLE per creare tabelle temporanee.

Importante: se specifichi un nome di tabella che inizia con #, Amazon Redshift crea la tabella come tabella temporanea. Esempio di comando:

create table #newtable (id) as select * from oldtable;

Le tabelle temporanee sono visibili solo all'interno della sessione corrente. Al termine della sessione, Amazon Redshift elimina automaticamente le tabelle temporanee dalla sessione terminata.

Quando attivi la condivisione dei dati sul cluster, puoi impostare il cluster come consumer. In questo caso, Amazon Redshift crea oggetti temporanei per archiviare i blocchi di dati che gli utenti finali recuperano dal cluster producer.

Per impostazione predefinita, gli utenti del database hanno le autorizzazioni per creare tabelle temporanee tramite la loro appartenenza automatica al gruppo PUBLIC. Per bloccare questa autorizzazione, revoca le autorizzazioni TEMP dal gruppo PUBLIC eseguendo questa query:

Revoke TEMPORARY | TEMP on DATABASE db_name from GROUP PUBLIC;

Nota: sostituisci db_name con il nome del tuo database.

Quindi concedi esplicitamente le autorizzazioni TEMP agli utenti o ai gruppi di utenti a cui desideri consentire la creazione di tabelle temporanee.

Come funziona l'archiviazione nel caso delle tabelle temporanee

Le tabelle temporanee utilizzano l'archiviazione locale sui nodi di calcolo. Al termine della sessione, una volta che le tabelle temporanee sono state eliminate, Amazon Redshift rilascia nuovamente lo spazio di archiviazione nel nodo. Le tabelle temporanee soddisfano i seguenti requisiti di archiviazione:

  • Sebbene le tabelle temporanee utilizzino l'allocazione complessiva dello spazio di archiviazione per il cluster, l'archiviazione è transitoria e non contribuisce ai costi permanenti che sostieni per l'archiviazione dei dati.
  • La quantità di spazio di archiviazione utilizzata dalle tabelle temporanee dipende dalla dimensione dei dati e dalla complessità delle query.
  • Quando hai query complesse e di grandi dimensioni che richiedono tabelle temporanee di grandi dimensioni, lo spazio di archiviazione del cluster potrebbe subire picchi temporanei di utilizzo.

Nota: per impostazione predefinita, Amazon Redshift applica la stessa compressione automatica alle tabelle temporanee e alle tabelle permanenti. Le tabelle temporanee sono progettate per un'elaborazione efficiente delle query e memorizzano i risultati intermedi per migliorare le prestazioni delle query.

Informazioni correlate

STV_TBL_PERM

STL_SAVE

AWS UFFICIALEAggiornata 4 mesi fa