Delen via


MySQL Database CDC-bron toevoegen aan een eventstream

Notitie

Dit artikel bevat verwijzingen naar de term SLAVE, een term die Microsoft niet meer gebruikt. Zodra de term uit de software wordt verwijderd, verwijderen we deze uit dit artikel.

In dit artikel leest u hoe u een MySQL Change Data Capture-bron toevoegt aan een eventstream. Op dit moment wordt MySQL Database CDC ondersteund vanuit de volgende services waar de databases openbaar toegankelijk zijn:

  • Azure Database voor MySQL
  • Amazon RDS for MySQL
  • Amazon Aurora MySQL
  • Google Cloud SQL for MySQL (GCP).

In deze handleiding wordt Azure Database for MySQL CDC als voorbeeld gebruikt.

Zodra de MySQL Database CDC-bron is toegevoegd aan de eventstream, worden wijzigingen op rijniveau vastgelegd in de opgegeven tabellen. Deze wijzigingen kunnen vervolgens in realtime worden verwerkt en naar verschillende bestemmingen worden verzonden voor verdere analyse.

Notitie

Deze bron wordt niet ondersteund in de volgende regio's van uw werkruimtecapaciteit: VS - west 3, Zwitserland - west.

Vereisten

  • Toegang tot een werkruimte in de Fabric-capaciteitslicentiemodus of de proeflicentiemodus, met inzender- of hoger machtigingen.
  • Toegang tot een exemplaar van MySQL Database, zoals: een database in Azure Database for MySQL - Flexible Server.
  • Uw MySQL-database moet openbaar toegankelijk zijn en zich niet achter een firewall bevinden of zijn beveiligd in een virtueel netwerk.
  • Als u geen eventstream hebt, maakt u een eventstream.

MySQL-database instellen

De connector maakt gebruik van de Debezium MySQL-connector om wijzigingen in uw MySQL-database vast te leggen. U moet een MySQL-gebruiker met de juiste bevoegdheden definiëren voor alle databases waaruit de Berichtenconnector de wijzigingen kan vastleggen. U kunt de -beheerder gebruiker direct gebruiken om verbinding te maken met de database, die normaal gesproken de juiste bevoegdheden heeft. U kunt ook de volgende stappen uitvoeren om een nieuwe gebruiker te maken:

Notitie

Het nieuwe gebruikers- of beheerdersaccount en het bijbehorende wachtwoord worden gebruikt om later in Eventstream verbinding te maken met de database.

  1. Maak bij de mysql opdrachtprompt de MySQL-gebruiker:

    mysql> CREATE USER 'user'@'%' IDENTIFIED BY 'password';
    
  2. Verdeel de vereiste bevoegdheden aan de gebruiker:

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

    Notitie

    Wanneer een globale leesvergrendeling niet beschikbaar is, zoals in gehoste opties zoals Amazon RDS of Aurora, worden vergrendelingen op tabelniveau gebruikt om de consistente momentopname te maken. In dit geval moet u LOCK TABLES toestemming verlenen aan de gebruiker. Als u FLUSH bewerkingen tijdens de momentopname wilt ondersteunen, moet u mogelijk ook RELOAD of FLUSH_TABLES bevoegdheden verlenen.

  3. Voltooi de machtigingen van de gebruiker:

    mysql> FLUSH PRIVILEGES;
    

Om te bevestigen of de gebruiker of beheerder de vereiste privileges heeft gekregen, voert u dit commando uit. Vervolgens zouden de vereiste privileges in stap 2 moeten worden getoond.

SHOW GRANTS FOR user;

Zie de Debezium-connector voor MySQL: Debezium-documentatie voor meer informatie over het verlenen van de vereiste machtigingen aan de gebruiker.

Het binlog inschakelen

U moet binaire logboekregistratie inschakelen voor MySQL-replicatie. De binaire logboeken registreren transactie-updates voor replicatiehulpprogramma's om wijzigingen door te geven. In deze sectie wordt Azure Database for MySQL CDC gebruikt als voorbeeld om de configuratiestappen weer te geven.

  1. Op de Azure-portalpagina voor uw Azure Database for MySQL-account, selecteer Serverparameters onder Instellingen in het linkernavigatievenster.

  2. Configureer op de pagina Serverparameters de volgende eigenschappen en selecteer Opslaan.

    Een schermopname van de binlog-instellingen voor replicatie onder Serverparameters.

MySQL DB (CDC) toevoegen als bron

Als u nog geen bron aan uw eventstream hebt toegevoegd, selecteer externe bron gebruiken.

Schermopname van de selectie van de tegel Externe bron gebruiken.

Als u de bron toevoegt aan een al gepubliceerde gebeurtenisstroom, schakelt u over naar de bewerkingsmodus, selecteert u Bron toevoegen op het lint en selecteert u Vervolgens Externe bronnen.

