Føj Cdc-kilden mySQL-database til en hændelsesstream
Bemærk
Denne artikel indeholder referencer til udtrykket SLAVE
, et ord, som Microsoft ikke længere bruger. Når ordet er fjernet fra softwaren, fjerner vi det fra denne artikel.
I denne artikel kan du se, hvordan du føjer en MySQL Change Data Capture-kilde til en hændelsesstream. I øjeblikket understøttes MySQL Database CDC fra følgende tjenester, hvor der er offentligt adgang til databaserne:
- Azure Database til MySQL-
- Amazon RDS til MySQL-
- Amazon Aurora MySQL-
- Google Cloud SQL til MySQL (GCP).
I denne vejledning bruges Azure Database til MySQL CDC- som et eksempel.
Når CDC-kilden til MySQL-databasen er føjet til hændelsesstrømmen, registreres ændringer på rækkeniveau i de angivne tabeller. Disse ændringer kan derefter behandles i realtid og sendes til forskellige destinationer for yderligere analyse.
Bemærk
Denne kilde understøttes ikke i følgende områder af arbejdsområdekapaciteten: Det vestlige USA3, det vestlige Schweiz.
Forudsætninger
- Adgang til et arbejdsområde i Fabric-kapacitetslicenstilstand (eller) prøvelicenstilstand med bidragydertilladelser eller højere tilladelser.
- Adgang til en forekomst af MySQL Database, f.eks.: en database i Azure Database for MySQL – Flexible Server.
- Din MySQL-database skal være offentligt tilgængelig og ikke være bag en firewall eller være sikret i et virtuelt netværk.
- Hvis du ikke har en eventstream, skal du oprette en eventstream.
Konfigurer MySQL DB
Connectoren bruger Debezium MySQL-connectoren til at registrere ændringer i MySQL-databasen. Du skal definere en MySQL-bruger med de relevante rettigheder på alle databaser, hvor Messaging Connector kan hente ændringerne fra. Du kan bruge den administratorbruger til at oprette forbindelse til databasen, som normalt har de relevante rettigheder, eller du kan følge disse trin for at oprette en ny bruger:
Bemærk
Den nye bruger- eller administratorkonto og den tilsvarende adgangskode bruges til at oprette forbindelse til databasen senere i Eventstream.
mysql
Opret MySQL-brugeren ved kommandoprompten:mysql> CREATE USER 'user'@'%' IDENTIFIED BY 'password';
Tildel brugeren de nødvendige rettigheder:
mysql> GRANT SELECT, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user'@'%';
Afslut brugerens tilladelser:
mysql> FLUSH PRIVILEGES;
Hvis du vil bekræfte, om brugeren eller administratoren har de påkrævede rettigheder tildelt, skal du køre denne kommando, og derefter skal de påkrævede rettigheder i trin#2 vises:
SHOW GRANTS FOR user;
Du kan få flere oplysninger om tildeling af de nødvendige tilladelser til brugeren i Debezium-connector til MySQL: Debezium-dokumentation.
Aktivér binlog
Du skal aktivere binær logføring for MySQL-replikering. De binære logge registrerer transaktionsopdateringer til replikeringsværktøjer til overførsel af ændringer. I dette afsnit bruges Azure Database til MySQL CDC som et eksempel til at vise konfigurationstrinnene.
På siden Azure-portal for din Azure Database for MySQL-konto skal du vælge Serverparametre under Indstillinger i venstre navigationsrude.
Konfigurer følgende egenskaber på siden Serverparametre , og vælg derefter Gem.
Vælg fuld for binlog_row_image.
I binlog_expire_logs_seconds skal du angive det antal sekunder, tjenesten venter, før den binære logfil fjernes. Angiv værdien, så den svarer til behovene i dit miljø, f.eks . 86400.
Tilføj MySQL DB (CDC) som kilde
Hvis du endnu ikke har føjet nogen kilde til din eventstream, skal du vælge Brug eksternt kildefelt .
Hvis du føjer kilden til en allerede publiceret hændelsesstream, skal du skifte til redigeringstilstand, vælge Tilføj kilde på båndet og derefter vælge Eksterne kilder.
På siden Vælg en datakilde skal du søge efter og vælge Opret forbindelse på feltet MySQL DB (CDC).
Konfigurer og opret forbindelse til MySQL DB (CDC)
På skærmen Opret forbindelse under Forbindelse skal du vælge Ny forbindelse for at oprette en cloudforbindelse.
Angiv følgende Forbindelsesindstillinger og Legitimationsoplysninger for forbindelse til MySQL-databasen, og vælg derefter Opret forbindelse.
Server: Serveradressen på MySQL-databasen, f.eks. my-mysql-server.mysql.database.azure.com.
Database: Databasenavnet, f.eks . my_database.
Forbindelsesnavn: Genereres automatisk, eller du kan angive et nyt navn for denne forbindelse.
brugernavn og adgangskode: Angiv legitimationsoplysningerne for MySQL-databasen. Sørg for at angive serveradministratorkontoen eller den brugerkonto, der er oprettet med de påkrævede rettigheder, der er tildelt.
Angiv følgende oplysninger for at konfigurere CDC-datakilden MySQL DB, og vælg derefter Næste.
Table(s): Angiv en liste over tabelnavne adskilt af kommaer. Hvert tabelnavn skal følge formatet
<database name>.<table name>
, f.eks . my_database.users.Server-id: Angiv en entydig værdi for hver server og replikeringsklient i MySQL-klyngen. Standardværdien er 1000.
Port: Lad standardværdien være uændret.
Du kan også redigere kildenavnet ved at vælge blyantsknappen for Kildenavn i afsnittet Stream-detaljer til højre.
Bemærk
Angiv et andet server-id for hver læser. Alle MySQL-databaseklienter til læsning af binlog skal have et entydigt id, der kaldes Server-id. MySQL Server bruger dette id til at vedligeholde netværksforbindelsen og placeringen af binlog. Forskellige job, der deler det samme server-id, kan resultere i læsning fra den forkerte placering i binlog. Det anbefales derfor at angive et andet server-id for hver læser.
På siden Gennemse + opret forbindelse skal du vælge Tilføj for at fuldføre konfigurationen, når du har gennemset oversigten for CDC-kilden MySQL DB.
Bemærk
Det maksimale antal kilder og destinationer for én hændelsesstream er 11.
Vis opdateret hændelsesstream
Du kan se, at Kilden MySQL DB (CDC) er føjet til din eventstream i redigeringstilstand.
Vælg Publicer for at publicere ændringerne og begynde at streame MySQL DB CDC-data til hændelsesstreamen.
Relateret indhold
Andre connectors: