Lägg till MySQL Database CDC-källa i en händelseström
Anteckning
Den här artikeln innehåller referenser till termen SLAVE
, en term som Microsoft inte längre använder. När termen tas bort från programvaran tar vi bort den från den här artikeln.
Den här artikeln visar hur du lägger till en MySQL Change Data Capture-källa i en händelseström. MySQL Database CDC stöds för närvarande från följande tjänster där databaserna kan nås offentligt:
- Azure Database for MySQL-
- Amazon RDS för MySQL
- Amazon Aurora MySQL
- Google Cloud SQL för MySQL (GCP).
Den här guiden använder Azure Database for MySQL CDC som exempel.
När MySQL Database CDC-källan har lagts till i händelseströmmen samlar den in ändringar på radnivå i de angivna tabellerna. Dessa ändringar kan sedan bearbetas i realtid och skickas till olika mål för ytterligare analys.
Kommentar
Den här källan stöds inte i följande regioner i din arbetsytekapacitet: USA, västra 3, Schweiz, västra.
Förutsättningar
- Åtkomst till en arbetsyta i Fabric kapacitetslicensläge (eller) utvärderingslicensläge med medarbetarbehörighet eller högre.
- Åtkomst till en instans av MySQL Database, till exempel: en databas i Azure Database for MySQL – flexibel server.
- MySQL-databasen måste vara offentligt tillgänglig och inte finnas bakom en brandvägg eller skyddas i ett virtuellt nätverk.
- Om du inte har en händelseström, skapa en händelseström.
Konfigurera MySQL DB
Anslutningsappen använder Debezium MySQL-anslutningsappen för att samla in ändringar i din MySQL-databas. Du måste definiera en MySQL-användare med lämpliga behörigheter för alla databaser där Messaging Connector kan samla in ändringarna från. Du kan direkt använda administratörsanvändare för att ansluta till databasen som normalt har rätt behörighet, eller så kan du följa dessa steg för att skapa en ny användare:
Anteckning
Det nya användar- eller administratörskontot och motsvarande lösenord används för att ansluta till databasen senare i Eventstream.
mysql
I kommandotolken skapar du MySQL-användaren:mysql> CREATE USER 'user'@'%' IDENTIFIED BY 'password';
Bevilja användaren de behörigheter som krävs:
mysql> GRANT SELECT, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user'@'%';
Kommentar
När ett globalt läslås inte är tillgängligt, som i värdbaserade alternativ som Amazon RDS eller Aurora, används lås på tabellnivå för att skapa den konsekventa ögonblicksbilden. I det här fallet måste du ge användaren
LOCK TABLES
behörighet. För att stödjaFLUSH
åtgärder under ögonblicksbilden kan du också behöva beviljaRELOAD
ellerFLUSH_TABLES
privilegier.Slutför användarens behörigheter:
mysql> FLUSH PRIVILEGES;
Kontrollera om användaren eller administratören har de behörigheter som krävs genom att köra det här kommandot och sedan ska de behörigheter som krävs i steg 2 visas:
SHOW GRANTS FOR user;
Mer information om hur du beviljar nödvändiga behörigheter till användaren finns i Debezium Connector for MySQL: Debezium Documentation.
Aktivera binlog
Du måste aktivera binär loggning för MySQL-replikering. Binärloggarna registrerar transaktionsuppdateringar för replikeringsverktyg för att sprida ändringar. I det här avsnittet används Azure Database for MySQL CDC- som ett exempel för att visa konfigurationsstegen.
På sidan Azure Portal för ditt Azure Database for MySQL-konto väljer du Serverparametrar under Inställningar i det vänstra navigeringsfältet.
På sidan Serverparametrar konfigurerar du följande egenskaper och väljer sedan Spara.
För binlog_row_image väljer du fullständig.
För binlog_expire_logs_seconds anger du hur många sekunder tjänsten väntar innan den binära loggfilen rensas. Ange värdet för att matcha behoven i din miljö, till exempel 86400.
Lägg till MySQL DB (CDC) som källa
Om du inte har lagt till någon källa i händelseströmmen ännu väljer du Panelen Använd extern källa .
Om du lägger till källan i en redan publicerad händelseström växlar du till Redigeringsläge , väljer Lägg till källa i menyfliksområdet och väljer sedan Externa källor.
På sidan Välj en datakälla söker du efter och väljer Anslut på panelen MySQL DB (CDC).
Konfigurera och ansluta till MySQL DB (CDC)
På skärmen Anslut går du till Anslutning och väljer Ny anslutning för att skapa en molnanslutning.
Ange följande Anslutningsinställningar och autentiseringsuppgifter för anslutning för MySQL DB och välj sedan Anslut.
Server: Serveradressen för din MySQL-databas, till exempel my-mysql-server.mysql.database.azure.com.
Databas: Databasnamnet, till exempel my_database.
Anslutningsnamn: Genereras automatiskt, eller så kan du ange ett nytt namn för den här anslutningen.
Användarnamn och Lösenord: Ange autentiseringsuppgifterna för MySQL-databasen. Kontrollera att du anger serveradministratörskontot eller användarkontot som skapats med nödvändiga behörigheter.
Ange följande information för att konfigurera MySQL DB CDC-datakällan och välj sedan Nästa.
tabell: Välj Alla tabeller eller Ange tabellnamn. Om du väljer det senare anger du tabeller med hjälp av en kommaavgränsad lista med fullständiga tabellidentifierare (
schemaName.tableName
) eller giltiga reguljära uttryck. Till exempel:- Använd
dbo.test.*
för att välja alla tabeller vars namn börjar meddbo.test
. - Använd
dbo\.(test1|test2)
för att väljadbo.test1
ochdbo.test2
.
Du kan blanda båda formaten med kommatecken. Upp till 100 tabeller kan anges, med varje tabellnamn (inklusive schemanamnet) begränsat till 128 tecken om du använder fullständiga tabellidentifierare direkt.
- Använd
Server-ID: Ange ett unikt värde för varje server och replikeringsklient i MySQL-klustret. Standardvärdet är 1000.
Port: Standardvärdet är 3306. Om den valda molnanslutningen har konfigurerats i Hantera anslutningar och gatewayerkontrollerar du att portnumret matchar den som anges där. Om de inte matchar har portnumret i molnanslutningen i Hantera anslutningar och gatewayer företräde.
Läge för låsning av ögonblicksbilder: Välj Avancerade inställningar för att välja läge för ögonblicksbildslåsning. Alternativen är:
Minimal (standard): Rymmer endast ett globalt skrivlås under den inledande fasen för att samla in schema och metadata. Resten av snapshoten använder en REPEATABLE READ-transaktion som tillåter uppdateringar medan data läses.
Extended: Bibehåller ett globalt läslås under hela snapshotens varaktighet och blockerar alla skrivningar. Använd för fullständig konsekvens om skrivblockering är accepterad.
Ingen: Hoppar över att hämta tabelllås under ögonblicksbilden. Endast säkert om inga schemaändringar sker under processen.
Du kan också redigera källnamnet genom att välja pennknappen för Källnamn i avsnittet Strömma information till höger.
Anteckning
Ange ett annat server-ID för varje läsare. Varje MySQL-databasklient för att läsa binlog bör ha ett unikt ID, kallat Server-ID. MySQL Server använder det här ID:t för att underhålla nätverksanslutningen och binlogpositionen. Olika jobb som delar samma server-ID kan resultera i läsning från fel binlogposition. Därför rekommenderar vi att du anger ett annat server-ID för varje läsare.
På sidan Granska + anslut väljer du Lägg till för att slutföra konfigurationen när du har granskat sammanfattningen för MySQL DB CDC-källan.
Kommentar
Det maximala antalet källor och mål för en händelseström är 11.
Visa uppdaterad händelseström
Du ser källan MySQL DB (CDC) som lagts till i din händelseström i Redigeringsläge.
Välj Publicera för att publicera ändringarna och börja strömma MySQL DB CDC-data till händelseströmmen.
Relaterat innehåll
Andra anslutningsappar: