Anteckning
Å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 ger en enkel upplevelse för att undvika komplex ETL (Extrahera, Transformera, Ladda) och integrera din befintliga Azure Databas för PostgreSQL– flexibla servertillstånd med övriga 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.
Arkitektur
Infrastrukturspegling i Azure Database for PostgreSQL bygger på begrepp som logisk replikering och CDC-designmönster (Change Data Capture).
När speglingen i Fabric har upprättats för en databas i en PostgreSQL-instans med flexibel server på Azure Database, skapar en bakgrundsprocess i PostgreSQL en initial ögonblicksbild för de valda tabellerna som ska speglas, och denna överförs i Parquet-format till en landningszon i Fabric OneLake. En replikatorprocess som körs i Fabric tar dessa första ögonblicksbildsfiler och skapar Delta-tabeller i den speglade databasartefakten.
Efterföljande ändringar som tillämpas på valda tabeller samlas också in i källdatabasen och skickas till OneLake-landningszonen i batchar 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 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.
Förutsättningar
Flera krav måste konfigureras innan du använder Fabric mirroring i Azure Database för PostgreSQL flexibel serverinstans.
- Systemtilldelad hanterad identitet (SAMI) måste vara aktiverad.\ - Det här är den identitet som används av Azure CDC för att autentisera kommunikation med Fabric OneLake, kopiera initiala snapshots och ändra batchar för landningszonen.
 
- wal_level serverparameter måste anges till "logisk". - Aktiverar logisk replikering för källservern.
 - 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). 
- max_worker_processes serverparametern måste ökas för att hantera fler bakgrundsprocesser för spegling. 
En ny sida är tillgänglig i Azure-portalen för att automatisera nödvändig konfiguration 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 kan du välja databaserna för att aktivera Fabric-spegling (upp till 3 som standard, men detta kan ökas genom att ändra serverparametern max_mirrored_databases) och sedan välja Förbered.
Arbetsflödet visar popup-fönstret Starta om server, och genom att välja Starta om kan du starta processen, vilket automatiserar alla återstående konfigurationssteg, och du kan börja skapa en speglad databas från användargränssnittet för Infrastruktur
Serverparametrar
Dessa serverparametrar påverkar direkt Fabric-spegling för Azure Database for PostgreSQL.
- 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. 
Bildskärm
Övervakning av Fabric-spegling i Azure Database for PostgreSQL – flexibla serverinstanser är viktigt för att se till att speglingsprocessen körs smidigt och effektivt. Genom att övervaka statusen för de speglade databaserna kan du identifiera eventuella problem och vidta korrigerande åtgärder efter behov.
Du kan använda flera användardefinierade funktioner och tabeller för att övervaka viktiga CDC-mått i Azure Database för PostgreSQL flexibla serverinstanser, samt felsöka speglingsprocessen till Fabric.
Övervakningsfunktioner
Med speglingsfunktionen för Fabric-spegling i Azure Database for PostgreSQL kan du replikera dina PostgreSQL-databaser till Microsoft Fabric sömlöst, vilket möjliggör 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: - Kolumnnamnen innehåller inte något av följande tecken: [ ;{}\n\t=()]
- Kolumntyperna är något av följande: - bigint
- bigserial
- boolean
- bytes
- character
- character varying
- date
- double precision
- integer
- numeric
- real
- serial
- oid
- money
- smallint
- smallserial
- text
- time without time zone
- time with time zone
- timestamp without time zone
- timestamp with time zone
- uuid
 
- Tabellen är inte en vy, materialiserad vy, utländsk tabell, toast-tabell eller partitionerad tabell
- Tabellen har en primärnyckel eller ett unikt, icke-null- och icke-partipolitiskt index
 
- 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. Använd den här tabellen för att avgöra vilken batch som redan har registrerats och laddats upp till Fabric OneLake. Med kolumnen last_written_lsnkan du förstå om en viss transaktion i din källdatabas redan har skickats 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 | 
| last_received_lsn | pg_lsn | Senaste LSN mottagen | 
| server_lsn | pg_lsn | aktuell server-LSN (vid den tidpunkt då avbildningen av den här batchen slutfördes) | 
| is_batch_uploaded | bool | Om batchen laddas upp | 
| is_batch_acknowledged | bool | Huruvida vi har bekräftat wal_sender för dessa batchdata(last_written_lsn) | 
| batch_start_time | TIMESTAMPTZ | Tidsstämpel för batchstarten | 
| batch_completion_time | TIMESTAMPTZ | Tidsstämpel för batchens slutförande | 
| batch_uploaded_time | TIMESTAMPTZ | Tidsstämpel för batchuppladdningen | 
| batch_acknowledged_time | TIMESTAMPTZ | Tidsstämpel för batchen när LSN bekräftas till utgivaren | 
| batch_size | int | Batchens storlek (i byte) | 
 
              
               
              
               
              
              