Domande frequenti

Panoramica

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

  • Domande generali su Datastream e Change Data Capture (CDC)
  • Comportamento e limitazioni generali dell'origine
  • 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 di Cloud Storage
  • Casi d'uso comuni per l'utilizzo di Datastream
  • Come Datastream si integra con i servizi dati di Google Cloud
  • Sicurezza e connettività
  • Monitoraggio di Datastream
  • Prezzi
  • Informazioni aggiuntive su Datastream

Domande generali su Datastream e Change Data Capture (CDC)

Domanda Risposta
Che cos'è Datastream?

Datastream è un servizio CDC (Change Data Capture) e di replica serverless e di facile utilizzo. Datastream consente la replica perfetta 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 con scalabilità automatica, Datastream consente di configurare facilmente una pipeline ELT (Extract, Load, and Transform) per la replica dei dati a bassa latenza, consentendo insight quasi in tempo reale.

Datastream è inoltre in grado di sincronizzare i flussi di dati tra database e applicazioni eterogenei 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 o sfruttare il flusso di eventi direttamente da Cloud Storage per realizzare architetture basate su eventi. Inoltre, Datastream si integra con Cloud Data Fusion per i clienti che vogliono creare pipeline di dati con trasformazioni in BigQuery.

Quali sono i metodi con cui Datastream trasmette i flussi di dati? Datastream trasmette i flussi di dati da un'origine a una destinazione utilizzando uno dei due metodi seguenti:
  • CDC: acquisizione delle modifiche in corso dalla fonte in tempo reale.
  • Backfill: fornisce un'istantanea storica 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 che consente di estrarre solo le modifiche più recenti (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 quando si caricano nuovi dati in datastore operativi e data warehouse ed elimina la necessità di aggiornamenti di caricamento collettivo e finestre batch scomodi, consentendo il caricamento incrementale o la trasmissione quasi in tempo reale delle modifiche ai dati in una destinazione dei dati.

La tecnologia CDC può essere utilizzata in molti casi d'uso che traggono valore dall'accesso costante ai cambiamenti dei dati non appena 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 eseguire il pull di tutti i dati esistenti da un'origine e poi trasmetterli in modalità flusso in una destinazione. Di conseguenza, la destinazione viene "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 modalità batch a un batch di destinazione.
  • Dum completo: durante il backfill del dump completo, Datastream estrae tutti i dati contemporaneamente e li invia in modalità flusso in una destinazione.
Esistono limitazioni da considerare quando esegui un backfill?

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

Qual è l'ordine consigliato per le operazioni di CDC e backfill? Nella maggior parte dei casi, non c'è alcuna considerazione particolare in questo caso. Quando il backfill è abilitato su un flusso, Datastream esegue contemporaneamente sia il backfill sia la CDC. In alcuni casi limite, ad esempio durante la replica di tabelle molto grandi che non possono essere sottoposte a backfill mediante Datastream, potresti dover caricare i dati in BigQuery prima di avviare il flusso.
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 CDC è effettivamente lo stato del flusso. Se l'operazione CDC non riesce, l'intero flusso di dati non riesce.

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

Cos'è un flusso di modifiche e una replica?

Un flusso di modifiche è una sequenza di eventi che Datastream invia in una destinazione ai fini del consumo downstream. Il risultato di una scrittura di modifiche in Cloud Storage è un insieme di file che contengono eventi di log delle modifiche di una tabella specifica in un determinato periodo di tempo. Gli eventi rappresentano inserimenti, aggiornamenti ed eliminazioni nella tabella e gli eventi possono essere consumati 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, in cui la tabella BigQuery viene mantenuta aggiornata usando le modifiche trasmesse in flusso 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 di modifiche in tempo reale da Cloud Storage e aggiornando le tabelle di destinazione di conseguenza.

