次の方法で共有


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

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

これらの 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 SQLManaged Instance のシステム割り当てマネージド ID (SAMI) を有効にします。
  2. ミラー化されたデータベースに対する SAMI 読み取りおよび書き込み アクセス許可を付与します。 現在は、Fabric ポータルでこれを行う必要があります。 または、ワークスペース ロールの割り当ての追加 API を使用して SAMI ワークスペース ロールを付与することもできます。

defaultSchema プロパティは、ソース データベースからスキーマ階層をレプリケートするかどうかを示します。

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 Database for PostgreSQL フレキシブル サーバーの JSON 定義の例

{
    "properties": {
        "source": {
            "type": "AzurePostgreSql",
            "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": {
                "defaultSchema": "xxxx",
                "format": "Delta"
            }
        }
    }
}

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

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

{
    "properties": {
        "source": {
            "type": "<your source type>",
            "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: (本文なし)

前の JSON 本文のペイロード プロパティは、Base64 でエンコードされています。 Base64 エンコードとデコードを使用してエンコードできます。

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

データ保有期間を構成する

ミラー化されたデータの保持期間は、retentionInDays プロパティを使用して設定できます。 既定値は 7 日間です。 使用できる値は、1 ~ 30 の整数です。

Base64 エンコード前の JSON 定義の例:

{
    "properties": {
        "source": {...},
        "target": {
            "type": "MountedRelationalDatabase",
            "typeProperties": {
                "defaultSchema": "xxxx",
                "format": "Delta",
                "retentionInDays": 1
            }
        }
    }
}

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

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: (本文なし)

ミラーリングを開始できないのは、上記の ミラーリング状態の取得 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: (本文なし)

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

Microsoft Fabric .NET SDK

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