Udostępnij za pośrednictwem


Publiczny interfejs API REST dublowania usługi Microsoft Fabric

Publiczne interfejsy API dublowania sieci szkieletowej składają się z dwóch kategorii: (1) operacje CRUD dla dublowanego elementu bazy danych sieci szkieletowej oraz (2) Operacje uruchamiania/zatrzymywania i monitorowania. Podstawowa dokumentacja referencyjna online dla interfejsów API REST usługi Microsoft Fabric znajduje się w dokumentacji interfejsu API REST usługi Microsoft Fabric.

Uwaga

Te interfejsy API REST nie mają zastosowania do dublowanej bazy danych z usługi Azure Databricks.

Tworzenie dublowanej bazy danych

Interfejs API REST — Elementy — tworzenie dublowanej bazy danych

Przed utworzeniem dublowanej bazy danych potrzebne jest odpowiednie połączenie ze źródłem danych. Jeśli nie masz jeszcze połączenia, zapoznaj się z tematem Tworzenie nowego połączenia przy użyciu portalu i użyj tego identyfikatora połączenia w poniższej definicji. Możesz również zapoznać się z artykułem Tworzenie nowego interfejsu API REST połączenia w celu utworzenia nowego połączenia przy użyciu interfejsów API REST sieci szkieletowej.

Przykład:

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

Treść:

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

Właściwość ładunku w poprzedniej treści JSON jest zakodowana w formacie Base64. Do kodowania można użyć kodowania base64 i dekodowania . Oryginalne przykłady definicji JSON dla różnych typów źródeł są następujące:

Jeśli chcesz replikować selektywne tabele zamiast wszystkich tabel w określonej bazie danych, zapoznaj się z przykładem definicji JSON replikowania określonych tabel.

Ważne

Aby dublować dane z usługi Azure SQL Database lub Azure SQL Managed Instance, przed rozpoczęciem dublowania należy również wykonać następujące czynności:

  1. Włącz tożsamość zarządzaną przypisaną przez system (SAMI) serwera logicznego Azure SQL lub usługi Azure SQL Managed Instance.
  2. Przyznaj uprawnienia DO odczytu i zapisu SAMI do dublowanej bazy danych. Obecnie należy to zrobić w portalu sieci szkieletowej. Alternatywnie możesz przyznać rolę w obszarze roboczym SAMI przy użyciu interfejsu API dodawania przypisania roli w obszarze roboczym .

Uwaga

defaultSchema właściwość wskazuje, czy replikować hierarchię schematu z źródłowej bazy danych. Jeśli region pojemności Fabric znajduje się w Północno-Centralnych Stanach Zjednoczonych lub we Wschodnich Stanach Zjednoczonych, nie należy określać tej właściwości, ponieważ obecnie ta funkcja nie jest obsługiwana w tych regionach.

Przykład definicji JSON snowflake

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

Przykład definicji JSON usługi 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"
            }
        }
    }
}

Przykład definicji JSON usługi 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"
            }
        }
    }
}

Przykład definicji JSON usługi Azure Cosmos DB

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

Przykład definicji JSON otwierania dublowania

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

Przykład definicji JSON replikowania określonych tabel

Poprzednie przykłady dotyczą scenariusza, który automatycznie replikuje wszystkie tabele w określonej bazie danych. Jeśli chcesz określić tabele do replikacji, możesz określić mountedTables właściwość, jak w poniższym przykładzie.

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

Odpowiedź 201:

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

Usuwanie dublowanej bazy danych

Interfejs API REST — Elementy — usuwanie dublowanej bazy danych

Przykład:

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

Odpowiedź 200: (Brak treści)

Pobieranie dublowanej bazy danych

Interfejs API REST — Elementy — uzyskiwanie dublowanej bazy danych

Przykład:

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

Odpowiedź 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"
    }
}

Pobieranie definicji dublowanej bazy danych

Interfejs API REST — Elementy — uzyskiwanie definicji dublowanej bazy danych

Przykład:

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

Odpowiedź 200:

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

Lista dublowanych baz danych

Interfejs API REST — elementy — dublowane bazy danych listy

Przykład:

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

Odpowiedź 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"
            }
        }
    ] 
} 

Aktualizowanie dublowanej bazy danych

Interfejs API REST — Elementy — aktualizowanie dublowanej bazy danych

Przykład:

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

Treść:

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

Odpowiedź 200:

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

Aktualizowanie definicji dublowanej bazy danych

Interfejs API REST — Elementy — aktualizowanie definicji dublowanej bazy danych

Przykład:

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

Treść:

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

Odpowiedź 200: (Brak treści)

Uwaga

Ten interfejs API obsługuje dodawanie/usuwanie tabel przez odświeżenie mountedTables właściwości. Obsługuje również aktualizowanie identyfikatora połączenia źródłowego, nazwy bazy danych i schematu domyślnego (te trzy właściwości można zaktualizować tylko wtedy, gdy pobierz stan mirroringu interfejs API zwraca Initialized/Stopped).

Uzyskiwanie stanu dublowania

Interfejs API REST — dublowanie — uzyskiwanie stanu dublowania

Ten interfejs API zwraca stan dublowanego wystąpienia bazy danych. Lista dostępnych stanów znajduje się w wartościach MirroringStatus.

Przykład:

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

Odpowiedź 200:

{
    "status": "Running"
}

Rozpoczynanie dublowania

Interfejs API REST — dublowanie — rozpoczynanie dublowania

Przykład:

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

Odpowiedź 200: (Brak treści)

Uwaga

Nie można uruchomić mirroringu, gdy powyżej Get mirroring status interfejs API zwraca status Initializing.

Pobieranie stanu dublowania tabel

Interfejs API REST — dublowanie — uzyskiwanie stanu dublowania tabel

Jeśli funkcja dublowania jest uruchamiana i interfejs API uzyskiwania stanu dublowania zwraca stan, ten interfejs API zwraca Running stan i metryki replikacji tabel.

Przykład:

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

Odpowiedź 200:

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

Zatrzymaj dublowanie

Interfejs API REST — dublowanie — zatrzymywanie dublowania

Przykład:

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

Odpowiedź 200: (Brak treści)

Uwaga

Po zatrzymaniu mirroringu można wywołać API uzyskiwania stanu mirroringu, aby wykonać zapytanie dotyczące stanu mirroringu.

Microsoft Fabric .NET SDK

Zestaw .NET SDK, który obsługuje dublowanie sieci szkieletowej, jest dostępny w zestawie SDK platformy .NET usługi Microsoft Fabric. Wersja musi mieć wartość >= 1.0.0-beta.11.