Domande frequenti

In questa pagina troverai le risposte alle domande frequenti sull'utilizzo di Datastream. Questa sezione di domande frequenti è associata a:

  • Domande generali su Datastream e Change Data Capture (CDC)
  • Comportamento e limitazioni generali delle origini
  • Comportamento e limitazioni dell'origine MySQL
  • Comportamento e limitazioni dell'origine Oracle
  • Comportamento e limitazioni dell'origine PostgreSQL (incluso AlloyDB per PostgreSQL)
  • Comportamento e limitazioni dell'origine SQL Server
  • Comportamento della destinazione BigQuery
  • Comportamento della destinazione Cloud Storage
  • Casi d'uso comuni per l'utilizzo di Datastream
  • In che modo Datastream si integra con i servizi di dati di Google Cloud
  • Sicurezza e connettività
  • Monitoraggio di Datastream
  • Prezzi
  • Ulteriori informazioni su Datastream

Domande generali su Datastream e Change Data Capture (CDC)

Domanda Risposta
Cos'è Datastream?

Datastream è un servizio CDC (Change Data Capture) e di replica dei dati serverless e di facile utilizzo. Datastream consente la replica senza interruzioni dei dati da origini di database relazionali come AlloyDB per PostgreSQL, PostgreSQL, MySQL, SQL Server e Oracle direttamente in BigQuery. Datastream offre la scalabilità, la velocità, la sicurezza e la semplicità di cui le aziende moderne hanno bisogno. Con un'architettura serverless e a scalabilità automatica, Datastream ti consente di configurare facilmente una pipeline ELT (estrazione, caricamento e trasformazione) per la replica dei dati a bassa latenza, in modo da ottenere informazioni quasi in tempo reale.

Datastream ha anche la capacità di sincronizzare gli stream di dati tra database e applicazioni eterogenee in modo affidabile e con latenza minima. Il servizio offre un'integrazione semplificata con i modelli Dataflow per replicare i database in Cloud SQL o Spanner per la sincronizzazione dei database oppure utilizza lo stream di eventi direttamente da Cloud Storage per realizzare architetture basate su eventi.

Quali sono i metodi con cui Datastream trasmette i dati? Datastream trasmette i dati da un'origine a una destinazione utilizzando uno dei due metodi seguenti:
  • CDC: acquisisce le modifiche in corso dall'origine in tempo reale.
  • Backfill: fornisce uno snapshot storico dei dati esistenti in una tabella.
Che cos'è il CDC?

CDC è un approccio all'integrazione dei dati che ti consente di integrare e analizzare i dati più rapidamente, utilizzando meno risorse di sistema. Si tratta di un metodo per estrarre solo le ultime modifiche (aggiornamenti, inserimenti o eliminazioni) da un'origine dati, spesso leggendo il log delle modifiche che l'origine conserva per la propria integrità transazionale interna.

Il CDC è un meccanismo altamente efficiente per limitare l'impatto sull'origine durante il caricamento di nuovi dati in data store e data warehouse operativi ed elimina la necessità di aggiornamenti con caricamento collettivo e finestre batch scomode consentendo il caricamento incrementale o lo streaming quasi in tempo reale delle modifiche dei dati in una destinazione dati.

La CDC può essere utilizzata in molti casi d'uso che traggono valore dall'accesso costante alle modifiche dei dati man mano che si verificano, ad esempio analisi, sincronizzazione dei dati tra sistemi geograficamente distribuiti e architetture basate su eventi.

Che cos'è il backfill?

Oltre alle modifiche in corso, Datastream utilizza anche il backfill per estrarre tutti i dati esistenti da un'origine e poi trasmetterli in streaming in una destinazione. Di conseguenza, la destinazione viene "sottoposta a backfill" con tutti i dati storici dell'origine. Esistono due tipi di backfill:

  • Incrementale: il tipo predefinito di backfill per le tabelle. Durante il backfill incrementale, Datastream recupera i dati da intervalli di righe in più batch e li trasmette in streaming a una destinazione batch per volta.
  • Dump completo: durante il backfill del dump completo, Datastream estrae tutti i dati contemporaneamente e li trasmette in streaming in una destinazione.
Esistono limitazioni da considerare quando esegui un backfill?

Per informazioni sui vincoli di backfill, consulta le pagine relative alle limitazioni note per i rispettivi tipi di origine:

Qual è l'ordine consigliato per le operazioni CDC e di backfill? Nella maggior parte dei casi, non è richiesta alcuna considerazione speciale. Quando il backfill è abilitato in uno stream, Datastream esegue contemporaneamente sia il backfill sia il CDC. In alcuni casi limite, ad esempio quando si replicano tabelle di grandi dimensioni che non possono essere sottoposte a backfill utilizzando Datastream, potrebbe essere necessario caricare prima i dati in BigQuery prima di avviare lo stream.
Posso monitorare lo stato delle operazioni di CDC e backfill?

Puoi monitorare lo stato del backfill per oggetto:

  1. Nella console Google Cloud, vai alla pagina Stream.
  2. Fai clic sullo stream che vuoi monitorare.
  3. Fai clic sulla scheda Oggetti.

Lo stato del CDC è in effetti lo stato dello stream. Se l'operazione CDC non va a buon fine, l'intero stream non va a buon fine.

In Cloud Monitoring sono disponibili altre metriche a livello di oggetto. Per ulteriori informazioni, consulta la documentazione di Cloud Monitoring.

Che cos'è uno stream di modifiche rispetto alla replica?

Uno stream di modifiche è una sequenza di eventi che Datastream emette in una destinazione per il consumo a valle. Il risultato di uno stream di modifiche scritto in Cloud Storage è un insieme di file che contengono eventi del log delle modifiche di una tabella specifica in un determinato periodo di tempo. Gli eventi rappresentano inserimenti, aggiornamenti ed eliminazioni nella tabella e possono essere utilizzati ed elaborati a valle di Cloud Storage da servizi come Dataflow per casi d'uso come le architetture basate su eventi.

Per replica nel contesto di Datastream si intende una rappresentazione aggiornata 1:1 della tabella di origine nella destinazione. Ad esempio, una tabella in Oracle le cui modifiche vengono replicate continuamente in una tabella BigQuery, dove la tabella BigQuery viene mantenuta aggiornata utilizzando le modifiche trasmesse in streaming dalla tabella Oracle. La replica sfrutta modifiche in tempo reale utilizzando ogni evento di modifica per aggiornare la destinazione. Datastream consente la replica diretta in BigQuery e supporta destinazioni aggiuntive come Cloud SQL e Spanner tramite l'integrazione con Dataflow, sfruttando i modelli che estraggono gli eventi del flusso di modifiche da Cloud Storage e aggiornano di conseguenza le tabelle di destinazione.

Datastream richiede un agente nell'origine? Non è necessario installare un agente nella sorgente. Datastream utilizza interfacce esistenti (come Oracle LogMiner) per estrarre i dati dall'origine.
Quante tabelle posso includere in un singolo stream? Datastream può gestire fino a 10.000 tabelle in un unico stream. Non esiste un motivo tecnico per suddividere un database in più stream, anche se potrebbero esserci alcune considerazioni aziendali per utilizzare stream diversi per flussi logici diversi, ad esempio quando si replicano transazioni di grandi dimensioni da origini PostgreSQL. Tuttavia, ogni stream aggiunge un carico al database di origine. Questo carico è trascurabile per la CDC, ma può essere significativo per il backfill.
Che dire dell'impatto sulle prestazioni dell'utilizzo di Datastream su un database di produzione?

CDC è un meccanismo altamente efficiente per limitare l'impatto sull'origine quando i nuovi dati vengono caricati nei data store e nei data warehouse di destinazione. Il CDC elimina inoltre la necessità di aggiornamenti con caricamenti collettivi e finestre batch scomode consentendo il caricamento incrementale o lo streaming quasi in tempo reale delle modifiche dei dati in una destinazione.

Inoltre, Datastream riduce al minimo l'impatto di un backfill iniziale limitando il numero di attività di backfill simultanee e offrendoti il controllo per decidere quali oggetti eseguire il backfill e quando.

Puoi copiare i file di log dall'origine a Google Cloud? No. Datastream esegue query sui log direttamente sul server di database e solo le modifiche alle tabelle specificate vengono scritte nella destinazione.
Datastream può trasferire anche i dati storici? Sì. Per impostazione predefinita, Datastream recupera tutti i dati storici dalle tabelle di database dell'origine specificata, in parallelo allo stream CDC. Datastream ti offre la flessibilità di ottenere dati storici da alcune o tutte le tabelle di database dell'origine. Inoltre, quando configuri lo stream, puoi scegliere di disattivare il backfill storico.
Datastream garantisce la consegna "exactly-once"? No. Datastream è una consegna "at-least-once". I metadati aggiuntivi che Datastream scrive in ogni evento possono essere utilizzati per rimuovere i dati duplicati.
Datastream può gestire i database criptati? Sì.
Datastream può trasmettere in streaming tabelle e colonne specifiche da un'origine? Sì. Con Datastream, puoi specificare elenchi di inclusione ed esclusione per tabelle e schemi, in modo da trasmettere solo i dati che ti interessano da un'origine a una destinazione. Per le tabelle incluse, puoi escludere colonne specifiche delle tabelle per perfezionare ulteriormente i dati che vuoi trasmettere in streaming alla destinazione. Tuttavia, le viste materializzate non possono essere replicate.
Come faccio a spostare uno stream in un altro progetto o in un'altra regione?
  1. Crea uno stream in una nuova regione o in un nuovo progetto con la stessa configurazione dello stream esistente, ma non selezionare la casella di controllo Esegui il backfill dei dati storici.
  2. Avvia lo stream che hai creato.
  3. Quando lo stream che hai creato ha lo stato RUNNING, metti in pausa lo stream esistente.
  4. Se vuoi, modifica il nuovo stream selezionando la casella di controllo Esegui il backfill dei dati storici. I dati esistenti nelle tabelle aggiunte allo stream in futuro verranno trasmessi in streaming dall'origine alla destinazione.
In che modo Datastream gestisce le transazioni non committate nei file di log del database? Quando i file di log del database contengono transazioni non confermate, se vengono eseguiti dei rollback, il database lo riflette nei file di log come operazioni di data manipulation language (DML) "inversi". Ad esempio, un'operazione INSERT di cui è stato eseguito il rollback avrà un'operazione DELETE corrispondente. Datastream legge queste operazioni dai file di log.
Qual è la disponibilità regionale di Datastream?

Per visualizzare un elenco delle regioni in cui è disponibile Datastream, consulta Liste consentite e regioni IP.

Comportamento generale e limitazioni delle origini

Domanda Risposta
Quali origini supporta Datastream?

Datastream supporta i dati in streaming da origini Oracle, MySQL, PostgreSQL, AlloyDB per PostgreSQL e SQL Server, sia ospitate sul cloud che autogestite. Per informazioni sulle versioni specifiche dell'origine, consulta le seguenti pagine:

Datastream può gestire i database criptati? Sì.
In che modo Datastream estrae i dati dalle origini?

Per MySQL, Datastream elabora il log binario di MySQL per estrarre gli eventi di modifica.

Per Oracle, Datastream utilizza LogMiner e impostazioni di logging supplementari per estrarre i dati dai redo log di Oracle.

Per PostgreSQL e AlloyDB per PostgreSQL, Datastream si basa sulla funzionalità di decodifica logica di PostgreSQL. La decodifica logica espone tutte le modifiche committate al database e consente di utilizzarle ed elaborarle.

Per SQL Server, Datastream monitora le modifiche al data manipulation language (DML) utilizzando i log delle transazioni.

Puoi copiare i file di log direttamente da un'origine a Google Cloud? Datastream non copia l'intera serie di file di log, ma esegue query sui file di log direttamente dal server di database e replica solo le modifiche dalle tabelle specificate alla destinazione.
Quali sono le limitazioni relative ai dati che Datastream può elaborare?

Esistono limitazioni generali e limitazioni che si applicano a origini database specifiche.

Le limitazioni generali includono:

  • Dimensioni evento: limite massimo di 100 MB per la dimensione delle righe per la destinazione Cloud Storage e limite massimo di 20 MB per la dimensione delle righe per BigQuery.
  • Alcune operazioni di Data Definition Language (DDL) non sono supportate durante la replica, tra cui:
    • Inserimento di una colonna nel mezzo di una tabella. Ciò potrebbe causare una discrepanza nei dati perché i valori sono associati alla colonna sbagliata.
    • Modifica del tipo di dati di una colonna. Ciò potrebbe causare una discrepanza nei dati perché non sono mappati correttamente al tipo unificato di Datastream corretto e potrebbero essere danneggiati.
    • Le eliminazioni a cascata vengono ignorate.
    • Il troncamento della tabella viene ignorato.

Per le limitazioni specifiche delle origini, consulta le seguenti pagine:

Quali dati vengono inclusi in ogni evento generato da Datastream? Ogni evento generato (per inserimenti, aggiornamenti ed eliminazioni) include l'intera riga di dati dell'origine, con il tipo di dati e il valore di ogni colonna. Ogni evento include anche metadati dell'evento che possono essere utilizzati per stabilire l'ordine e garantire l'invio esattamente una volta.
Datastream garantisce l'ordinamento? Anche se Datastream non garantisce l'ordinamento, fornisce metadati aggiuntivi per ogni evento. Questi metadati possono essere utilizzati per garantire l'coerenza finale nella destinazione. A seconda della fonte, della velocità e della frequenza delle modifiche e di altri parametri, l'coerenza finale può essere generalmente raggiunta in un lasso di tempo di un'ora.
Datastream garantisce la consegna "exactly-once"? Datastream è una consegna "at-least-once". Puoi eliminare i dati duplicati utilizzando metadati aggiuntivi che Datastream scrive in ogni evento.
In che modo Datastream rappresenta i tipi di dati dell'origine per l'utilizzo nell'elaborazione downstream?

Quando scrivi in una destinazione senza schema, come Cloud Storage, Datastream semplifica l'elaborazione dei dati a valle tra le origini normalizzando i tipi di dati in tutte le origini. Datastream prende il tipo di dati di origine originale (ad esempio un tipo NUMERIC MySQL o PostgreSQL o un tipo NUMBER Oracle) e lo normalizza in un tipo unificato di Datastream.

I tipi unificati rappresentano un superset senza perdita di tutti i possibili tipi di origini e la normalizzazione consente di elaborare facilmente i dati provenienti da origini diverse ed eseguire query in modo indipendente dall'origine.

In che modo Datastream gestisce le modifiche alla struttura (schema) nell'origine? Datastream recupera periodicamente lo schema dall'origine. Gli schemi vengono archiviati nel registry degli schemi interno di Datastream e ogni evento fa riferimento allo schema al momento della generazione. In questo modo, Datastream può monitorare le modifiche dello schema e apportare aggiustamenti in base a queste modifiche, assicurandosi che tutti i dati vengano trasmessi e caricati correttamente nella destinazione. Tuttavia, tra un recupero dello schema e l'altro, alcune modifiche dello schema potrebbero non essere rilevate, causando potenzialmente discrepanze nei dati.
Ho eliminato (o rimosso) una colonna nel mio database di origine, ma continua a essere visualizzata nella destinazione. Perché? Datastream non elimina le colonne nella destinazione. Devi eliminare le colonne manualmente. Questo comportamento è intenzionale, perché in alcuni casi potresti preferire mantenere la colonna eliminata nella destinazione. Ad esempio, Datastream interpreta la ridenominazione di una colonna nell'origine come eliminazione di una colonna e aggiunta di un'altra colonna. In questo caso, non vuoi perdere la colonna originale nella destinazione.
Lo stream non si avvia a causa di un errore di convalida, ma penso che si tratti di un errore o voglio provare a eseguire lo stream comunque. Come faccio a superare questa convalida? Puoi avviare lo stream utilizzando l'API aggiungendo il flag force=true e saltando i controlli di convalida. Tieni presente che l'omissione delle convalide non garantisce che lo stream possa essere eseguito e potrebbe comunque non riuscire se nel database mancano le autorizzazioni o la configurazione necessarie.
Posso riavviare uno stream non riuscito?

Puoi correggere uno stream con lo stato Failed risolvendo gli errori segnalati da Datastream. Per ulteriori informazioni, consulta la sezione Risolvere i problemi relativi a uno stream.

Puoi anche recuperare uno stream con lo stato Failed permanently. Per ulteriori informazioni, vedi Ripristinare uno stream.

Datastream blocca le tabelle di database?

No. Datastream non deve bloccare le tabelle.

Le pagine relative alle limitazioni di ogni origine specificano che gli stream possono avere fino a 10.000 tabelle. Ciò significa che Datastream non può eseguire operazioni CDC in parallelo per più di 10.000 tabelle contemporaneamente? No. Il limite indicato si riferisce a ogni stream. Puoi avere più stream con un numero totale di tabelle superiore a 10.000.

Comportamento e limitazioni dell'origine MySQL

Domanda Risposta
In che modo Datastream estrae i dati da MySQL? Datastream utilizza il log binario di MySQL per estrarre gli eventi di modifica da MySQL
Datastream supporta le istanze di replica di lettura Cloud SQL per MySQL?

Sì, Datastream supporta le istanze di replica di lettura per Cloud SQL per MySQL nelle versioni 5.7 e 8.0.

Puoi attivare il logging binario su queste istanze. Per farlo, esegui il seguente comando gcloud:

gcloud sql instances patch INSTANCE_NAME -- enable-bin-log

Per ulteriori informazioni, consulta Log di tipo binario nelle repliche di lettura.

Quali autorizzazioni minime sono necessarie a Datastream per replicare i dati da un database MySQL di origine?

Per replicare i dati da un database MySQL, devi concedere all'utente Datastream le seguenti autorizzazioni:

  • SELECT
  • REPLICATION SLAVE
  • REPLICATION CLIENT
Datastream supporta la compressione dei log binari?

No, Datastream non supporta la compressione degli eventi di transazione con la compressione delle transazioni dei log binari. Disattiva la compressione delle transazioni del log binario per utilizzare la funzionalità di rilevamento dei dati modificati per MySQL in Datastream.

La tua organizzazione non consente di concedere l'autorizzazione SELECT a tutte le tabelle e a tutti i database. Puoi ancora utilizzare Datastream?

Puoi concedere l'autorizzazione SELECT alle tabelle specifiche che vuoi replicare o all'intero schema di un database. Per farlo, esegui uno dei seguenti comandi:

GRANT SELECT ON DATABASE_NAME.TABLE_NAME TO USER_NAME@'%';
oppure
GRANT SELECT ON DATABASE_NAME.* TO USER_NAME@'%';

Sostituisci quanto segue:

  • DATABASE_NAME: il nome del database MySQL.
  • TABLE_NAME: il nome della tabella a cui stai concedendo l'autorizzazione SELECT.
  • USER_NAME: il nome dell'utente a cui stai concedendo l'autorizzazione SELECT.

Se vuoi limitare le autorizzazioni a un determinato nome host, sostituisci il carattere % con l'indirizzo IP o l'intervallo di indirizzi specifico.

Comportamento e limitazioni dell'origine Oracle

Domanda Risposta
In che modo Datastream estrae i dati da Oracle? Datastream utilizza Oracle LogMiner per estrarre i dati dai redo log di Oracle.
Datastream richiede una licenza GoldenGate di Oracle? No. Datastream non richiede una licenza GoldenGate perché utilizza Oracle LogMiner per leggere i dati dai log di ripetizione del database.
Cosa succede quando Oracle LogMiner non è più supportato? Oracle LogMiner è ancora supportato in tutte le release di Oracle disponibili a livello generale e Datastream continuerà a supportare LogMiner in tutte le release future. Oracle ha interrotto il supporto dell'opzione CONTINUOUS_MINE di LogMiner, ma questa opzione non viene utilizzata da Datastream, pertanto questo ritiro non ha alcun impatto su Datastream.
Datastream supporta la crittografia dei dati in transito dai database Oracle?

Datastream supporta la crittografia dei dati in transito in base a Oracle Net Services. Datastream viene eseguito in modalità REQUESTED.

Datastream supporta la crittografia SSL (Secure Sockets Layer) e TLS (Transport Layer Security)?

Sì, Datastream supporta il protocollo TCPS per le connessioni con crittografia SSL/TLS alle origini Oracle.

Datastream supporta l'architettura multi-tenant Oracle, in particolare i database di container (CDB) e i database modulari (PDB)? Sì, Datastream supporta l'architettura multi-tenant Oracle (CDB/PDB), ma puoi replicare un solo database modulare in uno stream.
La tua organizzazione non consente di concedere l'autorizzazione GRANT SELECT ANY TABLE. Puoi ancora utilizzare Datastream?

Se non puoi concedere l'autorizzazione GRANT SELECT ANY TABLE, puoi concedere le autorizzazioni SELECT al seguente elenco di tabelle:

  • ALL_COL_COMMENTS
  • ALL_CONS_COLUMNS
  • ALL_CONSTRAINTS
  • ALL_DB_LINKS
  • ALL_EXTERNAL_TABLES
  • ALL_IND_COLUMNS
  • ALL_INDEXES
  • ALL_LOG_GROUPS
  • ALL_MVIEWS
  • ALL_OBJECTS
  • ALL_PART_TABLES
  • ALL_SEQUENCES
  • ALL_SOURCE
  • ALL_SYNONYMS
  • ALL_TAB_COLS
  • ALL_TAB_COLUMNS
  • ALL_TAB_COMMENTS
  • ALL_TABLES
  • ALL_TRIGGERS
  • ALL_TRIGGER_COLS
  • ALL_TYPES
  • ALL_USERS
  • ALL_VIEWS
  • DATABASE_PROPERTIES
  • DBA_ROLE_PRIVS
  • DOPPIO
  • PRODUCT_COMPONENT_VERSION
  • ROLE_SYS_PRIVS
  • USER_ROLE_PRIVS
  • USER_TAB_PRIVS

Per trasmettere le modifiche in tempo reale utilizzando Datastream, devi disporre anche dell'accesso in lettura a tutte le tabelle incluse nello stream.

Per avviare lo stream, aggira la convalida utilizzando l'API. Per ulteriori informazioni, vedi Avvia uno stream.

Datastream supporta la replica dalle istanze di replica di lettura Oracle? Datastream supporta la replica dalle istanze di replica di lettura Oracle, a condizione che l'istanza sia configurata in base alle linee guida di configurazione.
Datastream supporta i database Oracle SCAN RAC? Sì. Tuttavia, non puoi stabilire una connettività diretta ai database utilizzando la funzionalità SCAN (Single Client Access Name) negli ambienti Oracle Real Application Clusters (RAC) con Datastream. Per superare questa limitazione, connettiti direttamente a uno dei nodi o utilizza Oracle Connection Manager. Puoi anche creare una configurazione di connettività privata utilizzando soluzioni di reverse proxy come HAProxy.

Comportamento e limitazioni dell'origine PostgreSQL

Domanda Risposta
In che modo Datastream estrae i dati da PostgreSQL? Datastream utilizza la funzionalità di decodifica logica di PostgreSQL per estrarre gli eventi di modifica da PostgreSQL
Datastream supporta la replica da origini AlloyDB per PostgreSQL o AlloyDB Omni? Sì. Datastream supporta entrambe queste origini. Per informazioni sulla configurazione del database AlloyDB per PostgreSQL di origine, consulta Configurare un database AlloyDB per PostgreSQL. Per informazioni sulla configurazione del database AlloyDB Omni di origine, consulta Configurare un database PostgreSQL autogestito.
Datastream supporta la replica da un'istanza di replica di lettura PostgreSQL? Sì, Datastream supporta la replica dalle istanze di replica di lettura per le versioni PostgreSQL 16 e successive.
Datastream supporta la sicurezza a livello di riga (RLS)? Datastream non supporta la replica delle tabelle con RLS abilitato. Tuttavia, puoi aggirare questa limitazione utilizzando la clausola BYPASSRLS:
ALTER USER USER_NAME BYPASSRLS;

Sostituisci USER_NAME con il nome dell'utente utilizzato da Datastream per connettersi al database e per il quale vuoi ignorare i criteri RLS.

Datastream supporta le operazioni CDC concorrenti durante la replica da un'origine PostgreSQL?

No. La replica PostgreSQL si basa sul concetto di slot di replica e questi ultimi non supportano le connessioni simultanee. Può essere eseguita una sola attività CDC alla volta che legge dallo slot di replica. Ad esempio, se elimini un numero elevato di record dal database di origine, lo slot di replica potrebbe essere sovraccaricato di eventi di eliminazione. Eventuali modifiche successive all'origine vengono ritardate fino all'elaborazione degli eventi di eliminazione già presenti nella coda dello slot di replica.

Per informazioni sull'approccio suggerito per la replica di dati sulle transazioni di grandi dimensioni, consulta Risolvere i problemi.

Datastream supporta la crittografia SSL (Secure Sockets Layer) e TLS (Transport Layer Security)?

Datastream supporta le connessioni con crittografia SSL/TLS che non richiedono certificati client.

Comportamento e limitazioni dell'origine SQL Server

Domanda Risposta
Quali versioni di SQL Server sono supportate da Datastream? Datastream supporta le versioni del database SQL Server che supportano il CDC (Change Data Capture). Per un elenco completo delle versioni e delle edizioni di SQL Server supportate, consulta Versioni.
Come funziona la replica CDC di Datastream per le origini SQL Server? Il processo di importazione dati di Datastream utilizza i log delle transazioni o le tabelle di variazione, a seconda della configurazione dell'origine. Per ulteriori informazioni, consulta Database SQL Server di origine.
Quali autorizzazioni minime sono necessarie a Datastream per replicare i dati da un database SQL Server di origine?

Per replicare i dati da un database SQL Server, devi concedere all'utente Datastream i seguenti ruoli e autorizzazioni:

Per il metodo CDC delle tabelle di modifica:

  • db_owner
  • db_denydatawriter

Inoltre, per il metodo CDC dei log delle transazioni:

  • Autorizzazioni SELECT per il database e per la funzione sys.fn_dblog
  • Autorizzazioni SELECT per la tabella dbo.sysjobs
  • VIEW SERVER STATE
  • Per informazioni dettagliate sulla configurazione dell'origine, consulta le rispettive pagine di configurazione per il tipo di database.