Datastream richiede un agente sull'origine? Non è necessario installare un agente nell'origine. Datastream utilizza interfacce esistenti (come Oracle LogMiner) per estrarre i dati dall'origine.
Quante tabelle posso includere in un singolo flusso? Datastream può gestire fino a 10.000 tabelle in un singolo flusso. Non esiste un motivo tecnico per suddividere un database in più flussi. Occorre fare alcune considerazioni di carattere commerciale sull'utilizzo di flussi diversi per flussi logici differenti, ma ogni flusso aggiunge carico al database di origine. Questo carico è trascurabile per CDC, ma può essere significativo per il backfill.
E per quanto riguarda l'impatto sulle prestazioni dell'utilizzo di Datastream su un database di produzione?

Il CDC è un meccanismo altamente efficiente per limitare l'impatto sull'origine quando nuovi dati vengono caricati nei datastore e nei data warehouse di destinazione. Inoltre, CDC elimina la necessità di aggiornamenti di caricamento collettivo e scomodi finestre batch consentendo il caricamento incrementale o il flusso 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 offrendo il controllo necessario per decidere quali oggetti eseguire il backfill e quando.

Puoi copiare i file di log dall'origine a Google Cloud? No. Datastream esegue una query sui log direttamente sul server del database e solo le modifiche alle tabelle specificate vengono scritte nella destinazione.
Datastream può anche trasferire dati storici? Sì. Per impostazione predefinita, Datastream riceve tutti i dati storici dalle tabelle di database dell'origine specificata, in parallelo al flusso CDC. Datastream offre la flessibilità di ottenere i dati storici da alcune o tutte le tabelle di database nella tua origine. Inoltre, quando configuri il flusso, puoi scegliere di disattivare il backfill 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 in flusso solo i dati che vuoi da un'origine a una destinazione. Per le tabelle incluse, puoi escludere colonne specifiche delle tabelle per ottimizzare ulteriormente i dati che vuoi trasmettere 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 un nuovo progetto con la stessa configurazione dello stream esistente, ma non selezionare la casella di controllo Backfill dati storici.
  2. Avvia lo stream che hai creato.
  3. Quando lo stream che hai creato è impostato su 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 al flusso in futuro verranno trasmessi dall'origine alla destinazione.
In che modo Datastream gestisce le transazioni di cui non è stato eseguito il commit nei file di log del database? Quando i file di log del database contengono transazioni di cui non è stato eseguito il commit, se viene eseguito il rollback di una qualsiasi transazione, il database riflette questa condizione nei file di log come operazioni DML (Data Manipulation Language) di "inversa". Ad esempio, un'operazione INSERT con rollback avrà un'operazione DELETE corrispondente. Datastream legge queste operazioni dai file di log.
Che cos'è la disponibilità regionale di Datastream?

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

Comportamento e limitazioni generali dell'origine

Domanda Risposta
Quali origini supporta Datastream?

Datastream supporta i flussi di dati da origini Oracle, MySQL, PostgreSQL, AlloyDB per PostgreSQL e SQL Server, sia ospitate nel cloud che autogestite. Per informazioni sulle versioni specifiche della fonte, 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 MySQL per estrarre gli eventi di modifica.

Per Oracle, Datastream utilizza LogMiner e impostazioni di logging supplementari per estrarre i dati dai log di ripetizione 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 impegnate nel database e consente il consumo e l'elaborazione di queste modifiche.

Per SQL Server, Datastream monitora le modifiche del Data Manipulation Language (DML) utilizzando i log delle transazioni.

Puoi copiare i file di log direttamente da un'origine in Google Cloud? Datastream non copia la totalità dei file di log, ma esegue query sui file di log direttamente dal server del database e replica solo le modifiche dalle tabelle specificate alla destinazione.
Quali sono le limitazioni dei dati che Datastream è in grado di elaborare?

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

Le limitazioni generali includono:

  • Velocità effettiva: circa 5 MBPS con un limite per le dimensioni delle righe massimo di 30 MB per la destinazione Cloud Storage e di 20 MB per BigQuery.
  • Alcune operazioni DDL (Data Definition Language) non sono supportate durante la replica, tra cui:
    • Rilascia 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 sono mappati correttamente al tipo unificato Datastream corretto e i dati potrebbero danneggiarsi.
    • Le eliminazioni a cascata vengono ignorate.
    • Il troncamento della tabella viene ignorato.

Per le limitazioni specifiche delle 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 dell'evento che possono essere utilizzati per stabilire l'ordine e garantire la consegna "exactly-once".
Datastream garantisce la gestione degli ordini? 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 dell'origine, della frequenza e della frequenza delle modifiche e di altri parametri, la coerenza finale può generalmente essere 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 scritti da Datastream in ciascun evento.
In che modo Datastream rappresenta i tipi di dati dall'origine per utilizzarli nell'elaborazione downstream?

Durante la scrittura 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 MySQL o PostgreSQL NUMERIC o un tipo Oracle NUMBER) e lo normalizza in un tipo unificato Datastream.

I tipi unificati rappresentano un soprainsieme senza perdita di tutti i possibili tipi di origine e la normalizzazione consente di elaborare facilmente i dati provenienti da origini diverse ed eseguire query a valle 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 sono archiviati nel registro di schemi interno di Datastream e ogni evento fa riferimento allo schema nel momento in cui è stato generato. In questo modo Datastream può tenere traccia delle modifiche allo schema e apportare modifiche in base a queste modifiche, assicurando che tutti i dati vengano trasmessi in flusso e caricati correttamente nella destinazione. Tuttavia, tra un recupero e l'altro dello schema, alcune modifiche allo schema potrebbero non essere rilevate, causando potenzialmente discrepanze nei dati.
Ho eliminato (trasmesso) una colonna nel mio database di origine, ma viene ancora visualizzata nella mia destinazione. Perché? Datastream non elimina le colonne nella destinazione. Le colonne devono essere eliminate manualmente. Si tratta di un comportamento intenzionale perché in alcuni casi potrebbe essere preferibile mantenere la colonna eliminata nella destinazione. Ad esempio, Datastream considera la ridenominazione di una colonna nell'origine come l'eliminazione di una colonna e l'aggiunta di un'altra colonna. In questo caso, non è opportuno perdere la colonna originale nella destinazione.
Il flusso non si avvia a causa di un errore di convalida, ma penso che si tratti di un errore oppure voglio provare a eseguire il flusso in ogni caso. 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 saltare le convalide non garantisce che il flusso potrà essere eseguito e potrebbe comunque non riuscire se il database non dispone della configurazione o delle autorizzazioni necessarie.
Posso riavviare uno stream non riuscito?

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

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

Datastream blocca le tabelle di database?

No. Datastream non ha bisogno di bloccare le tabelle.

Le pagine delle limitazioni per ogni origine specificano che i flussi possono avere fino a 10.000 tabelle. Questo significa che Datastream non può eseguire operazioni CDC in parallelo per più di 10.000 tabelle contemporaneamente? No. Il limite indicato è per stream. Puoi avere più flussi con un numero totale di tabelle superiore a 10.000.

Comportamento e limitazioni dell'origine MySQL

Domanda Risposta
In che modo Datastream ottiene 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 di Cloud SQL per MySQL?

Sì, Datastream supporta 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 questo comando gcloud:

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

Per saperne di più, consulta Logging binario sulle repliche di lettura.

Di quali autorizzazioni minime ha bisogno Datastream per replicare i dati da un database MySQL di origine?

Devi concedere le seguenti autorizzazioni all'utente Datastream per replicare i dati da un database MySQL:

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

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

La tua organizzazione non consente di concedere l'autorizzazione SELECT per tutte le relative tabelle e tutti i relativi database. Puoi comunque utilizzare Datastream?

Puoi concedere l'autorizzazione SELECT alle tabelle specifiche da replicare o all'intero schema in 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 tuo database MySQL.
  • TABLE_NAME: il nome della tabella a cui stai concedendo l'autorizzazione SELECT.
  • USER_NAME: il nome dell'utente a cui viene concessa 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 IP specifico.

Comportamento e limitazioni dell'origine Oracle

Domanda Risposta
In che modo Datastream ottiene i dati da Oracle? Datastream utilizza Oracle LogMiner per estrarre i dati dai log di ripetizione di Oracle.
Datastream richiede una licenza GoldenGate da 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 Oracle in disponibilità generale e Datastream continuerà a supportare LogMiner in tutte le release future. Oracle ha interrotto il supporto per l'opzione LogMiner CONTINUOUS_MINE, ma questa opzione non viene utilizzata da Datastream, pertanto questa deprecazione non ha alcun impatto su Datastream.
Datastream supporta la crittografia dei dati in transito da 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 multi-tenant Oracle, in particolare Container Database (CDB) e Pluggable Databases (PDB)? Sì, Datastream supporta l'architettura multi-tenant Oracle (CDB/PDB), ma è possibile replicare solo un singolo database collegabile in un flusso.
La tua organizzazione non permette di concedere l'autorizzazione GRANT SELECT ANY TABLE. Puoi comunque 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 le modifiche in modalità flusso utilizzando Datastream, devi anche disporre dell'accesso in lettura a tutte le tabelle incluse nel flusso.

Per avviare il flusso, ignora la convalida utilizzando l'API. Per ulteriori informazioni, vedi Avviare uno stream.

Datastream supporta la replica da istanze di replica di lettura Oracle? Datastream supporta la replica da istanze di replica di lettura Oracle purché 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) utilizzando Datastream. Per ovviare a questo limite, connettiti direttamente a uno dei nodi o utilizza Gestione connessioni Oracle. Puoi anche creare una configurazione di connettività privata utilizzando soluzioni di proxy inverso come HAProxy.

Comportamento e limitazioni dell'origine PostgreSQL

Domanda Risposta
In che modo Datastream ottiene 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 le origini. Per informazioni sulla configurazione del database AlloyDB per PostgreSQL di origine, consulta Configurare un database AlloyDB per PostgreSQL. Per informazioni su come configurare il database AlloyDB Omni di origine, consulta Configurare un database PostgreSQL autogestito.
Datastream supporta la replica da un'istanza di replica di lettura PostgreSQL? Le istanze di replica di lettura non possono fungere da publisher per la replica logica perché PostgreSQL non supporta la decodifica logica nelle repliche di lettura.
Datastream supporta la sicurezza a livello di riga (RLS)? Datastream non supporta la replica delle tabelle con RLS abilitato. Tuttavia, puoi bypassare questa limitazione utilizzando la clausola BYPASSRLS:
ALTER USER USER_NAME BYPASSRLS;

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

Datastream supporta le 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. Lo slot di replica può leggere una sola attività CDC alla volta. Ad esempio, se elimini un numero elevato di record dal database di origine, lo slot di replica potrebbe sovraccaricarsi di eventi di eliminazione. Eventuali modifiche successive all'origine vengono ritardate fino a quando non vengono elaborati gli eventi di eliminazione già presenti nella coda dello slot di replica.
Datastream supporta la crittografia SSL (Secure Sockets Layer) e TLS (Transport Layer Security)?

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

Comportamento e limitazioni dell'origine SQL Server

Domanda Risposta
Quali versioni di SQL Server supporta Datastream? Datastream supporta le versioni dei database SQL Server che supportano Change Data Capture. Per un elenco completo delle versioni e delle versioni di SQL Server supportate, vedi 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, al posto delle tabelle basate su Microsoft CDC. Questo approccio riduce il carico sul database, mantenendo al contempo un rapido recupero dei dati.
Di quali autorizzazioni minime ha bisogno Datastream per replicare i dati da un database SQL Server di origine?

Devi concedere i ruoli e le autorizzazioni seguenti all'utente Datastream per replicare i dati da un database MySQL:

  • SELECT autorizzazioni per il database, sys.fn_dblog e sys.fn_dump_dblog
  • VIEW DATABASE STATE
  • VIEW SERVER STATE
  • L'utente deve essere membro del ruolo di database fisso db_owner. Per informazioni sull'aggiunta di un utente al ruolo, consulta le pagine di configurazione per il tipo di database SQL Server di origine.
Perché è necessaria una configurazione come la modifica degli intervalli di polling e una protezione da 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 legge, si verifica una perdita di dati. La modifica degli intervalli di polling e la configurazione della protezione da 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 problemi di tempi di inattività o di connettività. Per saperne di più, consulta Configurare un database SQL Server di origine.
Quale metodo CDC da 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.
  • Modifica tabelle: seleziona questo metodo per elaborare le modifiche dalle tabelle delle modifiche dedicate. Questo metodo è più facile da configurare e ha meno limitazioni, ma supporta una velocità effettiva inferiore e aumenta il carico sul database.

