Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
I denne artikel kan du se, hvordan du føjer en MySQL Change Data Capture-kilde til en hændelsesstream.
Azure MySQL Database Change Data Capture (CDC)-connectoren gør det muligt at tage et øjebliksbillede af de aktuelle data i en Azure MySQL-database. Du angiver de tabeller, der skal overvåges, og får besked, når efterfølgende ændringer på rækkeniveau ændres i tabellerne. Når ændringerne er fanget i en strøm, kan du behandle disse CDC-data i realtid og sende dem til forskellige destinationer inden for Fabric for yderligere behandling eller analyse.
I øjeblikket understøttes MySQL Database CDC fra følgende tjenester, hvor der er offentligt adgang til databaserne:
- Azure Database for MySQL
- Amazon RDS til MySQL-
- Amazon Aurora MySQL-
- Google Cloud SQL til MySQL (GCP).
Denne guide bruger Azure Database for MySQL CDC som 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.
Forudsætninger
- Adgang til et arbejdsområde i Fabric-kapacitetslicenstilstand (eller) prøvelicenstilstand med Contributor- eller højere tilladelser.
- Adgang til en instans af MySQL Database, såsom: en database i Azure Database for MySQL - Flexible Server.
- Din MySQL-database bør være offentligt tilgængelig og ikke være bag en firewall eller sikret i et virtuelt netværk. Hvis den befinder sig i et beskyttet netværk, skal du forbinde til den ved at bruge Eventstream connector virtuel netværksinjektion.
- Hvis du ikke har en eventstream, skal du oprette en eventstream.
Opsætning af MySQL Database
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 direkte bruge admin-brugeren til at forbinde 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 adminkonto og den tilsvarende adgangskode bruges til senere at forbinde til databasen inde i Eventstream.
mysqlOpret MySQL-brugeren ved kommandoprompten:mysql> CREATE USER 'user'@'%' IDENTIFIED BY 'password';Tildel brugeren de nødvendige rettigheder:
mysql> GRANT SELECT, SHOW DATABASES, REPLICATION REPLICA, REPLICATION CLIENT ON *.* TO 'user'@'%';Bemærk
Når en global læselås ikke er tilgængelig, som i hostede muligheder som Amazon Relational Database Service (RDS) eller Aurora, bruges tabelniveau-låse til at skabe det konsistente snapshot. I dette tilfælde skal du give
LOCK TABLEStilladelse til brugeren. Derudover kan du for at støtteFLUSHoperationerne under snapshot også have brug for at giveRELOADellerFLUSH_TABLESprivilegier.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. Dette afsnit bruger Azure Database for MySQL CDC som eksempel til at vise konfigurationstrinene.
På Azure-portalsiden for din Azure Database for MySQL-konto skal du vælge Server-parametre under Indstillinger i venstre navigation.
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 Database (DB) Change Data Capture (CDC) som kildekode
Hvis du endnu ikke har tilføjet nogen kilde til din eventstream, vælg flisen Connect data sources . Du kan også vælge Tilføj kilde>Connect datakilder på båndet.
Hvis du tilføjer kildekoden til en allerede offentliggjort eventstream, så skift til Rediger-tilstand . På båndet skal du vælge Tilføj kilde>Forbind datakilder.
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.
Indtast følgende Forbindelsesindstillinger og Forbindelsesoplysninger for din MySQL-database, og vælg derefter Forbind.
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.
Port: Standardværdien er 3306. Hvis din valgte cloudforbindelse er konfigureret i Administrer forbindelser og gateways, skal du kontrollere, at portnummeret stemmer overens med det, der er angivet der. Hvis de ikke stemmer overens, har portnummeret i cloudforbindelsen i Administrer forbindelser og gateways forrang.
table: Vælg Alle tabeller eller Angiv tabelnavn eller tabelnavne. Hvis du vælger sidstnævnte, skal du angive tabeller ved hjælp af en kommasepareret liste over komplette tabel-id'er (
databaseName.tableName) eller gyldige regulære udtryk. Det kan f.eks. være:- Brug
databaseName.test.*til at vælge alle tabeller, hvis navne starter meddatabaseName.test. - Brug
databaseName\.(test1|test2)til at vælgedatabaseName.test1ogdatabaseName.test2.
Du kan blande begge formater ved hjælp af kommaer. Den samlede tegngrænse for hele posten er 102.400 tegn.
- Brug
Server-id: Angiv en entydig værdi for hver server og replikeringsklient i MySQL-klyngen. Standardværdien er 1000.
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.
Du kan udvide Avancerede indstillinger for at få adgang til flere konfigurationsmuligheder for MySQL Database CDC-kilden:
-
Låsningstilstand for snapshot: Indstillinger er:
-
Minimal (default): Holder kun en global læselås i den indledende fase for at indfange skema og metadata. Resten af snapshottet bruger en REPEATABLE READ-transaktion, der tillader opdateringer, mens data læses. -
Extended: Opretholder en global læselås for hele snapshot-varigheden og blokerer alle skrivninger. Brug for fuld konsistens, hvis skriveblokeringen er acceptabel. -
None: Springer over at få bordlåse under snapshot. Kun sikkert, hvis der ikke sker skemaændringer under processen.
-
-
Decimalhåndteringstilstand: Angiver, hvordan connectoren håndterer
DECIMALogNUMERICkolonneværdier:-
Precise: Repræsenterer værdier ved brug af eksakte decimaltyper (for eksempel JavaBigDecimal) for at sikre fuld præcision og nøjagtighed i datarepræsentationen. -
Double: Konverterer værdier til flydende tal med dobbelt præcision. Denne mulighed forbedrer brugervenlighed og ydeevne, men kan resultere i tab af præcision. -
String: Koder værdier som formaterede strenge. Denne mulighed gør dem nemme at forbruge i downstream-systemer, men mister semantisk information om den oprindelige numeriske type.
-
-
Snapshot-tilstand: Angiv kriterierne for at udføre et snapshot, når forbindelsen starter:
-
Initial: Connectoren kører kun et snapshot, når der ikke er registreret offsets for det logiske servernavn, eller hvis den opdager, at et tidligere snapshot ikke blev fuldført. Når snapshotet er færdigt, begynder connectoren at streame hændelsesposter for efterfølgende databaseændringer. -
InitialOnly: Connectoren kører kun et snapshot, når der ikke er registreret offsets for det logiske servernavn. Når snapshotet er færdigt, stopper forbindelsen. Den overgår ikke til streaming for at læse ændringsbegivenheder fra binloggen. -
NoData: Connectoren kører et snapshot, der kun fanger skemaet, men ikke nogen tabeldata. Sæt denne mulighed, hvis du ikke har brug for et konsekvent snapshot af dataene, men kun de ændringer, der sker, siden forbindelsen starter.
-
-
Låsningstilstand for snapshot: Indstillinger er:
Strøm- eller kildedetaljer
På Connect-siden følger du et af disse trin afhængigt af, om du bruger Eventstream eller Real-Time hub.
Eventstream:
I kilde-detaljepanelet til højre følger du disse trin:
For Kildenavn skal du vælge Pencil-knappen for at ændre navnet.
Bemærk, at Eventstream-navnet og Stream-navnet er skrivebeskyttet.
Real-Time hub:
I afsnittet Stream Details til højre følger du disse trin:
Vælg Fabric workspace hvor du vil oprette eventstreamen.
For Eventstream-navn, vælg Pencil-knappen og indtast et navn til eventstreamen.
Værdien Stream-navn genereres automatisk for dig ved at tilføje -stream til navnet på eventstreamen. Denne strøm vises på realtidshubbens side for alle datastrømme, når guiden er færdig.
Vælg Næste nederst på siden Konfigurér .
Gennemgå og forbind
På skærmen Gennemgå + forbind , gennemgå oversigten, og vælg Tilføj (Eventstream) eller Forbind (Real-Time hub).
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: