Freigeben über


Öffentliche REST-API für die Microsoft Fabric-Spiegelung

Die öffentlichen APIs für die Fabric-Spiegelung bestehen aus zwei Kategorien: (1) CRUD-Vorgänge für ein mit Fabric gespiegeltes Datenbankelement und (2) Start-/Stopp- und Überwachungsvorgänge. Die primäre Online-Referenzdokumentation für Microsoft Fabric-REST-APIs finden Sie in Microsoft Fabric-REST-API-Referenzen.

Hinweis

Diese REST-APIs gelten nicht für gespiegelte Datenbanken von Azure Databricks.

Erstellen einer gespiegelten Datenbank

REST-API – Elemente – Erstellen einer gespiegelten Datenbank

Bevor Sie eine gespiegelte Datenbank erstellen, brauchen Sie die entsprechende Datenquellenverbindung. Wenn Sie noch keine Verbindung haben, lesen Sie Neue Verbindung mithilfe des Portals erstellen und verwenden Sie diese Verbindungs-ID in der folgenden Definition. Sie können auch auf die Erstellung einer neuen REST-API für die Verbindung verweisen, um eine neue Verbindung mithilfe von Fabric-REST-APIs zu erstellen.

Beispiel:

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

Text:

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

Die Payloadeigenschaft im vorherigen JSON-Textkörper ist Base64-codiert. Sie können Base64-Codierung und -Decodierung verwenden, um zu kodieren. Die ursprünglichen JSON-Definitionsbeispiele für verschiedene Arten von Quellen folgen:

Wenn Sie selektiv Tabellen statt aller Tabellen in der angegebenen Datenbank replizieren möchten, lesen Sie das JSON-Definitionsbeispiel für die Replikation von bestimmten Tabellen.

Wichtig

Zum Spiegeln von Daten aus Azure SQL-Datenbank oder Azure SQL Managed Instance müssen Sie auch die folgenden Schritte ausführen, bevor Sie mit der Spiegelung beginnen:

  1. Aktivieren Sie die vom System zugewiesene verwaltete Identität (System Assigned Managed Identity, SAMI) Ihres logischen Azure SQL-Servers oder Azure SQL Managed Instance.
  2. Erteilen Sie der SAMI Lese- und Schreibberechtigungen für die gespiegelte Datenbank. Derzeit müssen Sie dies im Fabric-Portal tun. Alternativ können Sie die SAMI-Arbeitsbereichsrolle mithilfe der API zum Hinzufügen von Rollenzuweisungen für Arbeitsbereiche zuweisen.

JSON-Definitionsbeispiel für Snowflake

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

JSON-Definitionsbeispiel für Azure SQL-Datenbank

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

JSON-Definitionsbeispiel für Azure SQL Managed Instance

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

JSON-Definitionsbeispiel für 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-Definitionsbeispiel für die offene Spiegelung

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

JSON-Definitionsbeispiel für das Replizieren von bestimmten Tabellen

Die vorherigen Beispiele gelten für das Szenario, in dem alle Tabellen in der angegebenen Datenbank automatisch repliziert werden. Wenn Sie die zu replizierenden Tabellen angeben möchten, können Sie die mountedTables-Eigenschaft wie im folgenden Beispiel angeben.

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

Antwort 201:

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

Gespiegelte Datenbank löschen

REST-API – Elemente – Gespiegelte Datenbank löschen

Beispiel:

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

Antwort 200: (Kein Textkörper)

Gespiegelte Datenbank abrufen

REST-API – Elemente – Gespiegelte Datenbank abrufen

Beispiel:

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

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

Abrufen einer gespiegelten Datenbankdefinition

REST-API – Elemente – Abrufen einer gespiegelten Datenbankdefinition

Beispiel:

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

Antwort 200:

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

Gespiegelte Datenbanken auflisten

REST-API – Elemente – Gespiegelte Datenbanken auflisten

Beispiel:

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

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

Aktualisieren der gespiegelten Datenbank

REST-API – Elemente – Aktualisieren der gespiegelten Datenbank

Beispiel:

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

Text:

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

Antwort 200:

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

Aktualisieren der gespiegelten Datenbankdefinition

REST-API – Elemente – Aktualisieren der gespiegelten Datenbankdefinition

Beispiel:

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

Text:

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

Antwort 200: (Kein Textkörper)

Hinweis

Diese API unterstützt das Hinzufügen/Entfernen von Tabellen durch Aktualisieren der mountedTables-Eigenschaft. Es unterstützt auch die Aktualisierung der Quellverbindungs-ID, des Datenbanknamens und des Standardschemas (diese drei Eigenschaften können nur aktualisiert werden, wenn die API Spiegelungsstatus abrufen Initialized/Stopped zurückgibt).

Spiegelungsstatus abrufen

REST-API – Spiegelung – Spiegelungsstatus abrufen

Diese API gibt den Status der gespiegelten Datenbankinstanz zurück. Die Liste der verfügbaren Status wird bei Werten von MirroringStatus bereitgestellt.

Beispiel:

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

Antwort 200:

{
    "status": "Running"
}

Spiegelung starten

REST-API – Spiegelung – Spiegelung starten

Beispiel:

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

Antwort 200: (Kein Textkörper)

Hinweis

Die Spiegelung kann nicht gestartet werden, wenn die obige API Spiegelungsstatus abrufen den Status Initializing zurückgibt.

Status der Tabellenspiegelung abrufen

REST-API – Spiegelung – Status der Tabellenspiegelung abrufen

Wenn die Spiegelung gestartet wird und die API Spiegelungsstatus abrufen den Status Running zurückgibt, gibt diese API den Status und die Metriken der Tabellenreplikation zurück.

Beispiel:

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

Antwort 200:

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

Spiegelung beenden

REST-API – Spiegelung – Spiegelung beenden

Beispiel:

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

Antwort 200: (Kein Textkörper)

Hinweis

Nach dem Beenden der Spiegelung können Sie die Status-API Spiegelungsstatus abrufen aufrufen, um den Spiegelungsstatus abzufragen.

Microsoft Fabric .NET SDK

Das .NET SDK, das Fabric-Spiegelung unterstützt, ist im Microsoft Fabric .NET SDK verfügbar. Die Version muss > = 1.0.0-beta.11 sein.

Bekannte Einschränkungen

Die Authentifizierung für Dienstprinzipal/verwaltete Identitäten wird derzeit nicht unterstützt, wenn sich Ihre Mandanten-Heimregion in USA, Norden-Mitte oder USA, Osten befindet. Sie können es in anderen Regionen verwenden.