Quando lavoriamo con o sviluppando applicazioni che coinvolgono database, abbiamo sempre una quantità limitata di memoria e proviamo a utilizzare la minima quantità di spazio su disco. Sebbene sappiamo che non esiste una limitazione della memoria sui servizi cloud, dobbiamo ancora pagare la quantità di spazio che consumiamo. Quindi, hai mai pensato di controllare quanto disco occupano le tabelle del database? In caso contrario, non devi preoccuparti perché sei nel posto giusto.
In questo articolo, impareremo come ottenere le dimensioni del tavolo in Amazon Redshift.
Come lo facciamo?
Quando un nuovo database viene creato in Redshift, crea automaticamente alcune tabelle e viste sullo sfondo in cui vengono registrate tutte le informazioni necessarie sul database. Questi includono visualizzazioni e tronchi STV, SVCS, SVL e SVV Views. Sebbene ci siano un sacco di cose e informazioni in essi che sono fuori portata per questo articolo, qui esploreremo un po 'sulle visualizzazioni SVV.
Le viste SVV contengono le viste del sistema che hanno riferimento alle tabelle STV. C'è un tavolo chiamato Svv_table_info dove il redshift memorizza la dimensione del tavolo. È possibile interrogare i dati da queste tabelle proprio come le normali tabelle di database. Ricorda solo che svv_table_info restituirà dati informativi solo per le tabelle non vuote.
Autorizzazioni superutenti
Come sapete, le tabelle e le viste del sistema di database contengono informazioni molto critiche che devono essere mantenute private, quindi è per questo. Solo i superuseri possono accedere a queste informazioni. Prima di ottenere le dimensioni del tavolo da questo, è necessario ottenere le autorizzazioni e i diritti del superutente o dell'amministratore. Per creare un superutente nel tuo database RedShift, è semplicemente necessario utilizzare la parola chiave Crea utente quando si crea un nuovo utente.
CREARE UN UTENTECreateUser Password "password utente";
Quindi, hai creato correttamente un superutente nel tuo database
Dimensione del tavolo da spostamento verso il rosso
Supponiamo che il tuo team leader ti abbia assegnato un compito per esaminare le dimensioni di tutte le tabelle di database in Amazon Redshift. Per svolgere questo lavoro, utilizzerai la seguente domanda.
Seleziona "Tabella", Dimensione da SVV_TABLE_INFO;
Quindi, dobbiamo interrogare due colonne dalla tabella denominata svv_table_info. La colonna denominata tavolo contiene i nomi di tutte le tabelle presenti in quello schema del database e la colonna denominata misurare memorizza le dimensioni di ciascuna tabella del database in MBS.
Proviamo questa query sul redshift sul database di esempio fornito con Redshift. Qui, abbiamo uno schema chiamato tickit e diverse tabelle con una grande quantità di dati. Come mostrato nella seguente screenshot, abbiamo sette tabelle qui e la dimensione di ogni tabella in MBS è menzionata di fronte a ognuna:
Altre informazioni che puoi ottenere riguardo alle dimensioni della tabella da svv_table_info può essere il numero totale di righe in una tabella, che puoi ottenere dal tbl_rows colonna e la percentuale di memoria totale consumata da ciascuna tabella del database dal pct_used colonna.
In questo modo, puoi visualizzare tutte le colonne e il loro spazio occupato nel tuo database.
Modifica i nomi delle colonne per la presentazione
Per rappresentare i dati in modo più sofisticato, possiamo anche rinominare le colonne di svv_table_info come vogliamo. Vedrai come farlo nel seguente esempio:
Seleziona "Table" come table_name,
dimensione come size_in_mbs,
tbl_rows come no_of_rows
da svv_table_info
Qui, ogni colonna è rappresentata con un nome diverso dal suo nome originale.
In questo modo, puoi rendere le cose più comprensibili per qualcuno con meno conoscenza ed esperienza con i database.
Trova tabelle più grandi della dimensione specificata
Se stai lavorando in una grande azienda IT e ti viene assegnato un lavoro per scoprire quante tabelle nel tuo database sono più grandi di 3000 MBS. Per questo, devi scrivere la seguente domanda:
Seleziona "Tabella", dimensione
da svv_table_info
dove size> 3000
Puoi vedere qui che abbiamo messo un più grande di condizione sul misurare colonna.
Si può vedere che abbiamo appena ottenuto quelle colonne nell'output che erano più grandi del nostro valore limite impostato. Allo stesso modo, è possibile generare molte altre domande applicando condizioni su diverse colonne della tabella svv_table_info.
Conclusione
Quindi qui, hai visto come trovare la dimensione della tabella e il numero di righe in una tabella in Amazon Redshift. È utile quando si desidera determinare l'onere nel tuo database e fornirà una stima se si sta esaurendo la memoria, lo spazio del disco o la potenza di calcolo. Oltre alla dimensione della tabella, sono disponibili altre informazioni che possono aiutarti a progettare un database più efficiente e produttivo per l'applicazione.