Domande frequenti

Panoramica

In questa pagina troverai 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 di Cloud Storage
  • Casi d'uso comuni per l'utilizzo di Datastream
  • In che modo 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 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, consentendo di ottenere informazioni 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 oppure sfruttare 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: 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 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 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 ai cambiamenti 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 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 CDC e di 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 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 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 a valle. Il risultato di una scrittura di modifiche 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 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, dove la tabella BigQuery viene mantenuta 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 eseguono il pull degli eventi di modifiche in tempo reale da Cloud Storage e aggiornando le tabelle di destinazione di conseguenza.

Datastream richiede un agente nell'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 unico stream. Non esiste alcun 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?

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. 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 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 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 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 allo stream in futuro verranno trasmessi in streaming dall'origine alla destinazione.
In che modo Datastream gestisce le transazioni non impegnate 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 lo riflette nei file di log come "inverso" le operazioni DML (Data Manipulation Language). 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, consulta 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 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 nel database e consente di utilizzarle ed elaborarle.

Per SQL Server, Datastream monitora le modifiche al linguaggio di manipolazione dei dati (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 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:

  • Dimensioni evento: limite massimo di 30 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 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 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 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 è una 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 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 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 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 un flusso 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ù 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 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 di log binari?

No, Datastream non supporta la compressione degli eventi di transazione con la compressione delle transazioni dei 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 ancora 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 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 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 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 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 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 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 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 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
  • DOPPIA
  • 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 Avvia uno stream.

Datastream supporta la replica dalle 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) con 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 proxy inverse 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 sulla configurazione del database AlloyDB Omni di origine, consulta Configurare un database PostgreSQL autonomo.
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. 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 sovraccaricarsi 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 durante la replica di dati di transazioni di grandi dimensioni, consulta Diagnosticare 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 supporta Datastream? Datastream supporta le versioni dei 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 ulteriori informazioni, consulta Database SQL Server di origine.
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 SQL Server:

Per il metodo CDC delle tabelle delle modifiche:

  • 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 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 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 saperne di più, 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.
  • 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 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'inattività della tabella.
Come vengono applicate le operazioni di Data Manipulation Language (DML) 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 se utilizzati con Datastream? I costi di BigQuery vengono calcolati e addebitati separatamente rispetto a 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 del 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 nel 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 dell'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 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. Datastream ruota anche il file ogni volta che viene rilevata una modifica dello 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). rs_id identifica in modo univoco il record all'interno del log di ripetizione.
  • 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 MySQL.

Per le origini PostgreSQL:

  • source_timestamp, ovvero il timestamp di 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, 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 delle chiavi principali? 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 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 di 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 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 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 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 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) 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 creati per i file generati da Datastream per l'elaborazione immediata.
  • 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-to-BigQuery in Dataflow ha 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 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 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 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 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 controllato.
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 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 il completamento del backfill della tabella.
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 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 vengono stabiliti i prezzi di Datastream?

I prezzi di Datastream si basano sul volume (GB) di dati elaborati dall'origine a 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 trasmessi in flusso nella destinazione.
Se utilizzi Datastream con BigQuery o Dataflow, 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.

Passaggi successivi