Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra come aggiungere una sorgente di acquisizione modifiche dati MySQL a un flusso di eventi.
Il connettore Azure Cdc (Database Change Data Capture) del database MySQL consente di acquisire uno snapshot dei dati correnti in un database MySQL Azure. Specificare le tabelle da monitorare e ricevere un avviso quando vengono apportate modifiche successive a livello di riga alle tabelle. Dopo aver acquisito le modifiche in un flusso, è possibile elaborare questi dati CDC in tempo reale e inviarli a destinazioni diverse all'interno di Fabric per ulteriori elaborazioni o analisi.
Attualmente MySQL Database CDC è supportato dai servizi seguenti a cui è possibile accedere pubblicamente ai database:
- Database di Azure per MySQL
- Amazon RDS per MySQL
- Amazon Aurora MySQL
- Google Cloud SQL per MySQL (GCP).
Questa guida usa Database di Azure per MySQL CDC come esempio.
Dopo aver aggiunto l'origine CDC del database MySQL al flusso di eventi, rileva le modifiche a livello di riga alle tabelle specificate. Queste modifiche possono quindi essere elaborate in tempo reale e inviate a destinazioni diverse per ulteriori analisi.
Prerequisiti
- Accesso a un'area di lavoro in modalità licenza di capacità di Fabric o in modalità licenza di valutazione con permessi di Collaboratore o superiori.
- Accesso a un'istanza del database MySQL, ad esempio un database in Database di Azure per MySQL - Server flessibile.
- Il database MySQL deve essere accessibile pubblicamente e non essere protetto da un firewall o protetto in una rete virtuale. Se si trova in una rete protetta, connettersi utilizzando il connettore Eventstream per l'inserimento della rete virtuale.
- Se non si dispone di un flusso di eventi, creare un flusso di eventi.
Configurare il database MySQL
Il connettore usa il connettore Debezium MySQL per acquisire le modifiche nel database MySQL. È necessario definire un utente MySQL con privilegi appropriati per tutti i database da cui Messaging Connector può acquisire le modifiche. È possibile usare direttamente l'utente amministratore per connettersi al database, che in genere dispone dei privilegi appropriati oppure seguire questa procedura per creare un nuovo utente:
Nota
Il nuovo account utente o amministratore e la password corrispondente vengono usati per connettersi al database in un secondo momento all'interno di Eventstream.
Al prompt dei comandi
mysql, crea l'utente MySQL:mysql> CREATE USER 'user'@'%' IDENTIFIED BY 'password';Concedere i privilegi necessari all'utente:
mysql> GRANT SELECT, SHOW DATABASES, REPLICATION REPLICA, REPLICATION CLIENT ON *.* TO 'user'@'%';Nota
Quando un blocco di lettura globale non è disponibile, come nelle opzioni ospitate, ad esempio Amazon Relational Database Service (RDS) o Aurora, vengono usati blocchi a livello di tabella per creare lo snapshot coerente. In questo caso, è necessario concedere
LOCK TABLESl'autorizzazione all'utente. Inoltre, per supportareFLUSHdurante le operazioni dello snapshot, potrebbe essere necessario concedereRELOADoFLUSH_TABLESi privilegi.Finalizzare le autorizzazioni dell'utente:
mysql> FLUSH PRIVILEGES;
Per verificare se all'utente o all'amministratore sono concessi i privilegi necessari, eseguire questo comando e quindi visualizzare i privilegi necessari nel passaggio 2:
SHOW GRANTS FOR user;
Per altre informazioni sulla concessione delle autorizzazioni necessarie all'utente, vedere Connettore Debezium per MySQL: Documentazione Debezium.
Abilitare il binlog
È necessario abilitare la registrazione binaria per la replica MySQL. I log binari registrano gli aggiornamenti delle transazioni affinché gli strumenti di replica possano propagare le modifiche. Questa sezione usa Database di Azure per MySQL CDC come esempio per illustrare i passaggi di configurazione.
Nella pagina del portale di Azure per l'account Database di Azure per MySQL, selezionare parametri server sotto Impostazioni nel riquadro di spostamento a sinistra.
Nella pagina Parametri server, configurare le seguenti impostazioni, quindi selezionare Salva.
Per binlog_row_image, seleziona full.
Per binlog_expire_logs_seconds, impostare il numero di secondi di attesa del servizio prima che il file di log binario venga rimosso definitivamente. Impostare il valore in base alle esigenze dell'ambiente, ad esempio 86400.
Aggiungere il database MySQL (DB) Change Data Capture (CDC) come sorgente
Se non è ancora stata aggiunta alcuna origine al flusso di eventi, selezionare il riquadro Connetti origini dati . È anche possibile selezionare Aggiungi origine>Connetti origini dati sulla barra multifunzione.
Se si aggiunge l'origine a un flusso di eventi già pubblicato, passare alla modalità Modifica. Sulla barra multifunzione selezionare Aggiungi origine>Connetti origini dati.
Nella pagina Selezionare un'origine dati, cercare e selezionare Connetti nel riquadro MySQL DB (CDC).
Configurare e connettersi al database MySQL (CDC)
Nella schermata Connetti selezionare Nuova connessione in Connessione per creare una connessione cloud.
Immettere le impostazioni di connessione seguenti e Le credenziali di connessione per il database MySQL e quindi selezionare Connetti.
Server: L'indirizzo del server del database MySQL, ad esempio my-mysql-server.mysql.database.azure.com.
Database: nome del database, ad esempio mio_database.
Nome connessione: generato automaticamente oppure è possibile immettere un nuovo nome per questa connessione.
nome utente e password: immettere le credenziali per il database MySQL. Assicurarsi di immettere l'account amministratore del server o l'account utente creato con privilegi necessari concessi.
Immettere le seguenti informazioni per configurare il database MySQL come origine dati CDC e quindi selezionare Avanti.
Porta: il valore predefinito è 3306. Se la connessione cloud selezionata è configurata in Gestire connessioni e gateway, assicurarsi che il numero di porta corrisponda a quello impostato. Se non corrispondono, il numero di porta nella connessione cloud in Gestisci connessioni e gateway ha la precedenza.
tabella: Selezionare Tutte le tabelle o Immettere il nome della tabella. Se si seleziona quest'ultimo, specificare le tabelle usando un elenco delimitato da virgole di identificatori di tabella completi (
databaseName.tableName) o espressioni regolari valide. Per esempio:- Usare
databaseName.test.*per selezionare tutte le tabelle i cui nomi iniziano condatabaseName.test. - Usare
databaseName\.(test1|test2)per selezionaredatabaseName.test1edatabaseName.test2.
È possibile combinare entrambi i formati usando virgole. Il limite di caratteri totale per l'intera voce è di 102.400 caratteri.
- Usare
ID server: immettere un valore univoco per ogni server e client di replica nel cluster MySQL. Il valore predefinito è 1000.
Nota
Impostare un ID server diverso per ogni lettore. Ogni client di database MySQL per la lettura di binlog deve avere un ID univoco, denominato ID server. MySQL Server usa questo ID per mantenere la connessione di rete e la posizione binlog. Diversi processi che condividono lo stesso ID server possono portare a leggere dalla posizione errata del binlog. È quindi consigliabile impostare un ID server diverso per ogni lettore.
È possibile espandere Impostazioni avanzate per accedere ad altre opzioni di configurazione per l'origine CDC del database MySQL:
-
Modalità di blocco dello snapshot: le opzioni sono:
-
Minimal (default): contiene un blocco di lettura globale solo durante la fase iniziale per acquisire lo schema e i metadati. Il resto dello snapshot usa una transazione REPEATABLE READ, consentendo aggiornamenti durante la lettura dei dati. -
Extended: mantiene un blocco di lettura globale per l'intera durata dello snapshot, bloccando tutte le scritture. Usare per una coerenza completa qualora il blocco di scrittura sia accettabile. -
None: ignora l'acquisizione di blocchi di tabella durante lo snapshot. Sicuro solo se non si verificano modifiche dello schema durante il processo.
-
-
Modalità di gestione decimale: specifica il modo in cui il connettore gestisce
DECIMALeNUMERICi valori delle colonne:-
Precise: rappresenta i valori usando tipi decimali esatti (ad esempio, JavaBigDecimal) per garantire la precisione completa e l'accuratezza nella rappresentazione dei dati. -
Double: converte i valori in numeri a virgola mobile e precisione doppia. Questa opzione migliora l'usabilità e le prestazioni, ma può comportare una perdita di precisione. -
String: codifica i valori come stringhe formattate. Questa opzione semplifica l'utilizzo nei sistemi downstream, ma perde informazioni semantiche sul tipo numerico originale.
-
-
Modalità snapshot: specificare i criteri per l'esecuzione di uno snapshot all'avvio del connettore:
-
Initial: il connettore esegue uno snapshot solo quando non sono stati registrati offset per il nome del server logico o se rileva che non è stato completato uno snapshot precedente. Al termine dello snapshot, il connettore inizia a trasmettere i record degli eventi per le modifiche successive al database. -
InitialOnly: il connettore esegue uno snapshot solo quando per il nome del server logico non sono stati registrati offset. Al termine dello snapshot, il connettore si arresta. Non esegue la transizione allo streaming per leggere gli eventi di modifica dal binlog. -
NoData: il connettore esegue uno snapshot che acquisisce solo lo schema, ma non i dati della tabella. Impostare questa opzione se non è necessario uno snapshot coerente dei dati, ma sono necessarie solo le modifiche apportate dall'avvio del connettore.
-
-
Modalità di blocco dello snapshot: le opzioni sono:
Dettagli del flusso o della sorgente
Nella pagina Connetti seguire uno di questi passaggi in base al fatto che si usi Eventstream o Real-Time hub.
Eventstream:
Nel riquadro Dettagli origine a destra seguire questa procedura:
In Nome origine selezionare il pulsante Matita per modificare il nome.
Si noti che il Nome Eventstream e il Nome del flusso sono di sola lettura.
Hub in tempo reale:
Nella sezione Dettagli flusso a destra seguire questa procedura:
Selezionare l'area di lavoro Fabric in cui si vuole creare il flusso di eventi.
Per Nome flusso di eventi, selezionare il pulsante Matita e immettere un nome per il flusso di eventi.
Il valore del nome stream viene generato automaticamente aggiungendo -stream al nome del flusso di eventi. Questo flusso viene visualizzato nella pagina Tutti i flussi di dati dell'hub in tempo reale al termine della procedura guidata.
Selezionare Avanti nella parte inferiore della pagina Configura .
Rivedere e connettere
Nella schermata Rivedi e connetti esaminare il riepilogo e selezionare Aggiungi (Eventstream) o Connetti ( hubReal-Time).
Visualizzare il flusso di eventi aggiornato
Puoi vedere la sorgente del database MySQL (CDC) aggiunta al tuo flusso di eventi in modalità Modifica.
Selezionare Pubblica per pubblicare le modifiche e avviare lo streaming dei dati CDC del database MySQL nel flusso di eventi.
Contenuto correlato
Altri connettori:
- Flussi di dati Amazon Kinesis
- Azure Cosmos DB
- Hub eventi di Azure
- hub IoT di Azure
- database SQL di Azure Change Data Capture (CDC)
- Confluent Kafka
- Endpoint personalizzato
- Google Cloud Pub/Sub
- Database PostgreSQL CDC
- Dati di esempio
- gli eventi di Archiviazione BLOB di Azure
- Evento dell'area di lavoro Fabric