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 定義の例を次に示します。
- Snowflake の JSON 定義の例
- Azure SQL Database の JSON 定義の例
- Azure SQL Managed Instance の JSON 定義の例
- Azure Cosmos DB の JSON 定義の例
- オープン ミラーリングの JSON 定義の例
指定したデータベース内のすべてのテーブルではなく、テーブルを選んでレプリケートしたい場合は、「指定したテーブルをレプリケートする JSON 定義の例」をご覧ください。
重要
Azure SQL Database または Azure SQL Managed Instance からデータをミラーリングするには、ミラーリングを始める前に、次のことも行う必要があります。
- Azure SQL 論理サーバーまたは Azure SQL Managed Instance のシステム割り当てマネージド ID (SAMI) を有効にします。
- ミラー化データベースに対する読み取り/書き込みアクセス許可を 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 の認証はサポートされていません。 他のリージョンでは使用できます。