Udostępnij za pośrednictwem


Publiczny interfejs API REST mirrorowania Microsoft Fabric

Publiczne interfejsy API replikacji Fabric składają się z dwóch kategorii: (1) operacje CRUD dla replikowanego elementu bazy danych Fabric 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ż skorzystać z interfejsu API REST do tworzenia nowych połączeń, aby utworzyć nowe połączenie przy użyciu Fabric REST APIs.

Przykład:

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

Ciało:

{
    "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. Możesz użyć Base64 Encode and Decode do kodowania. 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 SAMI do odczytu i zapisu do bazy danych lustrzanych. Obecnie należy to zrobić na portalu Fabric. 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.

Przykład definicji JSON w 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"
            }
        },
        "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"
            }
        },
        "target": {
            "type": "MountedRelationalDatabase",
            "typeProperties": {
                "defaultSchema": "xxxx",
                "format": "Delta"
            }
        }
    }
}

Definicja JSON przykładowego serwera elastycznego Azure Database dla PostgreSQL

{
    "properties": {
        "source": {
            "type": "AzurePostgreSql",
            "typeProperties": {
                "connection": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1"
            }
        },
        "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 dublowanej bazy danych programu SQL Server 2025

Ta próbka dotyczy tylko Fabric Mirroring dla programu SQL Server 2025.

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

Przykład definicji JSON dublowanej bazy danych programu SQL Server 2016-2022

Ten przykład dotyczy mirroringu fabrykowego dla SQL Server od wersji 2016 do 2022.

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

Przykład definicji JSON otwartego odwzorowania

{
    "properties": {
        "source": {
            "type": "GenericMirror",
            "typeProperties": {}
        },
        "target": {
            "type": "MountedRelationalDatabase",
            "typeProperties": {
                "defaultSchema": "xxxx",
                "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 ustawić właściwość mountedTables, 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)

Pobierz zduplikowaną bazę 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 zmirorowanej 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 - Lista lustrzanych baz danych

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>

Ciało:

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

Ciało:

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

Odpowiedź 200: (Brak treści)

Właściwość ładunku w poprzedniej treści JSON jest zakodowana w formacie Base64. Możesz użyć Base64 Encode and Decode do kodowania.

Uwaga

Ten interfejs API obsługuje dodawanie/usuwanie tabel przez odświeżanie właściwości mountedTables. Obsługuje również aktualizację 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 interfejs API pobierania stanu lustrzanego zwraca Initialized/Stopped).

Konfigurowanie przechowywania danych

Okres przechowywania danych dublowanych można ustawić przy użyciu retentionInDays właściwości . Wartość domyślna to siedem dni. Dozwolone wartości są liczbą całkowitą z zakresu od 1 do 30.

Przykład definicji JSON przed kodowaniem Base64:

{
    "properties": {
        "source": {...},
        "target": {
            "type": "MountedRelationalDatabase",
            "typeProperties": {
                "defaultSchema": "xxxx",
                "format": "Delta",
                "retentionInDays": 1
            }
        }
    }
}

Uzyskiwanie stanu dublowania

Interfejs API REST — dublowanie — uzyskiwanie stanu dublowania

Ten interfejs API zwraca stan odzwierciedlonego 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 uzyskiwania stanu mirroringu API zwraca Initializing stan.

Pobierz stan odzwierciedlania tabel

Interfejs API REST — dublowanie — uzyskiwanie stanu dublowania tabel

Jeśli funkcja lustrzanej synchronizacji jest uruchamiana i interfejs API pobierania stanu lustrzanej synchronizacji 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 dublowania można wywołać interfejs API Uzyskiwanie stanu dublowania , aby wykonać zapytanie dotyczące stanu dublowania.

Microsoft Fabric .NET SDK

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