Per saperne di più, consulta 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 il flusso di modifiche dal database di origine e trasmette gli eventi upsert ed eliminazione alle tabelle di destinazione BigQuery utilizzando l'API Storage Scrivi. BigQuery applica quindi le modifiche alla tabella in base alla configurazione dell'inattività della tabella.
Come vengono applicate le operazioni DML (Data Manipulation Language) in BigQuery?
  • In modalità Solo aggiunta, i dati vengono aggiunti in BigQuery come flusso di modifiche, con una riga separata per ogni evento INSERT, UPDATE-INSERT, UPDATE-DELETE e DELETE.
  • In modalità Merge (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 aggiunta.
In che modo Datastream e BigQuery gestiscono l'ordinamento degli eventi? BigQuery utilizza i metadati degli eventi e un numero di sequenza di modifiche interno (CSN) per applicare gli eventi alla tabella nell'ordine corretto. Per ulteriori informazioni sui metadati degli eventi, consulta l'articolo Eventi e stream.
Come vengono calcolati i costi di BigQuery quando utilizzato 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 della riga supportata da Datastream durante il flusso di dati in BigQuery? La dimensione massima della riga supportata da Datastream è 20 MB.
Quando esegui il flusso di dati in BigQuery, le tabelle hanno il prefisso _. Puoi modificare questo comportamento in modo che le tabelle in BigQuery seguano la stessa struttura che hanno nel database di origine? Quando configuri i set di dati per una destinazione BigQuery, crei un set di dati per ogni schema o un singolo 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 per un singolo set di dati per tutti gli schemi, i nomi delle tabelle sono preceduti dal prefisso _, in base alla convenzione di denominazione delle tabelle in BigQuery.
Il CDC può acquisire le modifiche allo schema di origine, ad esempio quando una colonna viene inserita o eliminata nell'origine? Queste modifiche si riflettono automaticamente 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 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 di 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 crea un nuovo file) ogni volta che raggiunge la soglia di dimensioni o tempo definita dall'utente. Inoltre, Datastream ruota il file ogni volta che viene rilevata una modifica allo schema. Il nome file sarà composto da una chiave di schema univoca (basata su un hash dello schema), seguita dal timestamp del primo evento nel file. Per motivi di sicurezza, questi nomi file non devono essere letti o compresi da altre 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). Il parametro rs_id identifica in modo univoco il record all'interno del log di ripetizione.
  • ssn (numero di sequenza SQL), utilizzato quando il record nel log di ripetizione è 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 di modifica del record nell'origine. Se i valori source_timestamp per gli eventi che stai ordinando sono identici, confronta i valori di lsn.
  • lsn (numero di sequenza di log), che identifica l'offset del record nel file di log WAL.

Per ulteriori informazioni sui campi dei metadati, consulta la pagina Metadati specifici dell'origine.

Se vengono creati più file per lo stesso timestamp, 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 e quindi applicare l'ordinamento utilizzando il metodo indicato in precedenza in questa sezione.
Come vengono gestiti gli aggiornamenti della chiave primaria? Nell'evento ci sono 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 ulteriori informazioni sui metadati specifici di origine, consulta Eventi e stream.
Qual è la dimensione massima della riga supportata da Datastream durante il flusso di dati in Cloud Storage? La dimensione massima della riga supportata da Datastream è 30 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 diversi casi d'uso e può trarre vantaggio dall'accesso al flusso di dati in continuo cambiamento. I casi d'uso più comuni per Datastream sono:

  1. Analisi: replicando direttamente i dati in BigQuery, i clienti possono accedere a dati operativi aggiornati in BigQuery. I clienti possono utilizzare questi dati costantemente aggiornati in BigQuery per creare dashboard aggiornate sui propri dati. Questo può essere utilizzato, ad esempio, per monitorare i sistemi e ricavare 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 dei database con tempi di inattività ridotti dall'origine alla destinazione o per le configurazioni di 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 di dati centrali che vengono aggiornati continuamente con eventi provenienti da tutta l'organizzazione per essere basate su eventi. Scrivendo continuamente i dati degli eventi in destinazioni come BigQuery e Cloud Storage, puoi creare architetture basate su eventi che si basano sul consumo dei dati sugli eventi provenienti da queste destinazioni.

