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:
- Ejemplo de definición JSON de Snowflake
- Ejemplo de definición JSON de Azure SQL Database
- Ejemplo de definición JSON de Azure SQL Managed Instance
- Ejemplo de definición JSON de Azure Cosmos DB
- Ejemplo de definición JSON de creación de reflejos abiertos
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:
- Habilite la identidad administrada asignada por el sistema (SAMI) del servidor lógico de Azure SQL o Azure SQL Managed Instance.
- 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.