Statistiche delle tabelle

Bigtable fornisce statistiche della tabella, ovvero metadati relativi a una tabella, che forniscono informazioni di riepilogo sulla tabella, ad esempio il numero di righe o il numero medio di celle per colonna.

Questo documento descrive le statistiche delle tabelle e spiega come ottenerle utilizzando l'interfaccia a riga di comando Google Cloud. Prima di leggere questa pagina, devi conoscere il modello di archiviazione di Bigtable e avere familiarità con le best practice per la progettazione dello schema e con la garbage collection.

Le statistiche delle tabelle forniscono l'osservabilità di una tabella Bigtable. Possono essere utili per la risoluzione dei problemi relativi alle prestazioni o allo spazio di archiviazione o per determinare l'origine dei costi di archiviazione. Inoltre, possono aiutarti a determinare se stai archiviando più dati di quelli necessari.

Precisione prevista

Quando recuperi le statistiche della tabella per una tabella, i dati che ottieni sono approssimativi: le statistiche della tabella riflettono lo stato della tabella in uno dei cluster della tua istanza a partire dalla compattazione più recente.

Un insieme completo di statistiche della tabella non è disponibile fino al termine del compaction iniziale, che in genere si verifica circa una settimana dopo la creazione della tabella. Le statistiche delle tabelle sono accurate a partire dalla compattazione più recente, che potrebbe risalire anche a una settimana fa.

Campi delle statistiche della tabella

Una richiesta delle statistiche di una tabella restituisce i seguenti campi. I dettagli e gli esempi sono riportati nella sezione successiva.

Campo Statistiche tabella Nome API Descrizione
Conteggio delle righe row_count Il numero di righe nella tabella. Per maggiori dettagli, consulta Conteggio righe.
Numero medio di colonne per riga average_columns_per_row Il numero medio di colonne in ogni riga per l'intera tabella. Per dettagli ed esempio, consulta Numero medio di colonne per riga .
Numero medio di celle per colonna average_cells_per_column Il numero medio di celle memorizzate in tutte le colonne di tutte le righe. Per maggiori dettagli, consulta Numero medio di celle per colonna.
Dati logici in byte logical_data_bytes La quantità di spazio occupata dalla tabella. Per maggiori dettagli, vedi Dati logici in byte.

Le statistiche della tabella includono anche i seguenti campi per ogni famiglia di colonne della tabella.

Campo Statistiche famiglie di colonne Nome API Descrizione
Numero medio di colonne per riga average_columns_per_row Il numero medio di colonne per riga nella famiglia di colonne. Per dettagli ed esempio, consulta Numero medio di colonne per riga.
Numero medio di celle per colonna average_cells_per_column Il numero di celle in ogni colonna, calcolato in media su tutte le righe che contengono colonne nella famiglia di colonne. Per dettagli ed esempio, consulta Numero medio di celle per colonna.
Dati logici in byte logical_data_bytes La quantità di spazio occupata dalla famiglia di colonne. Per maggiori dettagli, consulta Dati logici in byte.

Dettagli del campo Statistiche tabella

Conteggio delle righe

Il conteggio righe è il numero di righe nella tabella. Ogni riga è identificata dalla sua chiave riga.

Numero medio di colonne per riga

Per ottenere il numero medio di colonne per riga di una tabella, Bigtable conteggia il numero di colonne nell'intera tabella e lo divide per il numero di righe nella tabella.

Ad esempio, considera la seguente tabella. La prima riga ha tre colonne, mentre la seconda ne ha due.

Chiave di riga Famiglia di colonne family-A Famiglia di colonne family-B
chiave di riga 1 family-A:qualifier-W family-A:qualifier-X family-B:qualifier-Y
chiave di riga 2 family-A:qualifier-W family-B:qualifier-Z

La tabella ha cinque colonne e due righe, quindi il numero medio di colonne per riga è 2.5.

Questa statistica della tabella ti dà un'idea generale se la tabella è alta e stretta (poche colonne per riga) o corta e larga (molte colonne in ogni riga).

Numero medio di celle per colonna

Per ottenere il numero medio di celle per colonna per una tabella, Bigtable prende il numero totale di celle memorizzate nella tabella e lo divide per il numero di colonne della tabella.

A seconda del design dello schema e dei criteri di raccolta dei rifiuti, la tabella potrebbe avere più celle in una colonna o una sola. Il numero di celle che puoi archiviare è limitato dalle dimensioni dei dati descritte nella pagina Quote e limiti in Dimensione dei dati all'interno delle tabelle.

Se questo numero è superiore alle tue aspettative, esamina le regole di raccolta del garbage per verificare se stai conservando più celle del necessario. Puoi anche chiedere se è necessario modificare lo schema e i pattern di scrittura.

Dati logici in byte (tabella)

Questo valore rappresenta il numero approssimativo di byte necessari per leggere l'intera tabella. Questa statistica della tabella ti dà un'idea di quanti byte sono memorizzati nella tabella. Conoscere i dati logici in byte può aiutarti a comprendere l'impatto della compressione sulla tabella. Ad esempio, se le dimensioni della tabella riportate in Cloud Monitoring sono uguali o superiori ai dati logici in byte per la tabella, potresti archiviare i dati in un formato che non è facilmente compresso.

Dettagli del campo Statistiche famiglia di colonne

Le statistiche della tabella per una tabella includono i seguenti campi per ogni famiglia di colonne della tabella.

Numero medio di colonne per riga

Questo numero viene calcolato dividendo il numero di colonne nella famiglia di colonne per il numero di righe nella tabella.

Ad esempio, considera la seguente tabella. La tabella contiene tre righe con colonne nelle famiglie di colonne family-A e family-B.

Chiave di riga Famiglia di colonne family-A Famiglia di colonne family-B
chiave di riga 1 family-A:qualifier-W family-A:qualifier-X family-B:qualifier-Y
chiave di riga 2 family-A:qualifier-W
chiave di riga 3 family-A:qualifier-W family-A:qualifier-X family-B:qualifier-Y family-B:qualifier-Z

La famiglia di colonne family-A ha un totale di cinque colonne nella tabella. Se dividiamo questo numero per tre righe, il numero medio di celle per colonna per family-A è 1.67 (arrotondato a due cifre decimali).

La famiglia di colonne family-B ha un totale di tre colonne nella tabella. Se dividiamo per tre righe, il numero medio di colonne per riga per family-A è 1.

Numero medio di celle per colonna

Per determinare il numero medio di celle per colonna di una famiglia di colonne, Bigtable conteggia tutte le celle della famiglia di colonne in tutte le righe della tabella e le divide per il numero di righe della tabella.

Ad esempio, considera le seguenti righe nella famiglia di colonne family-D.

Chiave di riga Famiglia di colonne family-D
chiave di riga 1 family-D:qualifier-W (3 celle) family-D:qualifier-X (1 cella)
chiave di riga 2 family-D:qualifier-X (10 celle)
chiave di riga 3 family-D:qualifier-W (7 celle) family-D:qualifier-Y (6 celle)

Il conteggio delle celle nella famiglia di colonne è 3 + 1 + 10 + 7 + 6 = 27. Questo valore diviso per 3 (il numero di righe) indica che la famiglia di colonne family-D ha una media di celle per colonna pari a 9.

Dati logici in byte (famiglia di colonne)

I dati logici in byte riflettono lo spazio occupato dalla famiglia di colonne. Questo valore corrisponde approssimativamente al numero di byte necessari per leggere tutti i dati della famiglia di colonne al momento del ritorno delle statistiche della tabella.

Esempio di utilizzo dell'interfaccia a riga di comando gcloud

Per ottenere le statistiche della tabella per una tabella denominata sample-table, utilizza il comando bigtable instances table describe:

gcloud bigtable instances tables describe TABLE_ID \
    --instance=INSTANCE_ID --view stats

Sostituisci quanto segue:

  • TABLE_ID: l'identificatore permanente della tabella
  • INSTANCE_ID: l'identificatore permanente dell'istanza

L'output è simile al seguente:

  columnFamilies:
    my-family:
     stats:
       averageCellsPerColumn: 12.34
       averageColumnsPerRow: 56.78
       logicalDataBytes: 314159
  name: projects/my-project/instances/INSTANCE_ID/tables/TABLE_ID
  stats:
    averageCellsPerColumn: 12.34
    averageColumnsPerRow: 56.78
    logicalDataBytes: 314159
    rowCount: 271828

Passaggi successivi