API REST pública de espelhamento do Microsoft Fabric
As APIs públicas para espelhamento de malha consistem em duas categorias: (1) operações CRUD para item de banco de dados espelhado de malha e (2) operações de início/parada e monitoramento. A principal documentação de referência online para APIs REST do Microsoft Fabric pode ser encontrada em Referências da API REST do Microsoft Fabric.
Nota
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 Criar nova conexão usando o portal e use essa ID de conexão na definição a seguir. Você também pode consultar criar nova API REST de conexão para criar nova conexão usando APIs REST de malha.
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 propriedade payload no corpo JSON anterior é codificada em Base64. Você pode usar Base64 Encode and Decode para codificar. Os exemplos originais de definição JSON para diferentes tipos de fontes seguem:
- Exemplo de definição JSON de Snowflake
- Exemplo de definição JSON do Banco de Dados SQL do Azure
- Exemplo de definição JSON da Instância Gerenciada SQL do Azure
- Exemplo de definição JSON do Azure Cosmos DB
- Exemplo de definição JSON de espelhamento aberto
Se desejar replicar tabelas seletivas em vez de todas as tabelas no banco de dados especificado, consulte o exemplo de definição JSON de replicação de tabelas especificadas.
Importante
Para espelhar dados do Banco de Dados SQL do Azure ou da Instância Gerenciada SQL do Azure, você também precisa fazer o seguinte antes de iniciar o espelhamento:
- Habilite o SAMI (System Assigned Managed Identity) do seu servidor lógico SQL do Azure ou da Instância Gerenciada SQL do Azure.
- Conceda a permissão de leitura e gravação SAMI ao banco de dados espelhado. Atualmente, você precisa fazer isso no portal do Fabric. Alternativley, você pode conceder a função de espaço de trabalho SAMI usando Adicionar API de Atribuição de Função de Espaço de Trabalho.
Exemplo de definição JSON de Snowflake
{
"properties": {
"source": {
"type": "Snowflake",
"typeProperties": {
"connection": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1",
"database": "xxxx"
}
},
"target": {
"type": "MountedRelationalDatabase",
"typeProperties": {
"defaultSchema": "xxxx",
"format": "Delta"
}
}
}
}
Exemplo de definição JSON do Banco de Dados SQL do Azure
{
"properties": {
"source": {
"type": "AzureSqlDatabase",
"typeProperties": {
"connection": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1"
}
},
"target": {
"type": "MountedRelationalDatabase",
"typeProperties": {
"defaultSchema": "xxxx",
"format": "Delta"
}
}
}
}
Exemplo de definição JSON da Instância Gerenciada SQL do Azure
{
"properties": {
"source": {
"type": "AzureSqlMI",
"typeProperties": {
"connection": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1"
}
},
"target": {
"type": "MountedRelationalDatabase",
"typeProperties": {
"defaultSchema": "xxxx",
"format": "Delta"
}
}
}
}
Exemplo de definição JSON do Azure Cosmos DB
{
"properties": {
"source": {
"type": "CosmosDb",
"typeProperties": {
"connection": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1",
"database": "xxxx"
}
},
"target": {
"type": "MountedRelationalDatabase",
"typeProperties": {
"defaultSchema": "xxxx",
"format": "Delta"
}
}
}
}
Exemplo de definição JSON de espelhamento aberto
{
"properties": {
"source": {
"type": "GenericMirror",
"typeProperties": {}
},
"target": {
"type": "MountedRelationalDatabase",
"typeProperties": {
"format": "Delta"
}
}
}
}
Exemplo de definição JSON de replicação de tabelas especificadas
Os exemplos anteriores se aplicam ao cenário que replica automaticamente todas as tabelas no banco de dados especificado. Se desejar especificar as tabelas a serem replicadas, você poderá especificar a mountedTables
propriedade, como no exemplo a seguir.
{
"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"
}
}
}
]
}
}
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)
Nota
Esta API suporta a adição/remoção de tabelas atualizando a mountedTables
propriedade. Ele também suporta a atualização do ID de conexão de origem, nome do banco de dados e esquema padrão (essas três propriedades só podem ser atualizadas quando Get mirroring status api retorna Initialized
/Stopped
).
Obter status de espelhamento
API REST - Espelhamento - Obter status de espelhamento
Essa API retorna o status da instância de banco de dados espelhada. 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)
Nota
O espelhamento não pode ser iniciado quando acima Obter api de status de espelhamento retorna Initializing
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 o 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)
Nota
Depois de interromper o espelhamento, você pode chamar Get mirroring status api para consultar o status do espelhamento.
Microsoft Fabric .NET SDK
O SDK do .NET que oferece suporte ao espelhamento de malha está disponível em Microsoft Fabric .NET SDK. A versão precisa ser >= 1.0.0-beta.11.
Limitações conhecidas
Atualmente, a autenticação de Entidade de Serviço/Identidade Gerenciada não é suportada se a região de origem do locatário estiver no Centro-Norte dos EUA ou no Leste dos EUA. Você pode usá-lo em outras regiões.