API REST publique de mise en miroir Microsoft Fabric
Les API publiques pour la mise en miroir Fabric se composent de deux catégories : (1) les opérations CRUD pour l’élément de base de données mis en miroir Fabric et (2) les opérations de démarrage/arrêt et de surveillance. La principale documentation de référence en ligne pour les API REST de Microsoft Fabric se trouve dans Références API REST Microsoft Fabric.
Remarque
Ces API REST ne s’appliquent pas à la base de données mise en miroir à partir d’Azure Databricks.
Créer une base de données mise en miroir
API REST - Éléments - Créer une base de données mise en miroir
Avant de créer une base de données mise en miroir, la connexion à la source de données correspondante est nécessaire. Si vous n’avez pas encore de connexion, reportez-vous à Créer une connexion à l’aide du portail et utilisez cet ID de connexion dans la définition suivante. Vous pouvez également faire référence à Créer une API REST de connexion pour créer une connexion à l’aide d’API REST Fabric.
Exemple :
POST https://api.fabric.microsoft.com/v1/workspaces/<your workspace ID>/mirroredDatabases
Corps :
{
"displayName": "Mirrored database 1",
"description": "A mirrored database description",
"definition": {
"parts": [
{
"path": "mirroring.json",
"payload": "eyAicHJvcGVydGllcy..WJsZSIgfSB9IH0gXSB9IH0",
"payloadType": "InlineBase64"
}
]
}
}
La propriété de charge utile dans le corps JSON précédent est encodée en Base64. Vous pouvez utiliser Encodage et décodage en Base64 pour encoder. Les exemples de définition JSON d’origine pour les différents types de sources sont les suivants :
- Exemple de définition JSON de Snowflake
- Exemple de définition JSON d’Azure SQL Database
- Exemple de définition JSON d’Azure SQL Managed Instance
- Exemple de définition JSON d’Azure Cosmos DB
- Exemple de définition JSON pour la mise en miroir ouverte
Si vous souhaitez répliquer des tables sélectives au lieu de toutes les tables de la base de données spécifiée, reportez-vous à Exemple de définition JSON de réplication de tables spécifiées.
Important
Pour mettre en miroir des données à partir d’Azure SQL Database ou d’Azure SQL Managed Instance, vous devez également effectuer les opérations suivantes avant de commencer la mise en miroir :
- Activez l’identité managée attribuée par le système (SAMI) de votre serveur logique Azure SQL ou Azure SQL Managed Instance.
- Accorder l’autorisation de lecture et d’écriture SAMI à la base de données mise en miroir. Pour l’instant, vous devez effectuer cette opération sur le portail Fabric. Vous pouvez également accorder un rôle d’espace de travail SAMI à l’aide de l’API Ajouter une attribution de rôle d’espace de travail.
Exemple de définition JSON de Snowflake
{
"properties": {
"source": {
"type": "Snowflake",
"typeProperties": {
"connection": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1",
"database": "xxxx"
}
},
"target": {
"type": "MountedRelationalDatabase",
"typeProperties": {
"defaultSchema": "xxxx",
"format": "Delta"
}
}
}
}
Exemple de définition JSON d’Azure SQL Database
{
"properties": {
"source": {
"type": "AzureSqlDatabase",
"typeProperties": {
"connection": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1"
}
},
"target": {
"type": "MountedRelationalDatabase",
"typeProperties": {
"defaultSchema": "xxxx",
"format": "Delta"
}
}
}
}
Exemple de définition JSON d’Azure SQL Managed Instance
{
"properties": {
"source": {
"type": "AzureSqlMI",
"typeProperties": {
"connection": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1"
}
},
"target": {
"type": "MountedRelationalDatabase",
"typeProperties": {
"defaultSchema": "xxxx",
"format": "Delta"
}
}
}
}
Exemple de définition JSON d’Azure Cosmos DB
{
"properties": {
"source": {
"type": "CosmosDb",
"typeProperties": {
"connection": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1",
"database": "xxxx"
}
},
"target": {
"type": "MountedRelationalDatabase",
"typeProperties": {
"defaultSchema": "xxxx",
"format": "Delta"
}
}
}
}
Exemple de définition JSON pour la mise en miroir ouverte
{
"properties": {
"source": {
"type": "GenericMirror",
"typeProperties": {}
},
"target": {
"type": "MountedRelationalDatabase",
"typeProperties": {
"format": "Delta"
}
}
}
}
Exemple de définition JSON de réplication de tables spécifiées
Les exemples ci-dessus s’appliquent au scénario qui réplique automatiquement toutes les tables de la base de données spécifiée. Si vous souhaitez spécifier les tables à répliquer, vous pouvez spécifier la propriété mountedTables
dans l’exemple suivant.
{
"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"
}
}
}
]
}
}
Réponse 201 :
{
"id": "<mirrored database ID>",
"type": "MirroredDatabase",
"displayName": "Mirrored database 1",
"description": "A mirrored database description",
"workspaceId": "<your workspace ID>"
}
Supprimer une base de données mise en miroir
API REST - Éléments - Supprimer une base de données mise en miroir
Exemple :
DELETE https://api.fabric.microsoft.com/v1/workspaces/<your workspace ID>/mirroredDatabases/<mirrored database ID>
Réponse 200 : (Aucun corps)
Obtenir une base de données mise en miroir
API REST - Éléments - Obtenir une base de données mise en miroir
Exemple :
GET https://api.fabric.microsoft.com/v1/workspaces/<your workspace ID>/mirroredDatabases/<mirrored database ID>
Réponse 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"
}
}
Obtenir une définition de base de données mise en miroir
API REST - Éléments - Obtenir une définition de base de données mise en miroir
Exemple :
POST https://api.fabric.microsoft.com/v1/workspaces/<your workspace ID>/mirroredDatabases/<mirrored database ID>/getDefinition
Réponse 200 :
{
"definition": {
"parts":[
{
"path": "mirroring.json",
"payload": "eyAicHJvcGVydGllcy..WJsZSIgfSB9IH0gXSB9IH0",
"payloadType": "InlineBase64"
}
]
}
}
Répertorier des bases de données mises en miroir
API REST - Éléments - Répertorier des bases de données mises en miroir
Exemple :
GET https://api.fabric.microsoft.com/v1/workspaces/<your workspace ID>/mirroredDatabases
Réponse 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"
}
}
]
}
Mettre à jour une base de données mise en miroir
API REST - Éléments - Mettre à jour une base de données mise en miroir
Exemple :
PATCH https://api.fabric.microsoft.com/v1/workspaces/<your workspace ID>/mirroredDatabases/<mirrored database ID>
Corps :
{
"displayName": "MirroredDatabase's New name",
"description": "A new description for mirrored database."
}
Réponse 200 :
{
"displayName": "MirroredDatabase's New name",
"description": "A new description for mirrored database.",
"type": "MirroredDatabase",
"workspaceId": "<your workspace ID>",
"id": "<mirrored database ID>"
}
Mettre à jour la définition de base de données mise en miroir
API REST - Éléments - Mettre à jour la définition de base de données mise en miroir
Exemple :
POST https://api.fabric.microsoft.com/v1/workspaces/<your workspace ID>/mirroredDatabases/<mirrored database ID>/updateDefinition
Corps :
{
"definition": {
"parts": [
{
"path": "mirroring.json",
"payload": "eyAicHJvcGVydGllcy..WJsZSIgfSB9IH0gXSB9IH0",
"payloadType": "InlineBase64"
}
]
}
}
Réponse 200 : (Aucun corps)
Remarque
Cette API prend en charge l’ajout/la suppression de tables en actualisant la propriété mountedTables
. Elle prend également en charge la mise à jour de l’ID de connexion source, du nom de la base de données et du schéma par défaut (ces trois propriétés ne peuvent être mises à jour que lorsque l’API Obtenir l’état de la mise en miroir retourne Initialized
/Stopped
).
Obtenir l’état de la mise en miroir
API REST - Mise en miroir - Obtenir l’état de la mise en miroir
Cette API retourne l’état de l’instance de base de données mise en miroir. La liste des états disponibles est fournie aux valeurs de MirroringStatus.
Exemple :
POST https://api.fabric.microsoft.com/v1/workspaces/<your workspace ID>/mirroredDatabases/<mirrored database ID>/getMirroringStatus
Réponse 200 :
{
"status": "Running"
}
Démarrer la mise en miroir
API REST - Mise en miroir - Démarrer la mise en miroir
Exemple :
POST https://api.fabric.microsoft.com/v1/workspaces/<your workspace ID>/mirroredDatabases/<mirrored database ID>/startMirroring
Réponse 200 : (Aucun corps)
Remarque
La mise en miroir ne peut pas être démarrée lorsque l’API Obtenir l’état de la mise en miroir ci-dessus retourne l’état Initializing
.
Obtenir l’état de la mise en miroir des tables
API REST - Mise en miroir - Obtenir l’état de la mise en miroir des tables
Si la mise en miroir est démarrée et que l’API Obtenir l’état de la mise en miroir retourne l’état Running
, cette API retourne l’état et les métriques de la réplication des tables.
Exemple :
POST https://api.fabric.microsoft.com/v1/workspaces/<your workspace ID>/mirroredDatabases/<mirrored database ID>/getTablesMirroringStatus
Réponse 200 :
{
"continuationToken": null,
"continuationUri": null,
"data": [
{
"sourceSchemaName": "dbo",
"sourceTableName": "test",
"status": "Replicating",
"metrics": {
"processedBytes": 1247,
"processedRows": 6,
"lastSyncDateTime": "2024-10-08T05:07:11.0663362Z"
}
}
]
}
Arrêter la mise en miroir
API REST - Mise en miroir - Arrêter la mise en miroir
Exemple :
POST https://api.fabric.microsoft.com/v1/workspaces/<your workspace ID>/mirroredDatabases/<mirrored database ID>/stopMirroring
Réponse 200 : (Aucun corps)
Remarque
Après avoir arrêté la mise en miroir, vous pouvez appeler l’API Obtenir l’état de la mise en miroir pour interroger l’état de la mise en miroir.
Kit de développement logiciel (SDK) .NET Microsoft Fabric
Le kit de développement logiciel (SDK) .NET qui prend en charge la mise en miroir Fabric est disponible sur Kit de développement logiciel (SDK) .NET Microsoft Fabric. La version doit être >= 1.0.0-beta.11.
Limitations connues
Actuellement, l’authentification du principal de service/identité managée n’est pas prise en charge si votre région d’accueil de tenant se trouve dans la région USA Centre Nord ou USA Est. Vous pouvez l’utiliser dans d’autres régions.