Legg til CDC-kilde for MySQL-database i en hendelsesstrøm
Merk
Denne artikkelen inneholder referanser til termen SLAVE
, et begrep som Microsoft ikke lenger bruker. Når termen fjernes fra programvaren, fjerner vi den fra denne artikkelen.
Denne artikkelen viser deg hvordan du legger til en MySQL Change Data Capture-kilde i en hendelsesstrøm. MySQL Database CDC støttes for øyeblikket fra følgende tjenester der databasene kan åpnes offentlig:
- Azure Database for MySQL
- Amazon RDS for MySQL
- Amazon Aurora MySQL
- Google Cloud SQL for MySQL (GCP).
Denne veiledningen bruker Azure Database for MySQL CDC som et eksempel.
Når CDC-kilden for MySQL-database legges til i hendelsesstrømmen, registreres endringer på radnivå i de angitte tabellene. Disse endringene kan deretter behandles i sanntid og sendes til forskjellige mål for videre analyse.
Merk
Denne kilden støttes ikke i følgende områder av arbeidsområdets kapasitet: Vest-USA3, Sveits vest.
Forutsetning
- Tilgang til et arbeidsområde i lisensmodus for stoffkapasitet (eller) prøveversjonslisensmodus med bidragsyter eller høyere tillatelser.
- Tilgang til en forekomst av MySQL-database, for eksempel: en database i Azure Database for MySQL – fleksibel server.
- MySQL-databasen må være offentlig tilgjengelig og ikke være bak en brannmur eller sikret i et virtuelt nettverk.
- Hvis du ikke har en hendelsesstrøm, oppretter du en hendelsesstrøm.
Konfigurere MySQL DB
Koblingen bruker Debezium MySQL-koblingen til å registrere endringer i MySQL-databasen. Du må definere en MySQL-bruker med passende rettigheter i alle databaser der Messaging Connector kan registrere endringene fra. Du kan bruke administratorbrukeren direkte til å koble til databasen som vanligvis har de riktige rettighetene, eller du kan følge disse trinnene for å opprette en ny bruker:
Merk
Den nye bruker- eller administratorkontoen og det tilsvarende passordet brukes til å koble til databasen senere i Eventstream.
Opprett MySQL-brukeren ved ledeteksten
mysql
:mysql> CREATE USER 'user'@'%' IDENTIFIED BY 'password';
Gi brukeren de nødvendige rettighetene:
mysql> GRANT SELECT, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user'@'%';
Merk
Når en global leselås er utilgjengelig, som i vertsbaserte alternativer som Amazon RDS eller Aurora, brukes låser på tabellnivå til å opprette det konsekvente øyeblikksbildet. I dette tilfellet må du gi
LOCK TABLES
tillatelse til brukeren. I tillegg, for å støtteFLUSH
operasjoner under øyeblikksbildet, må du kanskje også giRELOAD
ellerFLUSH_TABLES
rettigheter.Fullfør brukerens tillatelser:
mysql> FLUSH PRIVILEGES;
Hvis du vil bekrefte om brukeren eller administratoren har de nødvendige rettighetene, kjører du denne kommandoen, og deretter vises de nødvendige rettighetene i trinn#2:
SHOW GRANTS FOR user;
Hvis du vil ha mer informasjon om å gi de nødvendige tillatelsene til brukeren, kan du se Debezium-kobling for MySQL: Debezium Documentation.
Aktiver binlog
Du må aktivere binærlogging for MySQL-replikering. Binærloggene registrerer transaksjonsoppdateringer for replikeringsverktøy for å overføre endringer. Denne delen bruker Azure Database for MySQL CDC som et eksempel for å vise konfigurasjonstrinnene.
Velg Serverparametere under Innstillinger i venstre navigasjon på Azure-portalsiden for Azure Database for MySQL-kontoen.
Konfigurer følgende egenskaper på serverparametersiden, og velg deretter Lagre.
Velg fullstendig for binlog_row_image.
Angi antall sekunder tjenesten venter før binærloggfilen blir fjernet for binlog_expire_logs_seconds. Angi verdien slik at den samsvarer med behovene i miljøet, for eksempel 86400.
Legg til MySQL DB (CDC) som kilde
Hvis du ikke har lagt til noen kilde i hendelsesstrømmen ennå, velger du Bruk ekstern kildeflis .
Hvis du legger til kilden i en allerede publisert hendelsesstrøm, bytter du til redigeringsmodus , velger Legg til kilde på båndet, og deretter velger du Eksterne kilder.
Søk etter og velg Koble til på MySQL DB-flisen (CDC) på siden Velg en datakilde.
Konfigurere og koble til MySQL DB (CDC)
Velg Ny tilkobling på Koble til-skjermen under Tilkobling for å opprette en skytilkobling.
Skriv inn følgende tilkoblingsinnstillinger og tilkoblingslegitimasjon for MySQL DB, og velg deretter Koble til.
Server: Serveradressen til MySQL-databasen, for eksempel my-mysql-server.mysql.database.azure.com.
Database: Databasenavnet, for eksempel my_database.
Tilkoblingsnavn: Automatisk generert, eller du kan angi et nytt navn for denne tilkoblingen.
brukernavn og passord: Skriv inn legitimasjonen for MySQL-databasen. Kontroller at du angir serveradministratorkontoen eller brukerkontoen som er opprettet med nødvendige rettigheter.
Skriv inn følgende informasjon for å konfigurere MySQL DB CDC-datakilden, og velg deretter Neste.
Tabell(er): Skriv inn en liste over tabellnavn atskilt med komma. Hvert tabellnavn må følge formatet
<database name>.<table name>
, for eksempel my_database.users.Server-ID: Angi en unik verdi for hver server- og replikeringsklient i MySQL-klyngen. Standardverdien er 1000.
Port: La standardverdien være uendret.
Du kan også redigere kildenavnet ved å velge Blyant-knappen for Kildenavn i delen Stream-detaljer til høyre.
Merk
Angi en annen server-ID for hver leser. Hver MySQL-databaseklient for lesing av binlog bør ha en unik ID, kalt Server-ID. MySQL Server bruker denne ID-en til å opprettholde nettverkstilkoblingen og binlog-posisjonen. Ulike jobber som deler samme server-ID, kan føre til lesing fra feil binlog-posisjon. Derfor anbefales det å angi en annen server-ID for hver leser.
Velg
Legg til for å fullføre konfigurasjonen etter å ha gjennomgått sammendraget for MySQL DB CDC-kilden på siden Se gjennom + koble til for å fullføre konfigurasjonen.
Merk
Maksimalt antall kilder og mål for én hendelsesstrøm er 11.
Vis oppdatert hendelsesstrøm
Du ser MySQL DB-kilden (CDC) lagt til i eventstreamen i Redigeringsmodus.
Velg Publiser for å publisere endringene og begynne å strømme MySQL DB CDC-data til eventstreamen.
Relatert innhold
Andre koblinger: