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:
- Esempio di definizione JSON di Snowflake
- Esempio di definizione JSON di database SQL di Azure
- Esempio di definizione JSON di Istanza gestita di SQL di Azure
- Esempio di definizione JSON di Azure Cosmos DB
- Esempio di definizione JSON del mirroring aperto
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:
- Abilitare l'identità gestita assegnata dal sistema del server logico SQL di Azure o Istanza gestita di SQL di Azure.
- 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.