Perché è necessaria una configurazione come la modifica degli intervalli di polling e l'impostazione di un sistema di protezione contro il troncamento quando si utilizzano i log delle transazioni? Quando replichi i dati da un'origine SQL Server utilizzando i log delle transazioni, se un log viene troncato prima che Datastream lo legga, si verifica una perdita di dati. La modifica degli intervalli di polling e la configurazione del salvaguardia del troncamento sono facoltativi, ma forniscono un ulteriore livello di protezione per garantire che Datastream possa leggere i dati anche in scenari in cui si verificano tempi di riposo o problemi di connettività. Per ulteriori informazioni, consulta Configurare un database SQL Server di origine.
Quale metodo CDC selezionare durante la replica da un'origine SQL Server?

Puoi selezionare uno dei due metodi CDC disponibili, in base alla configurazione del database SQL Server di origine:

  • Log delle transazioni: seleziona questo metodo per elaborare le modifiche direttamente dai log del database. Questo metodo fornisce le migliori prestazioni ed è più efficiente, ma richiede passaggi di configurazione aggiuntivi che potrebbero non essere supportati dal database.
  • Tabelle delle modifiche: seleziona questo metodo per elaborare le modifiche da tabelle delle modifiche dedicate. Questo metodo è più semplice da configurare e ha meno limitazioni, ma supporta una maggiore velocità in uscita e aumenta il carico sul database.

Per ulteriori informazioni, consulta la panoramica di SQL Server come origine.

Comportamento della destinazione BigQuery

Domanda Risposta
In che modo Datastream e BigQuery collaborano per replicare le modifiche dal database di origine? Datastream legge continuamente lo stream delle modifiche dal database di origine e trasmette gli eventi di upsert ed eliminazione alle tabelle di destinazione BigQuery utilizzando l'API Storage Write. BigQuery applica quindi le modifiche alla tabella in base alla configurazione dell'obsolescenza della tabella.
Come vengono applicate le operazioni di Data Manipulation Language (DML) in BigQuery?
  • Nella modalità Solo accodamento, i dati vengono aggiunti in BigQuery come stream di modifiche, con una riga separata per ogni evento INSERT, UPDATE-INSERT, UPDATE-DELETE e DELETE.
  • Nella modalità Unione (predefinita), quando Datastream crea una tabella in BigQuery, imposta le chiavi principali nella tabella in base alle chiavi principali definite nell'origine. BigQuery elabora gli eventi e applica le modifiche alla tabella BigQuery sottostante in base alle chiavi primarie della tabella di origine. Se la tabella di origine non ha una chiave primaria, viene trattata come se fosse stata utilizzata la modalità Solo accodamento.
In che modo Datastream e BigQuery gestiscono l'ordinamento degli eventi? BigQuery utilizza i metadati degli eventi e un numero di sequenza di modifiche (CSN) interno per applicare gli eventi alla tabella nell'ordine corretto. Per saperne di più sui metadati degli eventi, consulta Eventi e stream.
Come vengono calcolati i costi di BigQuery se utilizzati con Datastream? I costi di BigQuery vengono calcolati e addebitati separatamente da Datastream. Per scoprire come controllare i costi di BigQuery, consulta Prezzi di BigQuery CDC.
Qual è la dimensione massima delle righe supportata da Datastream durante l'inserimento di flussi di dati in BigQuery? La dimensione massima della riga supportata da Datastream è 20 MB.
Quando esegui lo streaming in BigQuery, le tabelle vengono precedute dal prefisso _. Puoi modificare questo comportamento in modo che le tabelle in BigQuery seguano la stessa struttura del database di origine? Quando configuri i set di dati per una destinazione BigQuery, crei un set di dati per ogni schema o un unico set di dati per tutti gli schemi. Quando crei un set di dati per ogni schema, ogni schema nell'origine viene mappato a un set di dati in BigQuery e tutte le tabelle nello schema di origine vengono mappate alle tabelle del set di dati. Quando selezioni l'opzione del singolo set di dati per tutti gli schemi, i nomi delle tabelle vengono preceduti da _, in base alla convenzione di denominazione delle tabelle in BigQuery.
Il CDC può acquisire le modifiche allo schema dell'origine, ad esempio quando una colonna viene inserita o eliminata nell'origine? Queste modifiche vengono applicate automaticamente alle tabelle già compilate nei set di dati BigQuery di destinazione? Datastream rileva automaticamente le nuove colonne e le aggiunge allo schema di destinazione per le nuove righe, ma non a quelle già replicate nella destinazione. Le colonne eliminate vengono ignorate e Datastream le compila con valori NULL nella destinazione. Puoi quindi eliminare manualmente queste colonne in BigQuery.

Comportamento della destinazione Cloud Storage

Domanda Risposta
Come vengono creati i file in Cloud Storage? Datastream crea una cartella per ogni tabella. In ogni cartella, Datastream esegue la rotazione del file (o ne crea uno nuovo) ogni volta che raggiunge la soglia di dimensione o tempo definita dall'utente. Datastream ruota anche il file ogni volta che viene rilevata una modifica dello schema. Il nome del file sarà composto da una chiave dello schema univoca (basata su un hash dello schema), seguita dal timestamp del primo evento nel file. Per motivi di sicurezza, questi nomi file non sono pensati per essere letti o compresi dalle persone.
Se i dati in Cloud Storage non sono ordinati, come è possibile riordinare gli eventi prima di caricarli nella destinazione?

Ogni evento contiene diversi campi di metadati che identificano in modo univoco la riga nei file di log e ti consentono di ordinare gli eventi. Questi campi includono:

Per le origini Oracle:

  • rs_id (ID set di record), che in realtà è composto da tre valori (ad esempio 0x0073c9.000a4e4c.01d0). rs_id identifica in modo univoco il record all'interno del log di ripristino.
  • ssn (numero di sequenza SQL), che viene utilizzato quando il record nel log di ripristino è troppo lungo. Per questo motivo, Oracle LogMiner suddivide il record in più righe.

Per le origini MySQL:

  • log_file, da cui Datastream estrae gli eventi nella replica CDC.
  • log_position, che identifica l'offset del record nel log binario di MySQL.

Per le origini PostgreSQL:

  • source_timestamp, ovvero il timestamp della modifica del record nell'origine. Se i valori source_timestamp per gli eventi in fase di ordinamento sono identici, confronta i valori lsn.
  • lsn (numero di sequenza del log), che identifica l'offset del record nel file di log WAL.

Per ulteriori informazioni sui campi dei metadati, consulta Metadati specifici della sorgente.

Se vengono creati più file per lo stesso timestamp, in quale ordine devono essere elaborati? Poiché l'ordinamento all'interno e tra i file non è garantito, il modo migliore per determinare l'ordine di elaborazione dei file per l'origine è recuperare tutti gli eventi da tutti i file per il timestamp specifico e poi applicare l'ordinamento utilizzando il metodo menzionato in precedenza in questa sezione.
Come vengono gestiti gli aggiornamenti chiave primaria? L'evento contiene informazioni prima e dopo? Quando la chiave primaria di una riga cambia, Datastream genera due eventi per la modifica: un UPDATE-DELETE e un UPDATE-INSERT. L'evento UPDATE-DELETE rappresenta i dati prima dell'aggiornamento e UPDATE-INSERT quelli dopo l'aggiornamento. Per saperne di più sui metadati specifici delle origini, consulta Eventi e stream.
Qual è la dimensione massima delle righe supportata da Datastream durante lo streaming dei dati in Cloud Storage? La dimensione massima della riga supportata da Datastream è 100 MB.

Casi d'uso

Domanda Risposta
Quali sono alcuni casi d'uso comuni per l'utilizzo di Datastream?

Datastream è un servizio CDC e di replica, il che significa che è flessibile per vari casi d'uso che possono trarre vantaggio dall'accesso ai dati sulle modifiche in streaming continuo. I casi d'uso più comuni di Datastream sono:

  1. Analytics:replicando direttamente i dati in BigQuery, i clienti possono accedere a dati operativi aggiornati in BigQuery. I clienti possono utilizzare questi dati aggiornati continuamente in BigQuery per creare dashboard aggiornate sui propri dati. Questo può essere utilizzato, ad esempio, per il monitoraggio dei sistemi e per ottenere informazioni aggiornate sullo stato dell'attività.
  2. Scenari di replica e sincronizzazione dei database: integrando Datastream con i modelli Dataflow per il caricamento dei dati in Cloud SQL o Spanner, puoi ottenere una replica aggiornata dei dati di origine in questi database. Puoi utilizzare questi dati aggiornati continuamente nei database di destinazione per una migrazione del database con tempi di inattività ridotti dall'origine alla destinazione o per configurazioni di cloud ibrido, in cui l'origine e la destinazione si trovano in ambienti di hosting diversi.
  3. Architetture basate su eventi:le architetture moderne basate su microservizi si basano su hub centrali di dati che vengono aggiornati continuamente con eventi provenienti da tutta l'organizzazione per essere basate su eventi. Scrivendo continuamente i dati sugli eventi in destinazioni come BigQuery e Cloud Storage, puoi creare architetture basate su eventi che si basano sul consumo di dati sugli eventi da queste destinazioni.

Integrazioni

Domanda Risposta
In che modo Datastream si integra con i servizi di dati di Google Cloud?

Datastream integra e migliora la suite di dati di Google Cloud fornendo la replica dei dati CDC dalle origini a vari servizi Google Cloud. Grazie all'integrazione perfetta con questi servizi, Datastream si inserisce nell'ecosistema più ampio di Google Cloud.

Datastream si integra con i seguenti servizi di dati:

  • BigQuery: Datastream utilizza l'API BigQuery Write per integrarsi direttamente con BigQuery. Datastream scrive gli eventi di modifica direttamente nel set di dati BigQuery, dove le modifiche vengono unite continuamente (UPSERT) ai dati esistenti.
  • Dataflow:Datastream si integra con Dataflow utilizzando i modelli Dataflow. Questi modelli leggono i dati da Cloud Storage e li caricano in BigQuery, Cloud SQL per PostgreSQL o Spanner. Lo scopo di questi modelli è mantenere aggiornate le tabelle di origine replicate nelle destinazioni. I modelli sono disponibili nell'interfaccia utente di Dataflow e sono progettati per i file generati da Datastream per l'elaborazione pronta all'uso.
  • Cloud Storage:Datastream si integra con Cloud Storage scrivendovi come destinazione del flusso di modifiche.
  • Cloud SQL e Spanner: utilizzando i modelli Datastream e Dataflow, puoi mantenere aggiornate le tabelle replicate nei database.
Il modello Datastream a BigQuery in Dataflow presenta limitazioni per il numero di operazioni DML (Data Manipulation Language)? No. Il modello utilizza l'API Inserts streaming per caricare i dati in BigQuery. Di conseguenza, non esiste un limite al numero di operazioni DML. Tuttavia, sono applicabili alcune limitazioni di quota.

Sicurezza e connettività

Domanda Risposta
Datastream è un servizio sicuro per i dati sensibili? Datastream supporta più configurazioni di connettività privata e sicura per proteggere i dati in transito durante lo streaming da un'origine a una destinazione. Una volta replicati, i dati vengono criptati per impostazione predefinita e sfruttano i controlli di sicurezza di BigQuery o Cloud Storage. Tutti i dati memorizzati nel buffer da Datastream sono criptati at-rest.
Quali opzioni di connettività sono disponibili per collegare le origini a Datastream?

Puoi configurare tre tipi di metodi di connettività:

  • Lista consentita di IP:questo metodo ti offre la connettività pubblica inserendo gli indirizzi IP regionali di Datastream nella lista consentita nell'origine. Quando crei lo stream, Datastream mostra questi indirizzi IP nell'interfaccia utente.
  • Tunnel SSH di forwarding:questo metodo ti offre connettività sicura su reti pubbliche sfruttando un bastion SSH configurato dal cliente, oltre a inserire gli indirizzi IP regionali nella lista consentita.
  • Connettività privata tramite il peering VPC:utilizza questo metodo per connetterti ai database ospitati su Google Cloud tramite la rete interna di Google Cloud oppure sfrutta una VPN o un Interconnect esistente stabilendo il peering VPC tra la rete privata di Datastream e la VPC Google Cloud della tua organizzazione.
Come faccio a limitare l'elaborazione dei dati sensibili da parte di Datastream?

Datastream ti consente di specificare quali elementi di dati specifici (schemi, tabelle e colonne) dell'origine vuoi trasmettere in streaming in una destinazione e quali elementi vuoi escludere dal flusso.

I log del database potrebbero contenere dati sulle modifiche di elementi esclusi nella definizione dello stream. Poiché non puoi filtrare questi elementi all'origine, Datastream leggerà, ma ignorerà, tutti i dati associati agli elementi.

In che modo Datastream mantiene al sicuro le credenziali del database? Tutti i metadati utente (inclusi il nome utente e la password utilizzati per accedere alle origini dati) sono criptati in transito e at-rest e Google li archivia nei propri sistemi di archiviazione proprietari. L'accesso a questi metadati viene monitorato e sottoposto a controllo.
Perché nella pagina Crea una configurazione di connettività privata viene indicato che devi concedere il ruolo roles/compute.networkAdmin all'account di servizio Datastream per creare una configurazione di connettività privata in un VPC condiviso? Il ruolo networkAdmin è necessario solo per creare il peering VPC. Una volta stabilito il peering, il ruolo non è più necessario. Se la tua organizzazione non consente di concedere il ruolo networkAdmin all'account di servizio Datastream, crea un ruolo personalizzato con le seguenti autorizzazioni specifiche:

Selezionare gli intervalli IP in modo dinamico

  • compute.routes.get
  • compute.routes.list
  • compute.subnetworks.get
  • compute.subnetworks.list

Creare reti con pari

  • compute.globalOperations.get
  • compute.networks.addPeering
  • compute.networks.removePeering
  • compute.networks.get

Prenotare indirizzi IP

  • compute.globalAddresses.get
  • compute.globalAddresses.create
  • compute.globalAddresses.createInternal
  • compute.globalAddresses.delete
  • compute.globalAddresses.deleteInternal
  • compute.networks.use
  • compute.networks.listPeeringRoutes
Posso utilizzare Private Service Connect per creare una configurazione di connettività privata? No, Datastream non supporta Private Service Connect.

Monitorare Datastream

Domanda Risposta
Come faccio a sapere quando tutti i miei dati storici sono stati copiati nella destinazione? Datastream fornisce informazioni sul suo stato attuale nei file di log. Viene creata una voce di log per indicare quando il backfill di una tabella è stato completato.
A volte la latenza aumenta e poi diminuisce gradualmente nel tempo. È normale? Datastream esegue il ridimensionamento automatico quando il throughput degli eventi generato dall'origine aumenta. Tuttavia, per proteggere sia il database di origine sia Datastream, esistono limiti al numero di connessioni e processi simultanei che Datastream può aprire in qualsiasi momento. Si prevedono picchi temporanei di latenza quando si verifica un aumento significativo del throughput degli eventi e si prevede che diminuiscano gradualmente man mano che la coda di eventi viene elaborata.

Prezzi

Domanda Risposta
Come vengono stabiliti i prezzi di Datastream?

I prezzi di Datastream si basano sul volume (GB) di dati elaborati dall'origine in una destinazione.

Per scoprire di più sulle informazioni sui prezzi di Datastream, consulta Prezzi.

Come vengono calcolate le dimensioni dei dati? La fatturazione viene calcolata in base alle dimensioni dei dati elaborati da Datastream. Datastream addebita solo i dati in streaming nella destinazione.
Se utilizzi Datastream con BigQuery o Dataflow, cosa paghi? Ogni servizio viene valutato e addebitato separatamente.

Informazioni aggiuntive

Domanda Risposta
Che cosa devo fare se ho altre domande o problemi con l'utilizzo di Datastream? Il team di assistenza di Google può aiutarti in caso di problemi con l'utilizzo di Datastream. Inoltre, la guida alla risoluzione dei problemi tratta i problemi comuni che potresti riscontrare durante l'utilizzo di Datastream.

Passaggi successivi