Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Spegling i Fabric (nu tillgänglig) ger en enkel upplevelse för att undvika komplex ETL (Extrahera, transformera och ladda) och integrera din befintliga Azure Database for PostgreSQL-miljö med resten av dina data i Microsoft Fabric. Du kan kontinuerligt replikera din befintliga Azure Database for PostgreSQL direkt till Fabric OneLake. I Fabric kan du låsa upp kraftfull affärsintelligens, artificiell intelligens, datateknik, datavetenskap och datadelningsscenarier.
Viktigt!
Nyligen skapade servrar efter Ignite 2025 innehåller automatiskt den senaste allmänna tillgänglighetsversionen av speglingskomponenter. Befintliga servrar uppgraderas progressivt som en del av nästa underhållscykler utan manuella åtgärder. Du behöver inte inaktivera och återaktivera spegling för att ta emot uppdateringar.
Arkitektur
Infrastrukturspegling i Azure Database for PostgreSQL bygger på begrepp som logisk replikering och CDC-designmönster (Change Data Capture).
När du upprättar Fabric-spegling för en databas i en flexibel Azure Database for PostgreSQL-serverinstans skapar en PostgreSQL-bakgrundsprocess en första ögonblicksbild för valda tabeller som ska speglas. Den skickar ögonblicksbilden till en Fabric OneLake-landningszon i Parquet-format. En replikatorprocess som körs i Fabric tar dessa första ögonblicksbildsfiler och skapar Delta-tabeller i den speglade databasartefakten.
Källdatabasen samlar in efterföljande ändringar som tillämpas på valda tabeller. De här ändringarna skickas till OneLake-landningszonen i omgångar som ska tillämpas på respektive Delta-tabeller i den speglade databasartefakten.
Vad är CDC (Change Data Capture)?
Change Data Capture (CDC) är en metod som gör det möjligt för program att identifiera och samla in ändringar som gjorts i en databas.
Den förlitar sig inte på explicita SQL-frågor för att spåra ändringar.
I stället innebär det en kontinuerlig ström av ändringshändelser som publiceras av databasservern.
Klienter kan prenumerera på den här strömmen för att övervaka ändringar, med fokus på specifika databaser, enskilda tabeller eller till och med delmängder av kolumner i en tabell.
För Fabric-spegling implementeras CDC-mönstret i ett proprietärt PostgreSQL-tillägg som kallas azure_cdc. Kontrollplanet för en flexibel Azure Database for PostgreSQL-serverinstans installeras och registreras i källdatabaser under arbetsflödet för infrastrukturspegling.
Azure Change Data Capture-tillägg (CDC)
Azure CDC är ett tillägg för PostgreSQL som förbättrar funktionerna i logisk avkodning.
Den tolkar och transformerar wal-data (Write-Ahead Log) till ett begripligt logiskt format.
Tillägget konverterar databasändringar till en sekvens med logiska åtgärder som INSERT, UPDATE och DELETE.
Azure CDC är ett lager ovanpå PostgreSQL:s inbyggda plugin-program för logisk avkodning, pgoutput.
Azure CDC exporterar ögonblicksbilder och ändringar av tabellen som Parquet-filer och kopierar dem till en Microsoft Fabric OneLake-landningszon för efterföljande bearbetning.
Aktivera infrastrukturspegling i Azure-portalen
Med infrastrukturspegling i Azure-portalen för en flexibel Azure Database for PostgreSQL-serverinstans kan du replikera dina PostgreSQL-databaser till Microsoft Fabric. Den här funktionen hjälper dig att integrera dina data sömlöst med andra tjänster i Microsoft Fabric, vilket möjliggör avancerade analys-, business intelligence- och datavetenskapsscenarier. Genom att följa några enkla steg i Azure-portalen kan du konfigurera nödvändiga förutsättningar och börja spegla dina databaser för att använda den fulla potentialen i Microsoft Fabric.
Versioner som stöds
Azure Database for PostgreSQL stöder PostgreSQL 14 och senare för fabric-spegling.
Förutsättningar
Innan du kan använda Fabric-spegling i en flexibel instans av Azure Database för PostgreSQL måste du konfigurera flera förutsättningar.
-
Systemtilldelad hanterad identitet (SAMI) måste vara aktiverad.
- Azure CDC använder den här identiteten för att autentisera kommunikationen med Fabric OneLake, kopiera initiala ögonblicksbilder och ändra batchar till landningszonen.
Du konfigurerar ytterligare krav via ett dedikerat aktiveringsarbetsflöde som beskrivs i följande avsnitt. Dessa förutsättningar är:
wal_level serverparameter måste anges till "logisk".
- Aktiverar logisk replikering för källservern.
max_worker_processes serverparametern måste ökas för att hantera fler bakgrundsprocesser för spegling.
azure_cdc tillägg. Azure CDC-tillägget (azure_cdc) är förinläst på källservern och registrerats för att valda databaser ska speglas (det kräver omstart).
En ny sida är tillgänglig i Azure-portalen för att automatisera dessa nödvändiga konfigurationer på källservern.
Välj Kom igång för att initiera aktiveringsarbetsflödet.
Den här sidan visar aktuell status för nödvändiga förutsättningar. Om systemtilldelad hanterad identitet (SAMI) inte är aktiverad för den här servern väljer du länken som ska omdirigeras till sidan där du kan aktivera den här funktionen.
När du är klar väljer du databaserna för att aktivera Fabric-spegling (upp till tre som standard, men du kan öka denna gräns genom att ändra serverparametern max_mirrored_databases) och sedan välja Förbered.
Arbetsflödet visar popup-fönstret Starta om server. Genom att välja Starta om startar du processen. Arbetsflödet automatiserar alla återstående konfigurationssteg. Du kan börja skapa din speglade databas från Fabric-användargränssnittet.
Skapa en databasroll för Fabric Mirroring
Därefter måste du ange eller skapa en PostgreSQL-roll för Fabric-tjänsten för att ansluta till din flexibla Azure Database for PostgreSQL-server.
Du kan utföra den här uppgiften genom att ange en databasroll för att ansluta till källsystemet.
Anmärkning
Både Entra-ID och lokala databasroller stöds för att ansluta Fabric-spegling till Azure Database for PostgreSQL, välj den autentiseringsmetod som bäst passar dina syften.
Använda en databasroll
Anslut till Azure Database for PostgreSQL med Visual Studio Code eller pgAdmin. Anslut med en huvudansvarig som är medlem i rollen
azure_pg_admin.Skapa en PostgreSQL-roll med namnet
fabric_user. Du kan välja valfritt namn för den här rollen. Ange ditt eget starka lösenord. Bevilja de behörigheter som krävs för infrastrukturspegling i databasen. Kör följande SQL-skript för att bevilja behörigheternaCREATEDB,CREATEROLE,LOGIN,REPLICATIONochazure_cdc_admintill den nya rollen med namnetfabric_user.-- create a new user to connect from Fabric CREATE ROLE fabric_user CREATEDB CREATEROLE LOGIN REPLICATION PASSWORD '<strong password>'; -- grant role for replication management to the new user GRANT azure_cdc_admin TO fabric_user; -- grant create permission on the database to mirror to the new user GRANT CREATE ON DATABASE <database_to_mirror> TO fabric_user;Databasanvändaren som du skapar måste också vara
ownerav tabellerna som ska replikeras i den speglade databasen. Det här kravet innebär att användaren skapar tabellerna eller ändrar ägarskapet för dessa tabeller med hjälpALTER TABLE <table name here> OWNER TO fabric_user;av .- När du byter ägarskap till ny användare kan du behöva bevilja användaren alla behörigheter
publici schemat innan. Mer information om hantering av användarkonton finns i Dokumentation om användarhantering i Azure Database for PostgreSQL, PostgreSQL-produktdokumentation för databasroller och privilegier, GRANT-syntax och behörigheter.
- När du byter ägarskap till ny användare kan du behöva bevilja användaren alla behörigheter
Viktigt!
Om något av de tidigare säkerhetskonfigurationsstegen saknas kommer efterföljande speglade åtgärder i Fabric-portalen att misslyckas med ett Internal error-meddelande.
Serverparametrar
Dessa serverparametrar påverkar direkt Fabric-spegling för Azure Database for PostgreSQL och kan användas för att justera replikeringsprocessen till Fabric OneLake:
Azure.fabric_mirror_enabled: Standardvärdet är inaktiverat. Den här parametern anger flaggan som anger om spegling är aktiverat på servern. Den ställs in automatiskt i slutet av arbetsflödet för serveraktivering, så du bör inte ändra den manuellt.
max_replication_slots: Standardvärde 10. Vi använder ett replikeringsfack per speglad databas, men kunderna kan överväga att öka detta om de skapar fler speglar eller har andra replikeringsplatser som skapats för andra ändamål (logisk replikering).
max_wal_senders: Standardvärdet är 10. Precis som med föregående parameter använder vi en
walavsändarprocess per spegling, vilket bör ökas vid spegling av fler databaser.max_worker_processes: Standardvärdet är 8. Efter den första ögonblicksbilden använder vi en process för varje speglad databas eller där spegling är aktiverad (men ingen speglad artefakt har skapats i Fabric ännu). Du måste öka det här värdet om du har andra tillägg eller arbetsbelastningar med fler arbetsprocesser.
max_parallel_workers: Standardvärdet är 8, vilket begränsar antalet arbetare som kan köras samtidigt. Om du aktiverar flera speglingssessioner på samma server kan du överväga att öka den här parametern så att fler parallella åtgärder tillåts (till exempel ökad parallellitet i inledande ögonblicksbilder).
azure_cdc.max_fabric_mirrors Standardvärdet är 3. Kunder kan öka det här värdet om de behöver spegla fler än tre databaser på den här servern. Det är viktigt att tänka på att varje ny speglad databas förbrukar serverresurser (fem bakgrundsprocesser som använder processor- och minnesresurser för att skapa ögonblicksbilder och ändra batchbearbetning), så beroende på hur upptagen servern är bör du övervaka resursanvändningen och skala upp beräkningsstorleken till nästa tillgängliga storlek om processor- och minnesanvändningen ständigt överstiger 80% eller prestanda inte är vad du förväntar dig.
azure_cdc.max_snapshot_workers: Standardvärdet är 3. Maximalt antal arbetsprocesser som användes när ögonblicksbilden skapades. Öka detta för att påskynda skapandet av första ögonblicksbilder när du ökar antalet speglade databaser. Du bör dock överväga alla andra bakgrundsprocesser som körs i systemet innan du gör det.
azure_cdc.change_batch_buffer_size: Standardvärdet är 16 MB. Maximal buffertstorlek (i MB) för ändringsbatch. Tabellen visar att mycket data buffras upp till detta innan de skrivs till den lokala disken. Beroende på dataändringsfrekvensen för dina speglade databaser kan du justera det här värdet för att minska frekvensen för ändringsbatch eller öka det om du vill prioritera det övergripande dataflödet.
azure_cdc.change_batch_export_timeout: Standardvärdet är 30. Maximal inaktivitetstid (i sekunder) mellan ändra batchmeddelanden. När den överskrids markerar vi den aktuella batchen som slutförd. Beroende på dataändringsfrekvensen för dina speglade databaser kan du justera det här värdet för att minska frekvensen för ändringsbatch eller öka det om du vill prioritera det övergripande dataflödet.
azure_cdc.parquet_compression: Standardvärdet är ZSTD. Den här parametern är endast avsedd för internt bruk, så du bör inte ändra den.
azure_cdc.snapshot_buffer_size: Standardvärdet är 1 000. Den maximala storleken (i MB) för den första ögonblicksbildbufferten. Enligt tabellen buffras mycket data upp till detta innan de skickas till fabric. Kom ihåg att azure_cdc.snapshot_buffer_size*azure_cdc.max_snapshot_workers är den totala minnesbufferten som användes under den första ögonblicksbilden.
azure_cdc.snapshot_export_timeout: Standardvärdet är 180. Maximal tid (i minuter) för att exportera den första ögonblicksbilden. Om den maximala tiden överskrids startas den om.
azure_cdc.prune_local_batches: Standardvärdet är True. Om det är inställt, ta bort batchdata från den lokala disken när den har laddats upp och bekräftats av wal_sender.
Bildskärm
Det är viktigt att övervaka fabric-speglingen i flexibla serverinstanser i Azure Database for PostgreSQL för att säkerställa att speglingsprocessen fungerar smidigt och effektivt. Genom att övervaka statusen för de speglade databaserna kan du identifiera eventuella problem och vidta korrigerande åtgärder.
Du kan använda flera användardefinierade funktioner och tabeller för att övervaka viktiga CDC-mått i Azure Database for PostgreSQL– flexibla serverinstanser och felsöka speglingsprocessen till Fabric.
Övervakningsfunktioner
Speglingsfunktionen för infrastrukturspegling i Azure Database for PostgreSQL replikerar dina PostgreSQL-databaser till Microsoft Fabric sömlöst, så att du kan använda avancerade analys- och dataintegreringsscenarier.
azure_cdc.list_tracked_publications(): För varje publikation i den flexibla källserverinstansen returnerar en kommaavgränsad sträng som innehåller följande information
- publicationName (text)
- includeData (bool)
- includeChanges (bool)
- aktiv (bool)
- baseSnapshotDone (bool)
- generationId (int)
azure_cdc.publication_status('pub_name'): För varje publikation i källan returnerar den flexibla serverinstansen en kommaavgränsad sträng med följande information
- <status, start_lsn, stop_lsn, flush_lsn>.
- Status består av ["Slot name", "Origin name", "CDC data destination path", "Active", "Snapshot slutförd", "Progress percentage", "Generation ID", "Completed Batch ID", "Uploaded Batch ID", "CDC start time"]
azure_cdc.is_table_mirrorable('schema_name','table_name'): Givet schema- och tabellnamn returneras om tabellen är speglingsbar. För att en tabell ska vara speglingsbar måste den uppfylla följande villkor:
- Kolumnnamnen innehåller inte något av följande tecken:
[ ;{}\n\t=()] - Kolumntyperna är en av följande typer:
bigintbigserialbooleanbytescharactercharacter varyingdatedouble precisionintegernumericrealserialoidmoneysmallintsmallserialtexttime without time zonetime with time zonetimestamp without time zonetimestamp with time zoneuuid
- Tabellen är inte en vy, materialiserad vy, utländsk tabell, toast-tabell eller partitionerad tabell
- Tabellen har en primärnyckel eller ett unikt, icke-nullbart och icke-partipolitiskt index. Om dessa krav inte uppfylls fungerar mirroring fortfarande med replikidentiteten FULL, men detta kommer att ha stor inverkan på den allmänna replikeringsprestandan och WAL-användningen. Vi rekommenderar att du har en primärnyckel eller ett unikt index för tabeller med icke-trivial storlek.
- Kolumnnamnen innehåller inte något av följande tecken:
Spårningstabeller
- azure_cdc.tracked_publications: en rad för varje befintlig speglad databas i Fabric. Fråga den här tabellen för att förstå statusen för varje publikation.
| Kolumnnamn | Postgres-typ | Förklaring |
|---|---|---|
| publication_id | oid | Publikationens Oid |
| destination_path | text | Sökväg till landningszonen i Fabric OneLake |
| destination_format | azure_cdc.data_format | Format för data i Azure CDC |
| include_data | bool | Om du vill ta med initiala ögonblicksbilddata i publikationen |
| include_changes | bool | Om ändringar ska inkluderas i publikationen |
| active | bool | Om publikationen är aktiv |
| snapshot_done | bool | Om ögonblicksbilden har slutförts |
| snapshot_progress | smallint | Förlopp för ögonblicksbilden |
| snapshot_progress_percentage | text | Procentuellt framsteg av ögonblicksbilden |
| generation_id | int | Generationsidentifierare |
| stream_start_lsn | pg_lsn | Loggsekvensnummer där ändringsströmmen startade |
| stream_start_time | timestamp | Tidsstämpel när ändringsströmmen startade |
| stream_stop_lsn | pg_lsn | Loggsekvensnummer där ändringsströmmen stoppades |
| snapshot_size | bigint | Total storlek på ögonblicksbilden (i byte) |
| total_time | int | Total tid (i sekunder) för publikationen |
-
azure_cdc.tracked_batches: en rad för varje ändringsbatch som samlas in och levereras till Fabric OneLake. Gör en förfrågan mot den här tabellen för att se vilken batch som redan har registrerats och laddats upp till Fabric OneLake. Genom kolumnen
last_written_lsnkan du förstå om en viss transaktion i din källdatabas redan har överförts till Fabric.
| Namn | Postgres-typ | Förklaring |
|---|---|---|
| publication_id | oid | Publikationens Oid |
| completed_batch_id | bigint | Sekvensnummer för satsen (startar från 1). Unikt per publikation |
| last_written_lsn | pg_lsn | LSN för den senaste skrivning av den här batchen |
- azure_cdc.tracked_tables: en rad för varje tabell som spåras i alla publikationer. Innehåller följande fält för alla publicerade tabeller i alla publikationer. Om en tabell ingår i två publikationer visas den två gånger.
| Namn | Postgres-typ | Förklaring |
|---|---|---|
| publication_id | oid | Publikationens Oid |
| table_oid | oid | Oid för tabellen |
| sequence_number | bigint | sekvensnummer för den genererade filen |