次の方法で共有


Microsoft Fabric ミラーリングのパブリック REST API

Fabric ミラーリング用のパブリック API は、(1) Fabric ミラー化されたデータベース項目の CRUD 操作と、(2) 開始/停止と監視操作の 2 つのカテゴリで構成されます。 Microsoft Fabric REST API の主要なオンライン リファレンス ドキュメントについては、Microsoft Fabric REST API リファレンスを参照してください。

Note

これらの REST API は、Azure Databricks からミラー化されたデータベースには適用されません。

ミラー化されたデータベースを作成する

REST API - 項目 - ミラー化されたデータベースを作成する

ミラー化されたデータベースを作成する前に、対応するデータ ソース接続が必要です。 接続がまだない場合は、ポータルを使った新しい接続の作成に関する記事を参照し、その接続 ID を次の定義で使います。 新規接続作成 REST API に関する記事を参照し、Fabric REST API を使って新しい接続を作成することもできます。

例:

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

本文は次のようになります。

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

前の JSON 本文のペイロード プロパティは、Base64 でエンコードされています。 Base64 のエンコードとデコードを使ってエンコードできます。 さまざまな種類のソースに対する元の JSON 定義の例を次に示します。

指定したデータベース内のすべてのテーブルではなく、テーブルを選んでレプリケートしたい場合は、「指定したテーブルをレプリケートする JSON 定義の例」をご覧ください。

重要

Azure SQL Database または Azure SQL Managed Instance からデータをミラーリングするには、ミラーリングを始める前に、次のことも行う必要があります。

  1. Azure SQL 論理サーバーまたは Azure SQL Managed Instance のシステム割り当てマネージド ID (SAMI) を有効にします。
  2. ミラー化データベースに対する読み取り/書き込みアクセス許可を SAMI に付与します。 現在は、Fabric ポータルでこれを行う必要があります。 または、ワークスペース ロール割り当て追加 API を使って SAMI にワークスペース ロールを付与できます。

Snowflake の JSON 定義の例

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

Azure SQL Database の JSON 定義の例

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

Azure SQL Managed Instance の JSON 定義の例

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

Azure Cosmos DB の JSON 定義の例

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

オープン ミラーリングの JSON 定義の例

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

指定したテーブルをレプリケートする JSON 定義の例

前の例は、指定したデータベース内のすべてのテーブルを自動的にレプリケートするシナリオにあてはまります。 レプリケートするテーブルを指定する場合は、次の例のように mountedTables プロパティを指定できます。

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

応答 201:

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

ミラー化されたデータベースを削除する

REST API - 項目 - ミラー化されたデータベースを削除する

例:

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

応答 200: (本文なし)

ミラー化されたデータベースを取得する

REST API - 項目 - ミラー化されたデータベースを取得する

例:

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

応答 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"
    }
}

ミラー化されたデータベース定義を取得する

REST API - 項目 - ミラー化されたデータベース定義を取得する

例:

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

応答 200:

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

ミラー化されたデータベースを一覧表示する

REST API - 項目 - ミラー化されたデータベースを一覧表示する

例:

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

応答 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"
            }
        }
    ] 
} 

ミラー化されたデータベースを更新する

REST API - 項目 - ミラー化されたデータベースを更新する

例:

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

本文は次のようになります。

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

応答 200:

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

ミラー化されたデータベース定義を更新する

REST API - 項目 - ミラー化されたデータベース定義を更新する

例:

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

本文は次のようになります。

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

応答 200: (本文なし)

Note

この API では、mountedTables プロパティを更新することで、テーブルの追加と削除がサポートされます。 また、ソース接続 ID、データベース名、既定のスキーマの更新もサポートされています (これら 3 つのプロパティは、ミラーリング状態の取得 API が Initialized/Stopped を返す場合にのみ更新できます)。

ミラーリングの状態を取得する

REST API - ミラーリング - ミラーリングの状態を取得する

この API は、ミラー化されたデータベース インスタンスの状態を返します。 使用できる状態の一覧については、MirroringStatus の値に関する記事をご覧ください。

例:

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

応答 200:

{
    "status": "Running"
}

ミラーリングを開始する

REST API - ミラーリング - ミラーリングを開始する

例:

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

応答 200: (本文なし)

Note

上記のミラーリングの状態を取得する API が Initializing 状態を返すときは、ミラーリングを開始できません。

テーブルのミラーリングの状態を取得する

REST API - ミラーリング - テーブルのミラーリングの状態を取得する

ミラーリングが開始され、ミラーリングの状態を取得する API が Running 状態を返す場合、この API はテーブルのレプリケーションの状態とメトリックを返します。

例:

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

応答 200:

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

ミラーリングを停止する

REST API - ミラーリング - ミラーリングを停止する

例:

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

応答 200: (本文なし)

Note

ミラーリングを停止した後、ミラーリングの状態を取得する API を呼び出して、ミラーリングの状態を照会できます。

Microsoft Fabric .NET SDK

Fabric ミラーリングをサポートする .NET SDK は、Microsoft Fabric .NET SDK で入手できます。 バージョンは、1.0.0-beta.11 以降である必要があります。

既知の制限事項

現在、テナントのホーム リージョンが米国中北部または米国東部にある場合、サービス プリンシパルとマネージド ID の認証はサポートされていません。 他のリージョンでは使用できます。