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:
- JSON-definitionsexempel på Snowflake
- JSON-definitionsexempel på Azure SQL Database
- JSON-definitionsexempel på Azure SQL Managed Instance
- JSON-definitionsexempel på Azure Cosmos DB
- JSON-definitionsexempel på öppen spegling
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:
- Aktivera systemtilldelad hanterad identitet (SAMI) för din logiska Azure SQL-server eller Azure SQL Managed Instance.
- 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.