ファイル共有、FTP、電子メール、API など、さまざまな従来の方法でデータを共有できます。 これらの方法では、チームや組織間でデータを移動するデータ パイプラインを両者が作成して維持する必要があります。 Azure Data Explorer を使用すると、会社や社外のパートナーのユーザーとデータを簡単かつ安全に共有できます。 共有はほぼリアルタイムで行われ、データ パイプラインの構築や管理は必要はありません。 スキーマやデータを含む、プロバイダー側でのすべてのデータベースの変更がコンシューマー側ですぐに使用できるようになります。
Azure Data Explorer ではストレージとコンピューティングが分離されるため、同じ基になるストレージで複数のコンピューティング (読み取り専用) インスタンスを実行できます。 データベースをフォロワー データベースとしてアタッチできます。これは、リモート クラスター上の読み取り専用データベースです。
データ共有を構成する
Azure Data Share を使用して、会社全体または外部のパートナーや顧客との招待と共有を送信および管理します。 Azure Data Share では、フォロワー データベースを使用して、プロバイダーとコンシューマーの Azure Data Explorer クラスターの間にシンボリック リンクが作成されます。 このオプションを使用すると、Azure Data Explorer クラスターおよびその他のデータ サービス全体のすべてのデータ共有を 1 つのウィンドウで表示および管理できます。 Azure Data Share を使用すると、さまざまな Microsoft Entra テナント内の組織間でデータを共有することもできます。
注
両方のクラスターの管理者は、さまざまな API を使用して フォロワー データベース を直接構成できます。 この構成は、レポート用にスケールアウトするために追加のコンピューティングが必要なシナリオで役立ちます。
次のオプションのデータ共有を構成できます。
- データベース全体 (規定値)。
- 特定のテーブル - テーブル レベルの共有。
注
共有関係が確立されると、Azure Data Share によって、プロバイダーとコンシューマーの Azure Data Explorer クラスターの間にシンボリック リンクが作成されます。 データ プロバイダーがアクセスを取り消すと、シンボリック リンクが削除され、データ コンシューマーが共有データベースを使用できなくなります。
データ プロバイダーは、データベース レベルまたはクラスター レベルでデータを共有できます。 データベースを共有するクラスターはリーダー クラスターであり、共有を受け取るクラスターはフォロワー クラスターです。 フォロワー クラスターは、1 つ以上のリーダー クラスター データベースをフォローすることができます。 フォロワー クラスターは、変更を確認するために定期的に同期されます。 リーダーとフォロワーの間の時間差は、メタデータとデータの全体的なサイズによって、数秒から数分になります。 データはコンシューマー クラスターにキャッシュされ、読み取りまたはクエリ操作でのみ使用できますが、ホット キャッシュ ポリシーとデータベースのアクセス許可の上書きは例外です。 フォロワー クラスターで実行されているクエリではローカル キャッシュは使用され、リーダー クラスターのリソースは使用されません。
前提条件
- Azure サブスクリプション。 無料の Azure アカウントを作成します。
- リーダーとフォロワー用の Azure Data Explorer クラスターとデータベース。 クラスターとデータベースを作成します。
- リーダー データベースにはデータが含まれている必要があります。 データの取り込みには、「データ取り込みの概要」で説明されているいずれかの方法を使用できます。
データ共有の流れ
- プロバイダーは、Azure Data Share リソースを使用して、データベース全体または特定のテーブルを共有し、受信者のメールアドレスを指定します。
- Azure Data Share は、受信者に電子メール招待状を送信します。
- 受信者は電子メール招待状を開き、自分の Azure Data Share リソースを選択します。
- 受信者は、Azure Data Share を使用して、共有されたデータベースまたはテーブルを適切なクラスターにマップします。
データ プロバイダー
データ プロバイダーは、データベース全体または特定のテーブルを受信者と共有できます。
データベース全体の共有
ビデオの説明に従って、Azure Data Share アカウントを作成し、データセットを追加して、招待状を送信します。
テーブルの共有
Azure Resource Manager テンプレートを使用して、Azure Data Share を介して 1 つ以上のテーブルを共有できます。
テーブルを共有するには、次の手順に従います。
- テンプレートを作成し、データセットとテーブルの制限に対して適切なパラメーターを設定し、招待状の受信者を指定します。 次の表にある情報を使用すると、テンプレートの構成に役立ちます。
一般的なパラメーター
| パラメーター | 説明 | 例 |
|---|---|---|
| accountName | プロバイダーの Azure Data Share アカウントの名前。 | |
| 場所 | すべてのリソースの場所。 リーダーとフォロワーは同じ場所にある必要があります。 | |
| shareName | データ共有アカウントにおいて作成された共有の名前。 | |
| recipientEmail | Azure Data Share の受信者の電子メール。 |
データベース パラメーター
| パラメーター | 説明 | 例 |
|---|---|---|
| databaseName | プロバイダーのデータベースの名前。 | |
| databaseResourceId | プロバイダーのデータベースのリソース ID。 |
テーブルとビューのパラメーター
| パラメーター | 説明 | 例 |
|---|---|---|
| 除外する外部テーブル | 除外する外部テーブルの一覧。 すべての外部テーブルを除外するには、["*"] を使用します。 | ["ExternalTable1ToExclude", "ExternalTable2ToExclude"] |
| externalTablesToInclude(含める外部テーブル) | 含める外部テーブルの一覧。 'Logs' で始まるすべての外部テーブルを含めるには、["Logs*"] を使用します。 | ["ExternalTable1ToInclude", "ExternalTable2ToInclude"] |
| 除外するマテリアライズドビュー | 除外する具体化されたビューの一覧です。 すべての具体化されたビューを除外するには、["*"] を使用します。 | ["Mv11ToExclude", "Mv22ToExclude"] |
| インクルードするマテリアライズドビュー | 含める具体化されたビューの一覧です。 'Logs' で始まる具体化されたビューをすべて含めるには、["Logs*"] を使用します。 | ["Mv1ToInclude", "Mv2ToInclude"] |
| 除外するテーブル | 除外するテーブルの一覧です。 すべてのテーブルを除外するには、["*"] を使用します。 | ["table1ToExclude", "table2ToExclude"] |
| tablesToInclude | 含めるテーブルの一覧です。 すべてのテーブルを含めるには、["*"] を使用します。 | ["table1ToInclude", "table2ToInclude"] |
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"accountName": { "type": "String" },
"location": { "defaultValue": "[resourceGroup().location]", "type": "String" },
"shareName": { "type": "String" },
"recipientEmail": { "type": "String" },
"databaseName": { "type": "String" },
"databaseResourceId": { "type": "String" },
"externalTablesToExclude": { "type": "Array" },
"externalTablesToInclude": { "type": "Array" },
"materializedViewsToExclude": { "type": "Array" },
"materializedViewsToInclude": { "type": "Array" },
"tablesToExclude": { "type": "Array" },
"tablesToInclude": { "type": "Array" }
},
"variables": {
"invitationSuffix": "[replace(replace(parameters('recipientEmail'),'@', '_'), '.', '_')]"
},
"resources": [
{
"type": "Microsoft.DataShare/accounts",
"apiVersion": "2021-08-01",
"name": "[parameters('accountName')]",
"location": "[parameters('location')]",
"identity": {
"type": "SystemAssigned"
},
"properties": {}
},
{
"type": "Microsoft.DataShare/accounts/shares",
"apiVersion": "2021-08-01",
"name": "[concat(parameters('accountName'), '/' , parameters('shareName'))]",
"dependsOn": [
"[resourceId('Microsoft.DataShare/accounts', parameters('accountName'))]"
],
"properties": {
"shareKind": "InPlace"
}
},
{
"type": "Microsoft.DataShare/accounts/shares/invitations",
"apiVersion": "2021-08-01",
"name": "[concat(parameters('accountName'), '/', parameters('shareName'), '/', concat(parameters('shareName'), variables('invitationSuffix')))]",
"dependsOn": [
"[resourceId('Microsoft.DataShare/accounts/shares', parameters('accountName'), parameters('shareName'))]",
"[resourceId('Microsoft.DataShare/accounts', parameters('accountName'))]"
],
"properties": {
"targetEmail": "[parameters('recipientEmail')]"
}
},
{
"type": "Microsoft.DataShare/accounts/shares/dataSets",
"apiVersion": "2021-08-01",
"name": "[concat(parameters('accountName'), '/', parameters('shareName'), '/', parameters('databaseName'))]",
"dependsOn": [
"[resourceId('Microsoft.DataShare/accounts/shares', parameters('accountName'), parameters('shareName'))]",
"[resourceId('Microsoft.DataShare/accounts', parameters('accountName'))]"
],
"kind": "KustoTable",
"properties": {
"kustoDatabaseResourceId": "[parameters('databaseResourceId')]",
"tableLevelSharingProperties": {
"externalTablesToExclude": "[parameters('externalTablesToExclude')]",
"externalTablesToInclude": "[parameters('externalTablesToInclude')]",
"materializedViewsToExclude": "[parameters('materializedViewsToExclude')]",
"materializedViewsToInclude": "[parameters('materializedViewsToInclude')]",
"tablesToExclude": "[parameters('tablesToExclude')]",
"tablesToInclude": "[parameters('tablesToInclude')]"
}
}
}
]
}
Azure portal または PowerShell を使用して Azure Resource Manager テンプレートをデプロイします。
データ コンシューマー - データの受信
ビデオの説明に従って、招待を受け入れ、データ共有アカウントを作成して、コンシューマー クラスターにマップします。
データ コンシューマーは、Azure Data Explorer クラスターにアクセスして、共有データベースへのアクセス許可をユーザーに付与し、データにアクセスできるようになりました。 ソース Azure Data Explorer クラスターへのキューインジェストを使用して取り込まれたデータは、数秒以内にターゲット クラスターに表示されます。