Compartir a través de


API de REST pública de creación de reflejo de Microsoft Fabric

Las API públicas para la creación de reflejo de Fabric comprenden dos categorías: (1) operaciones CRUD para el elemento de base de datos reflejado de Fabric y (2) operaciones de inicio y detención y supervisión. La documentación de referencia en línea principal de las API de REST de Microsoft Fabric se puede encontrar en las referencias de la API REST de Microsoft Fabric.

Nota:

Estas API de REST no se aplican a la base de datos reflejada de Azure Databricks.

Crear base de datos reflejada

API de REST - Elementos - Crear base de datos reflejada

Antes de crear una base de datos reflejada, se necesita la conexión del origen de datos correspondiente. Si aún no tiene una conexión, consulte la información para crear una nueva conexión mediante el portal y use ese identificador de conexión en la siguiente definición. También puede consultar la información para crear una nueva API REST de conexión para crear una nueva conexión mediante las API REST de Fabric.

Ejemplo:

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

Cuerpo:

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

La propiedad payload del cuerpo JSON anterior está codificada en Base64. Use la codificación y descodificación de Base64 para codificar. Los ejemplos de definición JSON originales para distintos tipos de orígenes son los siguientes:

Si desea replicar tablas selectivas en lugar de todas las tablas de la base de datos especificada, consulte el ejemplo de definición JSON de replicación de tablas especificadas.

Importante

Para reflejar los datos de Azure SQL Database o Azure SQL Managed Instance, también debe hacer lo siguiente antes de iniciar la creación de reflejo:

  1. Habilite la identidad administrada asignada por el sistema (SAMI) del servidor lógico de Azure SQL o Azure SQL Managed Instance.
  2. Conceda el permiso de lectura y escritura de SAMI a la base de datos reflejada. Actualmente, debe hacerlo en el portal de Fabric. Alternativamente, puede conceder el rol de área de trabajo SAMI mediante la API para agregar asignaciones de roles de área de trabajo.

Ejemplo de definición JSON de Snowflake

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

Ejemplo de definición JSON de Azure SQL Database

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

Ejemplo de definición JSON de Azure SQL Managed Instance

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

Ejemplo de definición JSON de Azure Cosmos DB

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

Ejemplo de definición JSON de creación de reflejos abiertos

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

Ejemplo de definición JSON de replicación de tablas especificadas

Los ejemplos anteriores se aplican al escenario que replica automáticamente todas las tablas de la base de datos especificada. Si quiere especificar las tablas que se van a replicar, puede especificar la propiedad mountedTables, como se indica en el siguiente ejemplo.

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

Respuesta 201:

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

Eliminar base de datos reflejada

API de REST - Elementos - Eliminar base de datos reflejada

Ejemplo:

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

Respuesta 200: (Sin cuerpo)

Obtener base de datos reflejada

API de REST - Elementos - Obtener base de datos reflejada

Ejemplo:

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

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

Obtener definición de la base de datos reflejada

API de REST - Elementos - Obtener definición de la base de datos reflejada

Ejemplo:

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

Respuesta 200:

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

Enumerar las bases de datos reflejadas

API de REST - Elementos - Enumerar las bases de datos reflejadas

Ejemplo:

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

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

Actualizar la base de datos reflejada

API de REST - Elementos - Actualizar la base de datos reflejada

Ejemplo:

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

Cuerpo:

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

Respuesta 200:

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

Actualizar la definición de la base de datos reflejada

API de REST - Elementos - Actualizar la definición de la base de datos reflejada

Ejemplo:

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

Cuerpo:

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

Respuesta 200: (Sin cuerpo)

Nota:

Esta API admite la adición y la eliminación de tablas actualizando la propiedad mountedTables. También admite la actualización del identificador de conexión de origen, el nombre de la base de datos y el esquema predeterminado (estas tres propiedades solo se pueden actualizar cuando la API Obtener estado de creación de reflejo devuelve Initialized/Stopped).

Obtener estado de creación de reflejo

API de REST - Creación de reflejo - Obtener estado de creación de reflejo

Esta API devuelve el estado de la instancia de base de datos reflejada. La lista de estados disponibles se proporciona en los valores de MirroringStatus.

Ejemplo:

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

Respuesta 200:

{
    "status": "Running"
}

Iniciar creación de reflejo

API de REST - Creación de reflejo - Iniciar creación de reflejo

Ejemplo:

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

Respuesta 200: (Sin cuerpo)

Nota:

No se puede iniciar la creación de reflejo cuando la API anterior Obtener estado de creación de reflejo devuelve el estado Initializing.

Obtener estado de creación de reflejo de tablas

API de REST - Creación de reflejo - Obtener estado de creación de reflejo de tablas

Si se inicia la creación de reflejo y la API Obtener estado de creación de reflejo devuelve el estado Running, esta API devuelve el estado y las métricas de la replicación de tablas.

Ejemplo:

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

Respuesta 200:

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

Detener creación de reflejo

API de REST - Creación de reflejo - Detener creación de reflejo

Ejemplo:

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

Respuesta 200: (Sin cuerpo)

Nota:

Después de detener la creación de reflejo, puede llamar a la API Obtener estado de creación de reflejo para consultar el estado de creación de reflejo.

Microsoft Fabric .NET SDK

El SDK de .NET que admite la creación de reflejo de Fabric está disponible en el SDK de .NET de Microsoft Fabric. La versión debe ser >= 1.0.0-beta.11.

Restricciones conocidas

Actualmente no se admite la autenticación de entidad de servicio o identidad administrada si la región principal del inquilino está en Centro-Norte de EE. UU. o Este de EE. UU. Puede usarla en otras regiones.