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 定義の例を次に示します。
- Snowflake の JSON 定義の例
- Azure SQL Database の JSON 定義の例
- Azure SQL Managed Instance の JSON 定義の例
- Azure Database for PostgreSQL フレキシブル サーバーの JSON 定義の例
- Azure Cosmos DB の JSON 定義の例
- 開いているミラーリングの JSON 定義の例
指定したデータベース内のすべてのテーブルではなく、選択的テーブルをレプリケートする場合は、指定したテーブルを レプリケートする JSON 定義の例を参照してください。
重要
Azure SQL Database または Azure SQL Managed Instance からデータをミラーリングするには、ミラーリングを始める前に、次のことも行う必要があります。
- Azure SQL 論理サーバーまたは Azure SQLManaged Instance のシステム割り当てマネージド ID (SAMI) を有効にします。
- ミラー化されたデータベースに対する 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"
}
ミラーリングを開始する
例:
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"
}
}
]
}
ミラーリングを停止する
例:
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 以降である必要があります。