Ö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:
- JSON-Definitionsbeispiel für Snowflake
- JSON-Definitionsbeispiel für Azure SQL-Datenbank
- JSON-Definitionsbeispiel für Azure SQL Managed Instance
- JSON-Definitionsbeispiel für Azure Cosmos DB
- JSON-Definitionsbeispiel für die offene Spiegelung
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:
- Aktivieren Sie die vom System zugewiesene verwaltete Identität (System Assigned Managed Identity, SAMI) Ihres logischen Azure SQL-Servers oder Azure SQL Managed Instance.
- 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.