In questa pagina troverai le best practice per l'utilizzo di Datastream. Queste includono le best practice generali per l'utilizzo di Datastream.
Modificare il database di origine di uno stream
In alcuni casi, potrebbe essere necessario modificare il database di origine di uno stream. Ad esempio, potresti dover modificare lo stream per eseguire la replica da una replica anziché dall'istanza di database principale.
- Crea un profilo di connessione per l'istanza di replica.
- Crea uno stream utilizzando il profilo di connessione per la replica che hai creato e il profilo di connessione esistente per la destinazione.
- Avvia lo stream con il backfill storico disattivato. All'avvio dello stream, verranno importati solo i dati dei log binari.
- Facoltativo. Dopo l'esecuzione dello stream, modificalo per attivare il backfill automatico.
- Metti in pausa lo stream che legge dall'istanza principale.
- Facoltativo. Elimina lo stream che trasmetteva dati dall'istanza principale.
- Facoltativo. Elimina il profilo di connessione per l'istanza primaria.
Avvisi e monitoraggio in Datastream
La dashboard di Datastream contiene molte informazioni. Queste informazioni possono essere utili per il debug. Ulteriori informazioni sono disponibili nei log, che sono disponibili in Cloud Logging.
Avvisi Datastream
Non è configurato alcun avviso predefinito per Datastream. Ad esempio, puoi creare un criterio di avviso per la metrica Aggiornamento dei dati facendo clic sul link Crea criterio di avviso nella scheda Panoramica. Per le metriche rimanenti, segui questi passaggi:
Nella Google Cloud console, vai alla pagina notifications Avvisi:
Fai clic su Crea policy.
Fai clic sul menu a discesa Seleziona una metrica.
Nel campo del filtro, inserisci
Datastream.(Facoltativo) Potresti dover disattivare il filtro Attivo per visualizzare tutte le metriche disponibili.
Cerca la metrica che vuoi monitorare in Stream Datastream.
Fai clic su Applica.
(Facoltativo) Inserisci i dettagli richiesti nelle sezioni Aggiungi filtri e Trasforma dati. Fai clic su Avanti.
Inserisci le informazioni richieste nella sezione Configura l'attivatore di avvisi. Fai clic su Avanti.
Configura le notifiche nella sezione Configura le notifiche e finalizza l'avviso.
Rivedi l'avviso e fai clic su Crea policy quando è tutto pronto.
Per informazioni dettagliate su come completare ciascuno di questi passaggi, vedi Creare criteri di avviso.
Ti consigliamo di creare avvisi per le seguenti metriche di Datastream:
- Aggiornamento dei dati
- Stream unsupported event count
- Latenze totali dello stream
Un avviso su una di queste metriche può indicare un problema con lo stream o con il database di origine.
Informazioni sulla latenza
Datastream fornisce le seguenti metriche per aiutarti a comprendere la latenza di replica:
- Aggiornamento dei dati: la differenza tra il momento in cui i dati sono stati inviati all'origine e il momento in cui sono stati letti da Datastream. Se questa metrica è elevata, indica che Datastream sta leggendo i dati più lentamente di quanto vengono generati nell'origine. Ciò indica che potrebbe esserci un problema con l'origine o con la connessione di rete all'origine.
- Latenza di sistema: il tempo impiegato da Datastream per elaborare un evento, dal momento in cui viene letto dall'origine fino a quando non viene scritto nella destinazione.
- Latenza totale: il ritardo di replica end-to-end, che rappresenta il tempo totale che intercorre tra il momento in cui i dati vengono inviati all'origine e quello in cui vengono scritti nella destinazione.
Se l'aggiornamento dei dati è elevato, le cause comuni includono:
- Sovraccarico dell'origine: il database di origine genera log (file binlog, file di log di ripetizione,
file WAL) più velocemente di quanto Datastream possa leggerli.
- Azione per MySQL/Oracle:
Aumenta il parametro
maxConcurrentCdcTasksper leggere più log in parallelo. - Azione per PostgreSQL: isola le tabelle con un churn elevato nei propri stream dedicati.
- Azione per SQL Server:aumenta il parametro
maxConcurrentCdcTasksper leggere più tabelle delle modifiche in parallelo.
- Azione per MySQL/Oracle:
Aumenta il parametro
- Saturazione delle risorse di origine: il server di database di origine stesso presenta problemi
come utilizzo elevato della CPU, memoria insufficiente o colli di bottiglia di I/O del disco.
- Azione: assicurati che l'istanza di origine sia integra. Controlla l'utilizzo di CPU/RAM. Per PostgreSQL,
valuta la possibilità di aumentare il valore del parametro
logical_decoding_work_mem; per Oracle, assicurati che sia allocata una SGA (System Global Area) sufficiente.
- Azione: assicurati che l'istanza di origine sia integra. Controlla l'utilizzo di CPU/RAM. Per PostgreSQL,
valuta la possibilità di aumentare il valore del parametro
- Problemi di capacità di rete:tempo di ping elevato o larghezza di banda satura tra l'origine e Google Cloud.
- Azione: monitora la larghezza di banda e la latenza della VPN o di Cloud Interconnect.
- Singola transazione di grandi dimensioni:un job batch di grandi dimensioni, ad esempio un'operazione
UPDATEsu milioni di righe, può causare un picco temporaneo di latenza.- Azione:questo è previsto. Attendi che Datastream elabori l'evento di grandi dimensioni. In futuro, valuta la possibilità di suddividere i job batch di grandi dimensioni in parti più piccole.
Se la latenza del sistema è elevata, potrebbe indicare un problema all'interno di Datastream o della destinazione.
- Azione: controlla Cloud Logging per errori persistenti a livello di riga (ad esempio,
invalid input for type json). Se lo stream si trova in un ciclo di nuovi tentativi a causa di errori di tipo di dati o vincoli, potrebbe essere necessaria la correzione manuale dei dati all'origine. Se non sono presenti errori evidenti, contatta l'assistenza Google per ricevere aiuto.
Quante tabelle può gestire un singolo stream?
Ti consigliamo di includere fino a 10.000 tabelle in un singolo stream. Non esiste un limite alle dimensioni delle tabelle. Se devi creare un flusso con più tabelle, il flusso potrebbe entrare in uno stato di errore. Per evitare questo problema, valuta la possibilità di dividere la sorgente in più stream.