Sdílet prostřednictvím


Zrcadlení veřejných rozhraní REST API v Microsoft Fabric

Veřejná rozhraní API pro zrcadlení prostředků infrastruktury se skládají ze dvou kategorií: (1) Operace CRUD pro položku databáze se zrcadlenou databází infrastruktury a (2) Operace spuštění/zastavení a monitorování. Primární online referenční dokumentace k rozhraním REST API Microsoft Fabric najdete v referenčních materiálech k rozhraní REST API Microsoft Fabric.

Poznámka:

Tato rozhraní REST API se nevztahují na zrcadlenou databázi z Azure Databricks.

Vytvoření zrcadlené databáze

REST API – Položky – Vytvoření zrcadlené databáze

Před vytvořením zrcadlené databáze je potřeba odpovídající připojení ke zdroji dat. Pokud připojení ještě nemáte, projděte si informace o vytvoření nového připojení pomocí portálu a použijte toto ID připojení v následující definici. Můžete také odkazovat na vytvoření nového rozhraní REST API pro připojení k vytvoření nového připojení pomocí rozhraní REST API prostředků infrastruktury.

Příklad:

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

Vlastnost datové části v předchozím textu JSON je zakódovaná v Base64. Kódování a dekódování base64 můžete použít k kódování. Původní příklady definic JSON pro různé typy zdrojů následují:

Pokud chcete replikovat selektivní tabulky místo všech tabulek v zadané databázi, projděte si příklad definice JSON pro replikaci zadaných tabulek.

Důležité

Pokud chcete zrcadlit data ze služby Azure SQL Database nebo azure SQL Managed Instance, musíte před zahájením zrcadlení provést následující kroky:

  1. Povolte spravovanou identitu přiřazenou systémem (SAMI) logického serveru Azure SQL nebo spravované instance Azure SQL.
  2. Udělte zrcadlené databázi oprávnění SAMI ke čtení a zápisu. V současné době to musíte udělat na portálu Fabric. Případně můžete udělit roli pracovního prostoru SAMI pomocí rozhraní API pro přidání přiřazení role pracovního prostoru .

Poznámka:

defaultSchema vlastnost označuje, zda se má replikovat hierarchie schématu ze zdrojové databáze. Pokud je váš region kapacity Fabric v oblasti USA – středosever nebo USA – východ, nezadávejte tuto vlastnost, protože tato funkce není v těchto oblastech aktuálně podporována.

Příklad definice JSON Snowflake

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

Příklad definice JSON služby 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"
            }
        }
    }
}

Příklad definice JSON služby 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"
            }
        }
    }
}

Příklad definice JSON služby Azure Cosmos DB

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

Příklad definice JSON otevřeného zrcadlení

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

Příklad definice JSON pro replikaci zadaných tabulek

Předchozí příklady platí pro scénář, který automaticky replikuje všechny tabulky v zadané databázi. Pokud chcete zadat tabulky, které se mají replikovat, můžete zadat mountedTables vlastnost, jako v následujícím příkladu.

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

Odpověď 201:

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

Odstranění zrcadlené databáze

REST API – Položky – Odstranění zrcadlené databáze

Příklad:

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

Odpověď 200: (Bez textu)

Získání zrcadlené databáze

REST API – Položky – Získání zrcadlené databáze

Příklad:

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

Odpověď 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"
    }
}

Získání definice zrcadlené databáze

REST API – Položky – Získání definice zrcadlené databáze

Příklad:

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

Odpověď 200:

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

Výpis zrcadlených databází

REST API – Položky – Výpis zrcadlených databází

Příklad:

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

Odpověď 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"
            }
        }
    ] 
} 

Aktualizace zrcadlené databáze

REST API – Položky – Aktualizace zrcadlené databáze

Příklad:

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

Odpověď 200:

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

Aktualizace definice zrcadlené databáze

REST API – Položky – Aktualizace definice zrcadlené databáze

Příklad:

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

Odpověď 200: (Bez textu)

Poznámka:

Toto rozhraní API podporuje přidávání nebo odebírání tabulek aktualizací mountedTables vlastnosti. Podporuje také aktualizaci ID zdrojového připojení, názvu databáze a výchozího schématu (tyto tři vlastnosti je možné aktualizovat pouze v případě, že Získat stav zrcadlení rozhraní API vrátí Initialized/Stopped).

Získání stavu zrcadlení

REST API – Zrcadlení – Získání stavu zrcadlení

Toto rozhraní API vrátí stav zrcadlené instance databáze. Seznam dostupných stavů je k dispozici v hodnotách MirroringStatus.

Příklad:

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

Odpověď 200:

{
    "status": "Running"
}

Zahájení zrcadlení

REST API – Zrcadlení – Zahájení zrcadlení

Příklad:

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

Odpověď 200: (Bez textu)

Poznámka:

Zrcadlení nelze zahájit, když rozhraní API pro získání stavu zrcadlení vrátí výše uvedený stav Initializing.

Získání stavu zrcadlení tabulek

REST API – Zrcadlení – Získání stavu zrcadlení tabulek

Pokud se spustí zrcadlení a rozhraní API pro získání stavu zrcadlení vrátí stav, vrátí Running toto rozhraní API stav a metriky replikace tabulek.

Příklad:

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

Odpověď 200:

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

Zastavení zrcadlení

REST API – Zrcadlení – Zastavení zrcadlení

Příklad:

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

Odpověď 200: (Bez textu)

Poznámka:

Po zastavení zrcadlení můžete volat API Get mirroring status k dotazování stavu zrcadlení.

Microsoft Fabric .NET SDK

Sada .NET SDK, která podporuje zrcadlení prostředků infrastruktury, je k dispozici v sadě Microsoft Fabric .NET SDK. Verze musí být >= 1.0.0-beta.11.