Progettazione di uno schema

Lo schema ideale per una tabella Bigtable dipende molto da una serie di fattori, tra cui il caso d'uso, i pattern di accesso ai dati e i dati che prevedi di archiviare. Questa pagina fornisce una panoramica della procedura di progettazione dello schema Bigtable.

Prima di leggere questa pagina, devi comprendere i concetti e le best practice di progettazione dello schema. Se applicabile, leggi anche Progettazione dello schema per i dati delle serie temporali.

Prima di iniziare

Crea o identifica un'istanza Bigtable che puoi utilizzare per testare lo schema.

Raccogliere informazioni

  1. Identifica i dati che prevedi di archiviare in Bigtable. Le domande da porre includono:
    • Quale formato utilizzano i dati? I formati possibili includono byte non elaborati, stringhe, protobuf e JSON.
    • Che cosa costituisce un'entità nei tuoi dati? Ad esempio, memorizzi visualizzazioni di pagina, prezzi delle azioni, posizionamenti degli annunci, misurazioni dei dispositivi o un altro tipo di entità? Da cosa sono composte le entità?
    • I dati sono basati sul tempo?
  2. Identifica e classifica le query che utilizzi per ottenere i dati di cui hai bisogno. Considerando le entità che memorizzerai, pensa a come vorrai che i dati vengano ordinati e raggruppati quando li utilizzi. La progettazione dello schema potrebbe non soddisfare tutte le query, ma idealmente soddisfa le query più importanti o utilizzate di frequente. Ecco alcuni esempi di query:
    • Letture della temperatura per un mese per gli oggetti IoT.
    • Visualizzazioni di annunci giornaliere per un indirizzo IP.
    • La posizione più recente di un dispositivo mobile.
    • Tutti gli eventi dell'applicazione al giorno per utente.

Design

Decidi una progettazione iniziale dello schema. Ciò significa pianificare il pattern che seguiranno le chiavi di riga, le famiglie di colonne che avrà la tabella e i qualificatori di colonna per le colonne che vuoi all'interno di queste famiglie di colonne. Segui le linee guida generali per la progettazione dello schema. Se i tuoi dati sono basati sul tempo, segui anche le linee guida per i dati delle serie temporali.

Se prevedi di eseguire query sulla tabella utilizzando SQL anziché il metodo ReadRows dell'API Bigtable Data, consulta i seguenti documenti:

Se vuoi utilizzare SQL per eseguire query sulle viste della tabella, nonché sulla tabella stessa, consulta Tabelle e viste.

Test

  1. Crea una tabella utilizzando le famiglie di colonne e i qualificatori di colonne che hai creato per lo schema.
  2. Carica la tabella con almeno 30 GB di dati di test, utilizzando le chiavi di riga che hai identificato nella bozza del piano. Rimani al di sotto dei limiti di utilizzo dello spazio di archiviazione per nodo.
  3. Esegui un test di carico elevato per diversi minuti. Questo passaggio consente a Bigtable di bilanciare i dati tra i nodi in base ai pattern di accesso che osserva.
  4. Esegui una simulazione di un'ora delle letture e delle scritture che normalmente invieresti alla tabella.
  5. Esamina i risultati della simulazione utilizzando Key Visualizer e Cloud Monitoring.

    • Lo strumento Key Visualizer per Bigtable fornisce scansioni che mostrano i pattern di utilizzo per ogni tabella di un cluster. Key Visualizer ti aiuta a verificare se la progettazione e i pattern di utilizzo dello schema stanno causando risultati indesiderati, come hotspot su righe specifiche.

    • Il monitoraggio ti aiuta a controllare le metriche, come l'utilizzo della CPU del nodo più caldo di un cluster, per aiutarti a determinare se la progettazione dello schema sta causando problemi.

Perfeziona

  1. Modifica la progettazione dello schema in base alle tue esigenze, in base a ciò che hai appreso con Key Visualizer. Ad esempio:
    • Se noti segni di hotspotting, utilizza chiavi di riga diverse.
    • Se noti latenza, verifica se le righe superano il limite di 100 MB per riga.
    • Se ti accorgi di dover utilizzare i filtri per ottenere i dati che ti servono, valuta la possibilità di normalizzare i dati in modo da consentire letture più semplici (e più veloci): lettura di una singola riga o di intervalli di righe per chiave di riga.
  2. Dopo aver rivisto lo schema, esegui di nuovo il test e rivedi i risultati.
  3. Continua a modificare e testare la progettazione dello schema finché un'ispezione in Key Visualizer non ti comunica che la progettazione dello schema è ottimale.

Passaggi successivi