Condividi tramite


API REST pubblica del mirroring di Microsoft Fabric

Le API pubbliche per il mirroring dell'infrastruttura sono costituite da due categorie: (1) operazioni CRUD per l'elemento del database con mirroring dell'infrastruttura e (2) Avvio/arresto e operazioni di monitoraggio. La documentazione di riferimento online principale per le API REST di Microsoft Fabric è disponibile nelle informazioni di riferimento sulle API REST di Microsoft Fabric.

Nota

Queste API REST non si applicano al database con mirroring di Azure Databricks.

Creare un database con mirroring

API REST - Elementi - Creare un database con mirroring

Prima di creare il database con mirroring, è necessaria la connessione all'origine dati corrispondente. Se non si ha ancora una connessione, vedere creare una nuova connessione usando il portale e usare tale ID connessione nella definizione seguente. È anche possibile fare riferimento alla creazione di una nuova API REST di connessione per creare una nuova connessione usando le API REST di Fabric.

Esempio:

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

Corpo:

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

La proprietà payload nel corpo JSON precedente è codificata in Base64. È possibile usare codifica e decodifica Base64 per codificare. Gli esempi di definizione JSON originali per diversi tipi di origini seguono:

Per replicare tabelle selettive invece di tutte le tabelle nel database specificato, fare riferimento all'esempio di definizione JSON della replica delle tabelle specificate.

Importante

Per eseguire il mirroring dei dati da database SQL di Azure o Istanza gestita di SQL di Azure, è necessario eseguire le operazioni seguenti prima di avviare il mirroring:

  1. Abilitare l'identità gestita assegnata dal sistema del server logico SQL di Azure o Istanza gestita di SQL di Azure.
  2. Concedere l'autorizzazione SAMI Read and Write al database con mirroring. Attualmente è necessario eseguire questa operazione nel portale di Fabric. In alternativa, è possibile concedere il ruolo dell'area di lavoro SAMI usando l'API "Aggiungi assegnazione ruolo area di lavoro" .

Nota

La proprietà defaultSchema indica se replicare la gerarchia dello schema dal database di origine.

Esempio di definizione JSON di Snowflake

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

Esempio di definizione JSON di database SQL di Azure

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

Esempio di definizione JSON di Istanza gestita di SQL di Azure

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

Esempio di definizione JSON di Azure Cosmos DB

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

Esempio di definizione JSON del mirroring aperto

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

Esempio di definizione JSON della replica delle tabelle specificate

Gli esempi precedenti si applicano allo scenario che replica automaticamente tutte le tabelle nel database specificato. Se si desidera specificare le tabelle da replicare, è possibile specificare la mountedTables proprietà , come nell'esempio seguente.

{
    "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"
                    }
                }
            }
        ]
    }
}

Risposta 201:

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

Eliminare il database con mirroring

API REST - Elementi - Eliminare il database con mirroring

Esempio:

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

Risposta 200: (Nessun corpo)

Ottenere il database con mirroring

API REST - Elementi - Ottenere il database con mirroring

Esempio:

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

Risposta 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"
    }
}

Ottenere la definizione del database con mirroring

API REST - Elementi - Ottenere la definizione del database con mirroring

Esempio:

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

Risposta 200:

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

Elencare i database con mirroring

API REST - Elementi - Elencare i database con mirroring

Esempio:

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

Risposta 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"
            }
        }
    ] 
} 

Aggiornare il database con mirroring

API REST - Elementi - Aggiornare il database con mirroring

Esempio:

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

Corpo:

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

Risposta 200:

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

Aggiornare la definizione del database con mirroring

API REST - Elementi - Aggiornare la definizione del database con mirroring

Esempio:

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

Corpo:

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

Risposta 200: (Nessun corpo)

Nota

Questa API supporta l'aggiunta o la rimozione di tabelle aggiornando la mountedTables proprietà . Supporta anche l'aggiornamento dell'ID di connessione di origine, del nome del database e dello schema predefinito. Queste tre proprietà possono essere aggiornate solo quando l'API ottiene lo stato del mirroring e restituisce Initialized/Stopped.

Ottenere lo stato del mirroring

API REST - Mirroring - Ottenere lo stato del mirroring

Questa API restituisce lo stato dell'istanza del database con mirroring. L'elenco degli stati disponibili viene fornito in corrispondenza dei valori di MirroringStatus.

Esempio:

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

Risposta 200:

{
    "status": "Running"
}

Avviare il mirroring

API REST - Mirroring - Avviare il mirroring

Esempio:

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

Risposta 200: (Nessun corpo)

Nota

Non è possibile avviare il mirroring quando sopra Ottenere lo stato del mirroring API restituisce Initializing stato.

Ottenere lo stato del mirroring delle tabelle

API REST - Mirroring - Ottenere lo stato del mirroring delle tabelle

Se il mirroring viene avviato e stato, questa API restituisce lo stato e le metriche della replica delle tabelle.

Esempio:

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

Risposta 200:

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

Arrestare il mirroring

API REST - Mirroring - Arrestare il mirroring

Esempio:

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

Risposta 200: (Nessun corpo)

Nota

Dopo aver arrestato il mirroring, è possibile chiamare Ottenere lo stato del mirroring API per eseguire query sullo stato del mirroring.

SDK .NET Microsoft Fabric

.NET SDK che supporta il mirroring dell'infrastruttura è disponibile in Microsoft Fabric .NET SDK. La versione deve essere >= 1.0.0-beta.11.