Domande frequenti

In questa pagina trovi le risposte alle domande frequenti (FAQ) sull'utilizzo di Datastream. Queste domande frequenti sono associate a:

  • Domande generali su Datastream e Change Data Capture (CDC)
  • Comportamento e limitazioni generali delle fonti
  • 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 e limitazioni dell'origine Salesforce
  • 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 Google Cloud
  • Sicurezza e connettività
  • Monitoraggio di Datastream
  • Prezzi
  • Ulteriori informazioni su Datastream

Domande generali su Datastream e Change Data Capture (CDC)

Domanda Risposta
Che cos'è Datastream?

Datastream è un servizio Change Data Capture (CDC) e di replica dei dati serverless e facile da usare. Datastream consente la replica perfetta dei dati da origini di database relazionali come AlloyDB per PostgreSQL, PostgreSQL, MySQL, SQL Server e Oracle, nonché da Salesforce e MongoDB, 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 una pipeline ELT (Extract, Load, and Transform) per la replica dei dati a bassa latenza, consentendo insight quasi in tempo reale.

Datastream è anche in grado di sincronizzare i flussi di dati in database e applicazioni eterogenei in modo affidabile e con latenza minima. Puoi integrare il servizio con i modelli Dataflow per replicare i database in Cloud SQL o Spanner per la sincronizzazione dei database oppure sfruttare il flusso di eventi direttamente da Cloud Storage per creare 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: acquisizione delle modifiche in corso dall'origine in tempo reale.
  • Backfill: fornisce uno snapshot cronologico dei dati presenti 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. È 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.

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

CDC può essere utilizzato 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 distribuiti geograficamente 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 "riempita" con tutti i dati storici dell'origine. Esistono due tipi di backfill:

  • Incrementale: il tipo predefinito di riempimento 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 batch.
  • Dump completo: durante il backfill del dump completo, Datastream estrae tutti i dati contemporaneamente e li trasmette in streaming a 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 è prevista alcuna considerazione speciale. Quando il backfill è abilitato su uno stream, Datastream esegue sia il backfill che la CDC contemporaneamente. In alcuni casi limite, ad esempio quando si replicano tabelle molto grandi che non possono essere riempite utilizzando Datastream, potrebbe essere necessario caricare prima i dati in BigQuery prima di avviare lo stream.
Posso monitorare lo stato delle operazioni CDC e di 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 CDC è effettivamente lo stato dello stream. Se l'operazione CDC non va a buon fine, l'intero flusso non va a buon fine.

In Cloud Monitoring sono disponibili metriche aggiuntive a livello di oggetto. Per saperne di più, 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 downstream. 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.

Replica nel contesto di Datastream indica una rappresentazione aggiornata e 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 aggiornata utilizzando le modifiche trasmesse in streaming dalla tabella Oracle. La replica sfrutta modifiche in tempo reale consumando ogni evento di modifica e utilizzandolo 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 modelli che estraggono gli eventi del flusso di modifiche da Cloud Storage e aggiornano le tabelle di destinazione di conseguenza.

Datastream richiede un agente sull'origine? Non devi installare un agente sull'origine. 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 singolo stream. Non esiste alcun motivo tecnico per dividere 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 carico al database di origine. Questo carico è trascurabile per CDC, ma può essere significativo per il backfill.
Qual è l'impatto sulle prestazioni dell'utilizzo di Datastream su un database di produzione?

CDC è un meccanismo molto efficiente per limitare l'impatto sull'origine quando vengono caricati nuovi dati nei datastore e nei data warehouse di destinazione. CDC elimina anche la necessità di aggiornamenti con caricamento collettivo e finestre batch scomode, consentendo il caricamento incrementale o lo streaming quasi in tempo reale delle modifiche ai 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 del database dell'origine specificata, in parallelo al flusso CDC. Datastream ti offre la flessibilità di ottenere dati storici da alcune o da tutte le tabelle del database nell'origine. Inoltre, quando configuri lo stream, puoi scegliere di disattivare il riempimento storico.
Datastream garantisce la consegna "exactly-once"? No. Datastream esegue la 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 nella destinazione. Tuttavia, le viste materializzate non possono essere replicate.
Come si sposta un flusso 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 Riempi i dati storici.
  2. Avvia lo stream che hai creato.
  3. Dopo che 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 Backfill dati storici. I dati esistenti nelle tabelle aggiunte allo stream in futuro verranno trasmessi dall'origine alla destinazione.
Come gestisce Datastream le transazioni non sottoposte a commit nei file di log del database? Quando i file di log del database contengono transazioni non sottoposte a commit, se vengono eseguite operazioni di rollback, il database lo riflette nei file di log come operazioni di data manipulation language (DML) "inversa". Ad esempio, un'operazione INSERT sottoposta a 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 e limitazioni generali delle fonti

Domanda Risposta
Quali origini supporta Datastream?

Datastream supporta i flussi di dati dalle origini Oracle, MySQL, PostgreSQL, AlloyDB per PostgreSQL, SQL Server, Salesforce (anteprima) e MongoDB (anteprima), sia ospitate sul cloud sia autogestite. Per informazioni sulle versioni specifiche delle origini, 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 le impostazioni di logging supplementare 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 eseguite 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'intero contenuto dei 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 di database specifiche.

Le limitazioni generali includono:

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

Per le limitazioni specifiche per le fonti, consulta le seguenti pagine:

Quali dati sono 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 evento che possono essere utilizzati per stabilire l'ordinamento e garantire la distribuzione esattamente una volta.
Datastream garantisce l'ordine? Sebbene Datastream non garantisca l'ordinamento, fornisce metadati aggiuntivi per ogni evento. Questi metadati possono essere utilizzati per garantire la coerenza finale nella destinazione. A seconda della sorgente, della velocità e della frequenza delle modifiche e di altri parametri, la coerenza finale può essere generalmente raggiunta entro un'ora.
Datastream garantisce la consegna "exactly-once"? Datastream esegue la 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 scrive in una destinazione senza schema, come Cloud Storage, Datastream semplifica l'elaborazione downstream dei dati 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 Datastream.

I tipi unificati rappresentano un superset senza perdita di tutti i possibili tipi di origine e la normalizzazione significa che i dati provenienti da origini diverse possono essere elaborati con il minimo sforzo ed eseguiti downstream 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 registro degli schemi interno di Datastream e ogni evento fa riferimento allo schema al momento della generazione. In questo modo, Datastream può monitorare le modifiche allo schema e apportare modifiche in base a queste modifiche, garantendo che tutti i dati vengano trasmessi in streaming e caricati correttamente nella destinazione. Tuttavia, tra un recupero e l'altro dello schema, alcune modifiche potrebbero non essere rilevate, causando potenzialmente discrepanze nei dati.
Ho eliminato (eliminato) 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.
Il flusso non viene avviato a causa di un errore di convalida, ma ritengo che si tratti di un errore o voglio provare a eseguire il flusso comunque. Come posso 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 l'esecuzione dello stream e potrebbe comunque non riuscire se nel database mancano la configurazione o le autorizzazioni necessarie.
Posso riavviare uno stream non riuscito?

Puoi correggere uno stream con lo stato Failed risolvendo gli errori segnalati da Datastream. Per saperne di più, consulta l'articolo Risolvere i problemi relativi a uno stream.

Puoi anche recuperare un flusso con lo stato Failed permanently. Per ulteriori informazioni, vedi Recuperare un flusso.

Datastream blocca le tabelle del database?

No, Datastream non deve bloccare le tabelle.

Le pagine dei limiti per ogni origine specificano che i flussi possono contenere fino a 10.000 tabelle. Significa che Datastream non può eseguire operazioni CDC in parallelo per più di 10.000 tabelle contemporaneamente? No. Il limite menzionato 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 versioni 5.7 e 8.0.

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

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

Per ulteriori informazioni, consulta Registrazione binaria sulle repliche di lettura.

Quali autorizzazioni minime deve avere Datastream per replicare i dati da un database MySQL di origine?

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

  • SELECT
  • REPLICATION SLAVE
  • REPLICATION CLIENT
