Compartilhar via


API REST pública de espelhamento do Microsoft Fabric

As APIs públicas para espelhamento do Fabric consistem em duas categorias: (1) operações CRUD para item de banco de dados espelhado do Fabric e (2) operações de início/parada e monitoramento. A documentação de referência online primária das APIs REST do Microsoft Fabric pode ser encontrada nas referências da API REST do Microsoft Fabric.

Observação

Essas APIs REST não se aplicam ao banco de dados espelhado do Azure Databricks.

Criar banco de dados espelhado

API REST – Itens – Criar banco de dados espelhado

Antes de criar um banco de dados espelhado, a conexão de fonte de dados correspondente é necessária. Se você ainda não tiver uma conexão, consulte para criar uma nova conexão usando o portal e use essa ID de conexão na definição a seguir. Você também pode se referir à criação de uma nova API REST de conexão para criar uma nova conexão usando APIs REST do Fabric.

Exemplo:

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

Corpo:

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

A payload propriedade no corpo JSON anterior é codificada em Base64. Você pode usar a Codificação e a Decodificação base64 para codificar.

Os exemplos de definição JSON originais são os seguintes. Para obter mais informações sobre a definição de item de banco de dados espelhado, incluindo uma divisão da estrutura de definição, consulte a definição de item de banco de dados espelhado. Você também pode se referir à definição do banco de dados espelhado existente chamando a API de definição de banco de dados Espelho.

Importante

Para espelhar dados do Banco de Dados SQL do Azure, da Instância Gerenciada de SQL do Azure, do Banco de Dados do Azure para PostgreSQL ou do SQL Server 2025, você também precisa fazer o seguinte antes de iniciar o espelhamento:

  1. Habilite a identidade gerenciada do servidor lógico do SQL do Azure, da Instância Gerenciada de SQL do Azure, do Banco de Dados do Azure para PostgreSQL ou do SQL Server.
  2. Conceda a permissão de leitura e gravação da identidade gerenciada ao banco de dados espelhado. No momento, você precisa fazer isso no portal do Fabric. Como alternativa, você pode conceder a função de espaço de trabalho de identidade gerenciada usando a API Adicionar Atribuição de Função do Workspace.

Observação

Defina a deafultSchema propriedade para preservar a hierarquia de esquema de origem no banco de dados espelhado.

Exemplo de definição JSON de replicação de banco de dados inteiro

Para espelhar todas as tabelas do banco de dados de origem:

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

Exemplo de definição JSON de replicação de tabelas especificadas

Para espelhar tabelas seletivas do banco de dados de origem, você pode especificar a mountedTables propriedade como no exemplo a seguir.

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

Resposta 201:

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

Excluir banco de dados espelhado

API REST – Itens – Excluir banco de dados espelhado

Exemplo:

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

Resposta 200: (Sem corpo)

Obter banco de dados espelhado

API REST – Itens – Obter banco de dados espelhado

Exemplo:

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

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

Obter definição de banco de dados espelhado

API REST – Itens – Obter definição de banco de dados espelhado

Exemplo:

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

Resposta 200:

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

Listar bancos de dados espelhados

API REST – Itens – Listar bancos de dados espelhados

Exemplo:

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

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

Atualizar banco de dados espelhado

API REST – Itens – Atualizar banco de dados espelhado

Exemplo:

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

Corpo:

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

Resposta 200:

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

Atualizar definição de banco de dados espelhado

API REST – Itens – Atualizar definição de banco de dados espelhado

Exemplo:

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

Corpo:

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

Resposta 200: (Sem corpo)

A propriedade payload no corpo JSON anterior é codificada em Base64. Você pode usar a Codificação e a Decodificação base64 para codificar.

Observação

Essa API dá suporte à adição/remoção de tabelas atualizando a mountedTables propriedade. Ele também dá suporte à atualização da ID de conexão de origem, do nome do banco de dados e do esquema padrão (essas três propriedades só podem ser atualizadas quando a API obter status de espelhamento retorna Initialized/Stopped).

Configurar retenção de dados

Você pode definir o período de retenção para dados espelhados usando a retentionInDays propriedade. O valor padrão é sete dias. Os valores permitidos são inteiros entre 1 e 30.

Exemplo de definição de JSON antes da codificação base64:

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

Obter status de espelhamento

API REST – Espelhamento – Obter status de espelhamento

Essa API retorna o status da instância do banco de dados espelhado. A lista de status disponíveis é fornecida em valores de MirroringStatus.

Exemplo:

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

Resposta 200:

{
    "status": "Running"
}

Iniciar espelhamento

API REST – Espelhamento – Iniciar espelhamento

Exemplo:

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

Resposta 200: (Sem corpo)

Observação

O espelhamento não pode ser iniciado quando a API de status get mirroring acima retorna Initializing o status.

Obter status de espelhamento de tabelas

API REST – Espelhamento – Obter status de espelhamento de tabelas

Se o espelhamento for iniciado e a API obter status de espelhamento retornar Running o status, essa API retornará o status e as métricas da replicação de tabelas.

Exemplo:

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

Resposta 200:

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

Parar espelhamento

API REST – Espelhamento – Parar espelhamento

Exemplo:

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

Resposta 200: (Sem corpo)

Observação

Depois de interromper o espelhamento, você pode chamar a API obter status de espelhamento para consultar o status de espelhamento.

Microsoft Fabric .NET SDK

O SDK do .NET que dá suporte ao espelhamento do Fabric está disponível no SDK do .NET do Microsoft Fabric. A versão precisa ser >= 1.0.0-beta.11.