Integrazioni

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

Datastream completa 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 nel più ampio ecosistema Google Cloud.

Datastream si integra con i seguenti servizi dati:

  • BigQuery: Datastream utilizza l'API BigQuery Scrivi per integrarsi direttamente con BigQuery. Datastream scrive gli eventi di modifica direttamente nel set di dati BigQuery, dove le modifiche vengono unite continuamente (UPSERT) con i 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 creati per i file generati da Datastream per l'elaborazione immediata.
  • Cloud Data Fusion: Datastream si integra con Cloud Data Fusion alimentando un connettore Oracle tramite la funzionalità di replica di Cloud Data Fusion. Puoi creare un'origine Oracle di replica "alimentata" da Datastream in modo trasparente in modo trasparente per creare facilmente una pipeline di dati. Questa pipeline include trasformazioni avanzate per i dati Oracle che Datastream trasmette in flussi a Cloud Data Fusion.
  • Cloud Storage: Datastream si integra con Cloud Storage scrivendovi come destinazione per le modifiche in tempo reale.
  • Cloud SQL e Spanner: utilizzando i modelli Datastream e Dataflow, puoi mantenere aggiornate le tabelle replicate nei database.
Il modello Datastream-to-BigQuery in Dataflow ha limitazioni per il numero di operazioni DML (Data Manipulation Language)? No. Il modello utilizza l'API Streaming Inserts per caricare i dati in BigQuery. Di conseguenza, non esiste un limite al numero di operazioni DML. Tuttavia, sono previste 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 trasmessi in flusso 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 presenti nel buffer da Datastream vengono criptati at-rest.
Quali opzioni di connettività sono disponibili per connettere le tue origini a Datastream?

Puoi configurare tre tipi di metodi di connettività:

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

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

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

In che modo Datastream mantiene al sicuro le credenziali del database? Tutti i metadati utente (inclusi nome utente e password utilizzati per accedere alle origini dati) vengono criptati in transito e at-rest e Google li archivia nei propri sistemi di archiviazione di proprietà. L'accesso a questi metadati viene monitorato e controllato.
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, 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 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.

Monitora 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 il completamento del backfill della tabella.
La latenza di tanto in tanto aumenta e poi diminuisce gradualmente nel tempo. È normale? Datastream fa automaticamente lo scale up quando la velocità effettiva degli eventi generata dall'origine aumenta. Tuttavia, per proteggere sia il database di origine che Datastream, esistono limiti al numero di connessioni e processi simultanei che Datastream può aprire in qualsiasi momento. Sono previsti picchi temporanei di latenza quando si verifica un aumento significativo della velocità effettiva degli eventi, e si prevede che diminuiranno gradualmente con l'elaborazione del backlog degli eventi.

Prezzi

Domanda Risposta
Come viene determinato il prezzo di Datastream?

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

Per ulteriori informazioni sui prezzi di Datastream, consulta Prezzi.

Come viene calcolata la dimensione dei dati? La fatturazione viene calcolata in base alle dimensioni dei dati elaborati da Datastream. Datastream addebita solo i dati trasmessi in flusso nella destinazione.
Se utilizzi Datastream con BigQuery, Dataflow o Cloud Data Fusion, allora per cosa paghi? Il costo di ogni servizio viene addebitato separatamente.

Informazioni aggiuntive

Domanda Risposta
A chi mi rivolgo in caso di ulteriori domande o problemi nell'utilizzo di Datastream? In caso di problemi con l'utilizzo di Datastream, il team di assistenza di Google può aiutarti. Inoltre, la guida alla risoluzione dei problemi gestisce i problemi comuni che potresti riscontrare durante l'utilizzo di Datastream.