Datastream supporta la compressione binlog?

No, Datastream non supporta la compressione degli eventi di transazione con la compressione delle transazioni del log binario. Disattiva la compressione delle transazioni del log binario per utilizzare la funzionalità Change Data Capture per MySQL in Datastream.

La tua organizzazione non consente di concedere l'autorizzazione SELECT su tutte le tabelle e 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 nome host specifico, 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 redo log del database.
Cosa succede quando Oracle LogMiner non è più supportato? Oracle LogMiner è ancora supportato in tutte le versioni Oracle disponibili a livello generale e Datastream continuerà a supportare LogMiner in tutte le versioni future. Oracle ha interrotto il supporto dell'opzione CONTINUOUS_MINE di LogMiner, ma questa opzione non viene utilizzata da Datastream, pertanto il 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 criptate SSL/TLS alle origini Oracle.

Datastream supporta l'architettura multitenant Oracle, in particolare i database di container (CDB) e i database modulari (PDB)? Sì, Datastream supporta l'architettura multitenant Oracle (CDB/PDB), ma puoi replicare un solo database pluggable in uno stream.
La tua organizzazione non consente la concessione dell'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
  • DUAL
  • PRODUCT_COMPONENT_VERSION
  • ROLE_SYS_PRIVS
  • USER_ROLE_PRIVS
  • USER_TAB_PRIVS

Per trasmettere in streaming le modifiche utilizzando Datastream, devi anche disporre dell'accesso in lettura a tutte le tabelle incluse nel flusso.

Per avviare lo stream, ignora la convalida utilizzando l'API. Per ulteriori informazioni, vedi Avviare 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 per la configurazione.
Datastream supporta i database Oracle SCAN RAC? Sì, è così. Tuttavia, non puoi stabilire una connettività diretta ai database utilizzando la funzionalità Single Client Access Name (SCAN) negli ambienti Oracle Real Application Clusters (RAC) utilizzando 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 dalle 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? No, Datastream non supporta la replica dalle istanze di replica di lettura per PostgreSQL.
Datastream supporta la sicurezza a livello di riga (RLS)? Datastream non supporta la replica di tabelle con RLS abilitata. 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 operazioni CDC simultanee durante la replica da un'origine PostgreSQL?

No. La replica PostgreSQL si basa sul concetto di slot di replica e gli slot di replica non supportano connessioni simultanee. Può esserci una sola attività CDC che legge dallo slot di replica alla volta. Ad esempio, se elimini un numero elevato di record dal database di origine, lo slot di replica potrebbe essere sovraccarico 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 grandi quantità di dati sulle transazioni, consulta Diagnosticare i problemi.

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

Sì, Datastream supporta le connessioni criptate con SSL/TLS.

Comportamento e limitazioni dell'origine SQL Server

Domanda Risposta
Quali versioni di SQL Server supporta Datastream? Datastream supporta le versioni del database SQL Server che supportano 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 delle modifiche, a seconda della configurazione dell'origine. Per saperne di più, consulta Database SQL Server di origine.
Quali sono le autorizzazioni minime 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 i seguenti ruoli e autorizzazioni all'utente Datastream:

Per il metodo CDC delle tabelle delle modifiche:

  • db_owner
  • db_denydatawriter

Inoltre, per il metodo CDC dei log delle transazioni:

  • Autorizzazioni SELECT sul database e per la funzione sys.fn_dblog
  • Autorizzazioni SELECT nella 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 una salvaguardia del 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 della salvaguardia del troncamento sono facoltative, ma forniscono un ulteriore livello di protezione per garantire che Datastream possa leggere i dati anche in scenari in cui si verificano tempi di inattività 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 dalle tabelle delle modifiche dedicate. Questo metodo è più semplice da configurare e ha meno limitazioni, ma supporta una velocità effettiva inferiore e aumenta il carico sul database.

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

Comportamento e limitazioni dell'origine Salesforce

Domanda Risposta
Che cos'è un'organizzazione Salesforce? Un'organizzazione Salesforce, chiamata anche organizzazione, è la tua implementazione dedicata di Salesforce, simile a un'istanza di database. Un'organizzazione ha un insieme definito di utenti con licenza e archivia tutti i dati e le applicazioni dei clienti.
Che cosa sono gli oggetti, i record e i campi di Salesforce?

Un oggetto è un'entità di classe ed è simile a una tabella nella nomenclatura dei database relazionali. Possono essere standard o personalizzati. Gli oggetti standard sono inclusi in Salesforce per impostazione predefinita, mentre gli oggetti personalizzati vengono creati dagli utenti per archiviare dati specifici per il loro caso d'uso.

Un record è un'istanza specifica di un oggetto, simile a una riga nei database relazionali.

Un campo è un attributo specifico di un oggetto, simile a una colonna nei database relazionali.

Comportamento della destinazione BigQuery

Domanda Risposta
In che modo Datastream e BigQuery collaborano per replicare le modifiche dal database di origine? Datastream legge continuamente il flusso di modifiche dal database di origine e trasmette in streaming 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 DML (Data Manipulation Language) in BigQuery?
  • Nella modalità Solo accodamento, i dati vengono accodati in BigQuery come flusso di modifiche, con una riga separata per ogni evento INSERT, UPDATE-INSERT, UPDATE-DELETE e DELETE.
  • Nella modalità Unione (impostazione predefinita), quando Datastream crea una tabella in BigQuery, imposta le chiavi primarie nella tabella in base alle chiavi primarie 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 modifica (CSN) interno per applicare gli eventi alla tabella nell'ordine corretto. Per saperne di più sui metadati degli eventi, consulta Eventi e flussi di dati.
Come vengono calcolati i costi di BigQuery quando viene utilizzato con Datastream? I costi di BigQuery vengono calcolati e addebitati separatamente da Datastream. Per scoprire come controllare i costi di BigQuery, consulta la pagina Prezzi di BigQuery CDC.
Qual è la dimensione massima delle righe supportata da Datastream durante lo streaming dei dati in BigQuery? La dimensione massima della riga supportata da Datastream è 20 MB.
Quando esegui lo streaming su BigQuery, le tabelle hanno il 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 nel set di dati. Quando selezioni l'opzione di un singolo set di dati per tutti gli schemi, i nomi delle tabelle hanno il prefisso _, in base alla convenzione di denominazione delle tabelle in BigQuery.
CDC può acquisire le modifiche allo schema di origine, ad esempio quando una colonna viene inserita o eliminata nell'origine? Queste modifiche vengono automaticamente riportate nelle 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 per quelle già replicate nella destinazione. Le colonne eliminate vengono ignorate e Datastream le popola 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 ruota il file (o ne crea uno nuovo) ogni volta che raggiunge la soglia di dimensioni o tempo definita dall'utente. Datastream ruota il file anche 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 destinati a essere letti o compresi dalle persone.
Se i dati in Cloud Storage non sono ordinati, come possono essere riordinati gli eventi prima di essere caricati nella destinazione?

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

Per le origini Oracle:

  • rs_id (ID set di record), che è 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), utilizzato quando il record nel log di rollforward è 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 MySQL.

Per le origini PostgreSQL:

  • source_timestamp, ovvero il timestamp della modifica del record nell'origine. Se i valori di source_timestamp per gli eventi che stai ordinando sono identici, confronta i valori di 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, vedi Metadati specifici dell'origine.

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 è ottenere tutti gli eventi da tutti i file per il timestamp specifico, quindi 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, mentre UPDATE-INSERT rappresenta i dati dopo l'aggiornamento. Per saperne di più sui metadati specifici dell'origine, vedi 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 in vari casi d'uso che possono trarre vantaggio dall'accesso ai dati di modifica in streaming continuo. I casi d'uso più comuni per Datastream sono:

  1. Analytics:replicando direttamente i dati in BigQuery, i clienti possono accedere ai dati operativi aggiornati in BigQuery. I clienti possono utilizzare questi dati aggiornati continuamente in BigQuery per creare dashboard aggiornate sui propri dati. Questi dati possono essere utilizzati, 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 cloud ibrido, in cui l'origine e la destinazione si trovano in ambienti di hosting diversi.
  3. Architetture basate su eventi:le moderne architetture 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 dei dati sugli eventi da queste destinazioni.

Integrazioni

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

Datastream integra e migliora la Google Cloud suite di dati 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 Google Cloud più ampio.

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 in cui le modifiche vengono unite continuamente (UPSERT) ai dati esistenti.
  • Dataflow:Datastream può integrarsi 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 creati per i file generati da Datastream per l'elaborazione predefinita.
  • Cloud Storage:Datastream si integra con Cloud Storage scrivendo in questo servizio come destinazione di streaming delle 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 ha limitazioni per il numero di operazioni DML (Data Manipulation Language)? No. Il modello utilizza l'API di inserimento dei flussi 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 diverse configurazioni di connettività sicura e privata per proteggere i dati in transito durante lo streaming da un'origine a una destinazione. Dopo la replica, 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 connettere le origini a Datastream?

Esistono tre tipi di metodi di connettività che puoi configurare:

  • Lista consentita di IP:questo metodo ti offre la connettività pubblica consentendo gli indirizzi IP regionali di Datastream nell'origine. Quando crei lo stream, Datastream visualizza questi indirizzi IP nell'interfaccia utente.
  • Tunnel SSH di forwarding:questo metodo fornisce una connettività sicura su reti pubbliche sfruttando un bastion SSH configurato dal cliente, oltre a consentire gli indirizzi IP regionali.
  • Connettività privata tramite peering VPC: utilizza questo metodo per connetterti ai tuoi database ospitati su Google Cloudtramite la rete interna di Google Cloudo sfrutta una connessione VPN o Interconnect esistente stabilendo il peering VPC tra la rete privata di Datastream e il VPC Google Cloud della tua organizzazione.
Come posso limitare il trattamento 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 a una destinazione e quali elementi vuoi escludere dalla trasmissione in streaming.

I log del database potrebbero contenere dati di modifica di elementi esclusi nella definizione del flusso. Poiché non puoi filtrare questi elementi nell'origine, Datastream leggerà, ma ignorerà, tutti i dati associati agli elementi.

In che modo Datastream protegge le credenziali del database? Indipendentemente dal fatto che utilizzi Secret Manager per archiviare la password o che la inserisca manualmente quando crei il profilo di connessione, tutti i metadati utente vengono criptati in transito e inattivi e Google li archivia nei suoi sistemi di archiviazione proprietari. L'accesso a questi metadati viene monitorato e sottoposto ad audit.
Perché la pagina Crea una configurazione di connettività privata indica che devi concedere il ruolo roles/compute.networkAdmin all'account di servizio Datastream per creare una configurazione di connettività privata su un VPC condiviso? Il ruolo networkAdmin è necessario solo per creare il peering VPC. Una volta stabilito il peering, non hai più bisogno del ruolo. Se la tua organizzazione non consente la concessione del ruolo networkAdmin all'account di servizio Datastream, crea un ruolo personalizzato con le seguenti autorizzazioni specifiche:

Seleziona intervalli IP in modo dinamico

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

Crea reti in peering

  • 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 backfilling di una tabella è terminato.
A volte la latenza aumenta e poi diminuisce gradualmente nel tempo. È normale? Datastream viene scalato automaticamente quando aumenta la velocità effettiva degli eventi generati dall'origine. 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. Sono previsti picchi temporanei di latenza in caso di aumento significativo del throughput degli eventi, che dovrebbero diminuire gradualmente man mano che il backlog di eventi viene elaborato.

Prezzi

Domanda Risposta
Come vengono calcolati i prezzi di Datastream?

Il prezzo di Datastream si basa sul volume (GB) di dati elaborati dall'origine a una destinazione.

Per saperne di più 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 trasmessi in streaming nella destinazione.
Se utilizzi Datastream con BigQuery o Dataflow, cosa paghi? Ogni servizio ha un prezzo e viene addebitato separatamente.

Informazioni aggiuntive

Domanda Risposta
Cosa devo fare se ho altre domande o problemi con l'utilizzo di Datastream? Il team di assistenza di Google può fornire supporto 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