Dela via


Microsoft Fabric-spegling av offentligt REST API

De offentliga API:erna för infrastrukturspegling består av två kategorier: (1) CRUD-åtgärder för infrastrukturspegling av databasobjekt och (2) start-/stopp- och övervakningsåtgärder. Den primära onlinereferensdokumentationen för Microsoft Fabric REST API:er finns i MICROSOFT Fabric REST API-referenser.

Kommentar

Dessa REST-API:er gäller inte för speglad databas från Azure Databricks.

Skapa speglad databas

REST API – Objekt – Skapa speglad databas

Innan du skapar en speglad databas behövs motsvarande datakällaanslutning. Om du inte har någon anslutning ännu kan du läsa skapa en ny anslutning med hjälp av portalen och använda anslutnings-ID:t i följande definition. Du kan också referera till att skapa ett nytt REST-API för anslutning för att skapa en ny anslutning med hjälp av REST-API:er för infrastrukturresurser.

Exempel:

POST https://api.fabric.microsoft.com/v1/workspaces/<your workspace ID>/mirroredDatabases

Brödtext:

{
    "displayName": "Mirrored database 1",
    "description": "A mirrored database description",
    "definition": {
        "parts": [
            {
                "path": "mirroring.json",
                "payload": "eyAicHJvcGVydGllcy..WJsZSIgfSB9IH0gXSB9IH0",
                "payloadType": "InlineBase64"
            }
        ]
    }
}

Nyttolastegenskapen i föregående JSON-brödtext är Base64-kodad. Du kan använda Base64-koda och avkoda för att koda. De ursprungliga JSON-definitionsexemplen för olika typer av källor följer:

Om du vill replikera selektiva tabeller i stället för alla tabeller i den angivna databasen läser du JSON-definitionsexemplet för replikering av angivna tabeller.

Viktigt!

Om du vill spegla data från Azure SQL Database eller Azure SQL Managed Instance måste du också göra följande innan du börjar speglingen:

  1. Aktivera systemtilldelad hanterad identitet (SAMI) för din logiska Azure SQL-server eller Azure SQL Managed Instance.
  2. Ge SAMI läs- och skrivbehörighet till den speglade databasen. För närvarande måste du göra detta på Fabric-portalen. Du kan också bevilja SAMI-arbetsyteroll med hjälp av Lägg till API för rolltilldelning för arbetsyta.

Kommentar

defaultSchema-egenskapen anger om schemahierarkin ska replikeras från källdatabasen.

JSON-definitionsexempel på Snowflake

{
    "properties": {
        "source": {
            "type": "Snowflake",
            "typeProperties": {
                "connection": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1",
                "database": "xxxx"
            }
        },
        "target": {
            "type": "MountedRelationalDatabase",
            "typeProperties": {
                "defaultSchema": "xxxx",
                "format": "Delta"
            }
        }
    }
}

JSON-definitionsexempel på Azure SQL Database

{
    "properties": {
        "source": {
            "type": "AzureSqlDatabase",
            "typeProperties": {
                "connection": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1",
                "landingZone":{
                    "type":"MountedRelationalDatabase"
                }
            }
        },
        "target": {
            "type": "MountedRelationalDatabase",
            "typeProperties": {
                "defaultSchema": "xxxx",
                "format": "Delta"
            }
        }
    }
}

JSON-definitionsexempel på Azure SQL Managed Instance

{
    "properties": {
        "source": {
            "type": "AzureSqlMI",
            "typeProperties": {
                "connection": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1",
                "landingZone":{
                    "type":"MountedRelationalDatabase"
                }
            }
        },
        "target": {
            "type": "MountedRelationalDatabase",
            "typeProperties": {
                "defaultSchema": "xxxx",
                "format": "Delta"
            }
        }
    }
}

JSON-definitionsexempel på Azure Cosmos DB

{
    "properties": {
        "source": {
            "type": "CosmosDb",
            "typeProperties": {
                "connection": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1",
                "database": "xxxx"
            }
        },
        "target": {
            "type": "MountedRelationalDatabase",
            "typeProperties": {
                "defaultSchema": "xxxx",
                "format": "Delta"
            }
        }
    }
}

JSON-definitionsexempel på öppen spegling

{
    "properties": {
        "source": {
            "type": "GenericMirror",
            "typeProperties": {}
        },
        "target": {
            "type": "MountedRelationalDatabase",
            "typeProperties": {
                "format": "Delta"
            }
        }
    }
}

JSON-definitionsexempel på replikering av angivna tabeller

Föregående exempel gäller för scenariot som automatiskt replikerar alla tabeller i den angivna databasen. Om du vill ange de tabeller som ska replikeras kan du ange egenskapen mountedTables , som i följande exempel.

{
    "properties": {
        "source": {
            "type": "<your source type>",
            "typeProperties": {
                "connection": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1",
                "database": "xxxx"
            }
        },
        "target": {
            "type": "MountedRelationalDatabase",
            "typeProperties": {
                "defaultSchema": "xxxx",
                "format": "Delta"
            }
        },
        "mountedTables": [
            {
                "source": {
                    "typeProperties": {
                        "schemaName": "xxxx",
                        "tableName": "xxxx"
                    }
                }
            }
        ]
    }
}

Svar 201:

{ 
    "id": "<mirrored database ID>", 
    "type": "MirroredDatabase", 
    "displayName": "Mirrored database 1", 
    "description": "A mirrored database description", 
    "workspaceId": "<your workspace ID>" 
} 

Ta bort speglad databas

REST API – Objekt – Ta bort speglad databas

Exempel:

DELETE https://api.fabric.microsoft.com/v1/workspaces/<your workspace ID>/mirroredDatabases/<mirrored database ID>

Svar 200: (Ingen brödtext)

Hämta speglad databas

REST API – Objekt – Hämta speglad databas

Exempel:

GET https://api.fabric.microsoft.com/v1/workspaces/<your workspace ID>/mirroredDatabases/<mirrored database ID>

Svar 200:

{
    "displayName": "Mirrored database 1",
    "description": "A mirrored database description.",
    "type": "MirroredDatabase",
    "workspaceId": "<your workspace ID>",
    "id": "<mirrored database ID>",
    "properties": {
        "oneLakeTablesPath": "https://onelake.dfs.fabric.microsoft.com/<your workspace ID>/<mirrored database ID>/Tables",
        "sqlEndpointProperties": {
            "connectionString": "xxxx.xxxx.fabric.microsoft.com",
            "id": "b1b1b1b1-cccc-dddd-eeee-f2f2f2f2f2f2",
            "provisioningStatus": "Success"
        },
        "defaultSchema": "xxxx"
    }
}

Hämta en speglad databasdefinition

REST API – Objekt – Hämta speglad databasdefinition

Exempel:

POST https://api.fabric.microsoft.com/v1/workspaces/<your workspace ID>/mirroredDatabases/<mirrored database ID>/getDefinition

Svar 200:

{ 
    "definition": { 
        "parts":[ 
            { 
                "path": "mirroring.json", 
                "payload": "eyAicHJvcGVydGllcy..WJsZSIgfSB9IH0gXSB9IH0", 
                "payloadType": "InlineBase64" 
            } 
        ] 
    } 
} 

Visa en lista över speglade databaser

REST API – Objekt – Lista speglade databaser

Exempel:

GET https://api.fabric.microsoft.com/v1/workspaces/<your workspace ID>/mirroredDatabases

Svar 200:

{ 
    "value": [ 
        {
            "displayName": "Mirrored database 1",
            "description": "A mirrored database description.",
            "type": "MirroredDatabase",
            "workspaceId": "<your workspace ID>",
            "id": "<mirrored database ID>",
            "properties": {
                "oneLakeTablesPath": "https://onelake.dfs.fabric.microsoft.com/<your workspace ID>/<mirrored database ID>/Tables",
                "sqlEndpointProperties": {
                    "connectionString": "xxxx.xxxx.fabric.microsoft.com",
                    "id": "b1b1b1b1-cccc-dddd-eeee-f2f2f2f2f2f2",
                    "provisioningStatus": "Success"
                },
                "defaultSchema": "xxxx"
            }
        }
    ] 
} 

Uppdatera speglad databas

REST API – Objekt – Uppdatera speglad databas

Exempel:

PATCH https://api.fabric.microsoft.com/v1/workspaces/<your workspace ID>/mirroredDatabases/<mirrored database ID>

Brödtext:

{
    "displayName": "MirroredDatabase's New name",
    "description": "A new description for mirrored database."
}

Svar 200:

{
    "displayName": "MirroredDatabase's New name",
    "description": "A new description for mirrored database.",
    "type": "MirroredDatabase",
    "workspaceId": "<your workspace ID>",
    "id": "<mirrored database ID>"
}

Uppdatera speglad databasdefinition

REST API – Objekt – Uppdatera speglad databasdefinition

Exempel:

POST https://api.fabric.microsoft.com/v1/workspaces/<your workspace ID>/mirroredDatabases/<mirrored database ID>/updateDefinition

Brödtext:

{ 
  "definition": { 
    "parts": [ 
      { 
        "path": "mirroring.json", 
        "payload": "eyAicHJvcGVydGllcy..WJsZSIgfSB9IH0gXSB9IH0", 
        "payloadType": "InlineBase64" 
      } 
    ] 
  } 
}

Svar 200: (Ingen brödtext)

Kommentar

Det här API:et har stöd för att lägga till/ta bort tabeller genom att uppdatera egenskapen mountedTables . Det stöder också uppdatering av källanslutnings-ID, databasnamn och standardschema (dessa tre egenskaper kan bara uppdateras när Hämta speglingsstatus API:et returnerar Initialized/Stopped).

Hämta speglingsstatus

REST API – Spegling – Hämta speglingsstatus

Det här API:et returnerar statusen för den speglade databasinstansen. Listan över tillgängliga statusar anges med värden för MirroringStatus.

Exempel:

POST https://api.fabric.microsoft.com/v1/workspaces/<your workspace ID>/mirroredDatabases/<mirrored database ID>/getMirroringStatus

Svar 200:

{
    "status": "Running"
}

Starta spegling

REST API – Spegling – Starta spegling

Exempel:

POST https://api.fabric.microsoft.com/v1/workspaces/<your workspace ID>/mirroredDatabases/<mirrored database ID>/startMirroring

Svar 200: (Ingen brödtext)

Kommentar

Spegling kan inte startas när ovanstående Hämta speglingsstatus API returnerar Initializing status.

Hämta speglingsstatus för tabeller

REST API – Spegling – Hämta speglingsstatus för tabeller

Om spegling har startats och API:et För att hämta speglingsstatus returnerar Running statusen returnerar det här API:et status och mått för replikering av tabeller.

Exempel:

POST https://api.fabric.microsoft.com/v1/workspaces/<your workspace ID>/mirroredDatabases/<mirrored database ID>/getTablesMirroringStatus

Svar 200:

{
    "continuationToken": null,
    "continuationUri": null,
    "data": [
        {
            "sourceSchemaName": "dbo",
            "sourceTableName": "test",
            "status": "Replicating",
            "metrics": {
                "processedBytes": 1247,
                "processedRows": 6,
                "lastSyncDateTime": "2024-10-08T05:07:11.0663362Z"
            }
        }
    ]
}

Stoppa spegling

REST API – Spegling – Stoppa spegling

Exempel:

POST https://api.fabric.microsoft.com/v1/workspaces/<your workspace ID>/mirroredDatabases/<mirrored database ID>/stopMirroring

Svar 200: (Ingen brödtext)

Kommentar

När speglingen har stoppats kan du anropa Hämta speglingsstatus API för att fråga speglingsstatusen.

Microsoft Fabric .NET SDK

.NET SDK som stöder Fabric-spegling finns på Microsoft Fabric .NET SDK. Versionen måste vara >= 1.0.0-beta.11.