Schermopname van de selectie van het menu Bron toevoegen aan externe bronnen.

Op de pagina Een gegevensbron selecteren, zoek en selecteer Connect op de tegel MySQL DB (CDC).

Schermopname van de selectie van MySQL DB (CDC) als brontype in de wizard Gebeurtenissen ophalen.

MySQL DB (CDC) configureren en er verbinding mee maken

  1. Selecteer in het scherm Verbinding maken onder Verbinding de optie Nieuwe verbinding om een cloudverbinding te maken.

    Schermopname van de pagina 'Verbinding maken'.

  2. Voer de volgende verbindingsinstellingen in en verbindingsreferenties voor uw MySQL-database en selecteer vervolgens Verbinding maken.

  3. Voer de volgende informatie in om de CDC-gegevensbron MySQL DB te configureren en selecteer vervolgens Volgende.

    • tabel: Selecteer Alle tabellen of Tabelnaam invoeren. Als u deze laatste selecteert, geeft u tabellen op met behulp van een door komma's gescheiden lijst met volledige tabel-id's (schemaName.tableName) of geldige reguliere expressies. Bijvoorbeeld:

      • Gebruik dbo.test.* om alle tabellen te selecteren waarvan de namen beginnen met dbo.test.
      • Gebruik dbo\.(test1|test2) om dbo.test1 en dbo.test2te selecteren.

      U kunt beide indelingen combineren met komma's. Er kunnen maximaal 100 tabellen worden ingevoerd, waarbij elke tabelnaam (inclusief de schemanaam) is beperkt tot 128 tekens als u rechtstreeks volledige tabel-id's gebruikt.

    • Server-id: Voer een unieke waarde in voor elke server en replicatieclient in het MySQL-cluster. De standaardwaarde is 1000.

    • poort: de standaardwaarde is 3306. Als uw geselecteerde cloudverbinding is geconfigureerd in Verbindingen en gateways beheren, moet u ervoor zorgen dat het poortnummer overeenkomt met het poortnummer dat daar is ingesteld. Als ze niet overeenkomen, heeft het poortnummer in de cloudverbinding in Verbindingen en gateways beheren prioriteit.

    • modus momentopnamevergrendeling: selecteer de Geavanceerde instellingen om de momentopnamevergrendelingsmoduste kiezen. Opties zijn:

      • minimale (standaard): bevat alleen een globale leesvergrendeling tijdens de eerste fase om het schema en de metagegevens vast te leggen. De rest van de momentopname maakt gebruik van een transactie met HERHAALBARE LEZEN, waardoor updates kunnen plaatsvinden terwijl er gegevens worden gelezen.

      • Uitgebreide: onderhoudt een globale leesvergrendeling voor de volledige duur van de momentopname, waardoor alle schrijfbewerkingen worden geblokkeerd. Gebruik deze optie voor volledige consistentie als schrijfblokkering acceptabel is.

      • Geen: hiermee wordt het ophalen van tabelvergrendelingen tijdens de momentopname overgeslagen. Alleen veilig als er tijdens het proces geen schemawijzigingen optreden.

        Een schermopname van het selecteren van tabellen, server-id en poort voor de Azure MySQL DB-verbinding (CDC).

    U kunt ook de bronnaam bewerken door de knop Potlood voor bronnaam te selecteren in de sectie Details van stream aan de rechterkant.

    Notitie

    Stel een andere server-id in voor elke lezer. Elke MySQL-databaseclient voor het lezen van binlog moet een unieke id hebben, server-id genoemd. MySQL Server gebruikt deze id om de netwerkverbinding en de binlog-positie te behouden. Verschillende taken die dezelfde Server-ID delen, kunnen resulteren in het lezen van de verkeerde binlogpositie. Daarom is het raadzaam om voor elke lezer een andere server-id in te stellen.

  4. Op de pagina Review + verbinding maken, selecteer na het bekijken van de samenvatting voor de MySQL DB CDC-bron Toevoegen om de configuratie te voltooien.

    Schermopname die de Review + verbinding pagina toont met de knop Toevoegen geselecteerd.

Notitie

Het maximum aantal bronnen en bestemmingen voor één eventstream is 11.

Bijgewerkte eventstream weergeven

  1. U ziet dat de MySQL DB-bron (CDC) is toegevoegd aan uw eventstream in bewerkingsmodus.

    Een schermopname van de toegevoegde Azure MySQL DB CDC-bron in de bewerkingsmodus met de knop Publiceren gemarkeerd.

  2. Selecteer Publish om de wijzigingen te publiceren en mySQL DB CDC-gegevens naar de eventstream te streamen.

    Een schermopname van de toegevoegde Azure MySQL DB CDC-bron in de livemodus.

Andere connectors: