Del via


Tilføj MySQL-database-CDC som kilde i realtidshub

I denne artikel beskrives det, hvordan du tilføjer CdC (MySQL Database Change Data Capture) som en hændelseskilde i Fabric Real-Time-hubben.

Azure MySQL-connectoren Change Data Capture (CDC) giver dig mulighed for at hente et snapshot 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 registreres i en stream, kan du behandle disse CDC-data i realtid og sende dem til forskellige destinationer i 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 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.

Prerequisites

  • 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 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ærkning

Den nye bruger- eller adminkonto og den tilsvarende adgangskode bruges til senere at forbinde til databasen inde i Eventstream.

  1. mysql Opret MySQL-brugeren ved kommandoprompten:

    mysql> CREATE USER 'user'@'%' IDENTIFIED BY 'password';
    
  2. Tildel brugeren de nødvendige rettigheder:

    mysql> GRANT SELECT, SHOW DATABASES, REPLICATION REPLICA, REPLICATION CLIENT ON *.* TO 'user'@'%';
    

    Bemærkning

    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 TABLES tilladelse til brugeren. Derudover kan du for at støtte FLUSH operationerne under snapshot også have brug for at give RELOAD eller FLUSH_TABLES privilegier.

  3. 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.

  1. På siden Azure-portal for din Azure Database for MySQL-konto skal du vælge Serverparametre under Indstillinger i venstre navigationsrude.

  2. 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.

    Et screenshot af binlog-indstillingerne til replikering under serverparametre.

Siden Datakilder

  1. Log på Microsoft Fabric.

  2. Hvis du kan se Power BI nederst til venstre på siden, skal du skifte til arbejdsbelastningen Fabric ved at vælge Power BI og derefter vælge Struktur.

    Skærmbillede, der viser, hvordan du skifter til Fabric-arbejdsbelastningen.

  3. Vælg Realtid på venstre navigationslinje.

    Skærmbillede, der viser, hvordan du starter Opret forbindelse til datakildeoplevelse.

  4. Streaming-datasiden åbner som standard. Klik på knappen Tilføj data for at komme til siden Datakilder .

    Skærmbillede, der viser siden Datakilder i Real-Time hub.

    Du kan også komme direkte til siden for datakilder ved at vælge ' Tilføj data' i venstre navigationslinje.

    Skærmbillede, der viser knappen Opret forbindelse til datakilde.

  1. På siden Data kilder skal du vælge Database CDC-kategorien øverst, og derefter vælge ConnectMySQL Database (DB) Change Data Capture (CDC) -flisen.

    Skærmbillede, der viser valget af MySQL DB (CDC) på siden Datakilder.

    Brug instruktioner fra afsnittet Tilføj Azure MySQL Database CDC som kilde .

Tilføj Azure MySQL Database CDC som en kilde

  1. På skærmen Opret forbindelse under Forbindelse skal du vælge Ny forbindelse for at oprette en cloudforbindelse.

    Skærmbillede, der viser siden Opret forbindelse.

  2. 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 til 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.

      Et screenshot af forbindelsesindstillingerne for Azure MySQL Database (DB) Change Data Capture (CDC).

  3. 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. Eksempel:

      • Brug databaseName.test.* til at vælge alle tabeller, hvis navne starter med databaseName.test.
      • Brug databaseName\.(test1|test2) til at vælge databaseName.test1 og databaseName.test2.

      Du kan blande begge formater ved hjælp af kommaer. Den samlede tegngrænse for hele posten er 102.400 tegn.

    • Server-id: Angiv en entydig værdi for hver server og replikeringsklient i MySQL-klyngen. Standardværdien er 1000.

    Bemærkning

    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.

  4. 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 DECIMAL og NUMERIC kolonneværdier:
      • Precise: Repræsenterer værdier ved hjælp af præcise decimaltyper (f.eks. Java BigDecimal) for at sikre fuld præcision og nøjagtighed i datarepræsentation.
      • 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.

Strøm- eller kildedetaljer

  1. 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:

      1. For Kildenavn skal du vælge Pencil-knappen for at ændre navnet.

      2. 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:

      1. Vælg Fabric-arbejdsområdet , hvor du vil oprette eventstreamen.

      2. For Eventstream-navn, vælg Pencil-knappen og indtast et navn til eventstreamen.

      3. 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.

  2. 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).

Få vist oplysninger om datastream

  1. Hvis du vælger Open eventstream på siden Gennemse + opret forbindelse, åbner guiden den hændelsesstream, som den har oprettet for dig, med den valgte Azure MySQL DB CDC som kilde. For at lukke guiden skal du vælge Færdiggør eller X* i øverste højre hjørne af siden.

    Skærmbillede, der viser siden Gennemse + opret forbindelse, når kilden er oprettet.

  2. Du bør kunne se streamen i afsnittet Seneste streamingdata på startsiden forReal-Time hub . Du kan finde detaljerede trin under Få vist detaljer om datastrømme i Fabric Real-Time-hubben.

.

Du kan få mere at vide om brug af datastrømme i følgende artikler: