Statistiche tabella

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

Questo documento descrive le statistiche delle tabelle e spiega come ottenerle utilizzando Google Cloud CLI. Prima di leggere questa pagina, dovresti conoscere il modello di archiviazione di Bigtable e conoscere le best practice per la progettazione degli schemi e la garbage collection.

Le statistiche della tabella forniscono osservabilità in una tabella Bigtable. Possono essere utili per risolvere problemi relativi alle prestazioni o all'archiviazione oppure per determinare l'origine dei costi di archiviazione. Possono anche aiutarti a capire se stai archiviando più dati del necessario.

Precisione prevista

Quando recuperi le statistiche delle tabelle per una tabella, i dati ottenuti sono approssimativi e le statistiche della tabella riflettono lo stato della tabella in uno dei cluster dell'istanza a partire dalla compattazione più recente.

Un set completo di statistiche della tabella è disponibile solo dopo l'compazione iniziale, che in genere avviene circa una settimana dopo la creazione della tabella. Le statistiche della tabella sono accurate fino all'ultima compattazione, che potrebbe riscontrare almeno una settimana fa.

Campi delle statistiche della tabella

Una richiesta di statistiche della tabella di una tabella restituisce i seguenti campi. Dettagli ed esempi sono nella sezione successiva.

Campo delle statistiche della tabella Nome API Description
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 maggiori dettagli e un esempio, consulta Numero medio di colonne per riga
Numero medio di celle per colonna average_cells_per_column Il numero medio di celle archiviate in tutte le colonne in tutte le righe. Per maggiori dettagli, vedi Numero medio di celle per colonna.
Dati logici in byte logical_data_bytes La quantità di spazio occupata dalla tabella. Per maggiori dettagli, consulta Dati logici in byte.

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

Campo delle statistiche relative alla famiglia di colonne Nome API Description
Numero medio di colonne per riga average_columns_per_row Il numero medio di colonne per riga nella famiglia di colonne. Per maggiori dettagli e un 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 hanno colonne nella famiglia di colonne. Per maggiori dettagli e un esempio, vedi 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 delle statistiche della tabella

Conteggio delle righe

Il conteggio delle righe corrisponde al numero di righe nella tabella. Ogni riga è identificata dalla relativa chiave di riga.

Numero medio di colonne per riga

Per calcolare il numero medio di colonne per riga di una tabella, Bigtable conteggia il numero di colonne nell'intera tabella e suddivide il valore per il numero di righe nella tabella.

Considera ad esempio la tabella riportata di seguito. La prima riga ha tre colonne e la seconda due colonne.

Chiave di riga Famiglia di colonne-A Famiglia di colonne-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

Poiché la tabella ha cinque colonne e due righe, il numero medio di colonne per riga è 2.5.

Queste statistiche della tabella ti danno un'idea generale se la tua 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 archiviate nella tabella e lo divide per il numero di colonne nella tabella.

A seconda della progettazione dello schema e dei criteri di garbage collection, la tabella potrebbe avere più celle in una colonna o una sola. Il numero di celle che puoi archiviare è vincolato dai limiti di dimensione dei dati descritti nella pagina Quote e limiti in Dimensioni dei dati nelle tabelle.

Se noti che questo numero è superiore al previsto, esamina le regole di garbage collection per verificare se stai conservando più celle del necessario. Potresti anche chiedere se i pattern dello schema e di scrittura devono essere modificati.

Dati logici in byte (tabella)

Questo valore rappresenta il numero approssimativo di byte necessari per leggere l'intera tabella. Questa statistica della tabella dà un'idea di quanti byte vengono archiviati 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 della tabella, è possibile che i dati vengano memorizzati in un formato di facile compressione.

Dettagli del campo delle statistiche della famiglia di colonne

Le statistiche per una tabella includono i seguenti campi per ogni famiglia di colonne nella 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.

Considera ad esempio la tabella riportata di seguito. La tabella ha tre righe con colonne nelle famiglie di colonne family-A e family-B.

Chiave di riga Famiglia di colonne-A Famiglia di colonne-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. Divideto per tre righe, il che significa che il numero medio di celle per colonna per family-A è 1.67 (arrotondato qui a due cifre decimali).

La famiglia di colonne family-B ha un totale di tre colonne nella tabella. Dividendo 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 calcola il conteggio di tutte le celle della famiglia di colonne in tutte le righe della tabella e lo 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 - D
chiave di riga 1 famiglia-D:qualificatore-W (3 celle) famiglia-D:qualificatore-X (1 cella)
chiave di riga 2 famiglia-D:qualificatore-X (10 celle)
chiave di riga 3 famiglia-D:qualificatore-W (7 celle) famiglia-D:qualificatore-Y (6 celle)

Il numero di celle nella famiglia di colonne è 3 + 1 + 10 + 7 + 6 = 27. Il valore diviso per 3 (il numero di righe) indica che la famiglia di colonne family-D ha una media di celle per colonna di 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 della restituzione delle statistiche della tabella.

Esempio di utilizzo di gcloud CLI

Per ottenere le statistiche di 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 per l'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