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.
Nota
Questo articolo contiene riferimenti al termine SLAVE, che Microsoft non usa più. Quando il termine verrà rimosso dal software, verrà rimosso anche dall'articolo.
Questo articolo illustra come aggiungere una sorgente di acquisizione modifiche dati MySQL a un flusso di eventi. 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à di licenza della capacità Fabric o in modalità di licenza di prova, con autorizzazioni di Collaboratore o superiori.
- Accesso a un'istanza di un database MySQL, come ad esempio un database in Azure Database per MySQL - Server flessibile.
- Il database MySQL deve essere accessibile pubblicamente e non essere protetto da un firewall o in una 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 normalmente dispone dei privilegi appropriati oppure seguire questa procedura per creare un nuovo utente:
Nota
Il nuovo account utente o amministratore e la password corrispondente verranno 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 SLAVE, REPLICATION CLIENT ON *.* TO 'user'@'%';Nota
Quando un blocco di lettura globale non è disponibile, come nelle opzioni ospitate come Amazon RDS o Aurora, vengono usati blocchi a livello di tabella per creare uno snapshot coerente. In questo caso, è necessario concedere
LOCK TABLESl'autorizzazione all'utente. Inoltre, per supportare le operazioni diFLUSHdurante lo snapshot, potrebbe essere necessario concedere i privilegiRELOADoFLUSH_TABLES.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 utilizza Azure Database per MySQL CDC come esempio per mostrarti i passaggi di configurazione.
Nel portale di Azure, nella pagina del server del Database di Azure per MySQL, in Impostazioni selezionare Parametri del server 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 mySQL DB (CDC) come origine
Se non è ancora stata aggiunta alcuna origine al flusso di eventi, selezionare il riquadro Usa origine esterna .
Se si aggiunge l'origine a un flusso di eventi già pubblicato, passare alla modalità Modifica. Sulla barra multifunzione selezionare Aggiungi origine>Origini esterne.
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. Utilizzare per garantire la massima coerenza se il blocco di scrittura è 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. Ciò migliora l'usabilità e le prestazioni, ma può comportare una perdita di precisione. -
String: codifica i valori come stringhe formattate. Questo li rende facili da utilizzare 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.
-
È anche possibile modificare il nome dell'origine selezionando il pulsante Matita per il nome dell'origine nella sezione Dettagli del flusso a destra.
-
Modalità di blocco dello snapshot: le opzioni sono:
Nella pagina Rivedi e connetti, dopo aver esaminato il riepilogo per l'origine CDC del database MySQL, selezionare Aggiungi per completare la configurazione.
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
- Change Data Capture (CDC) del Database SQL di Azure
- Confluent Kafka
- Endpoint personalizzato
- Google Cloud Pub/Sub
- Database PostgreSQL CDC
- Dati di esempio
- Eventi di archiviazione BLOB di Azure
- Evento dell'area di lavoro di Fabric