Использование Azure Data Share для обмена данными с Azure Data Explorer
Существует множество традиционных способов обмена данными, например через общие файловые ресурсы, FTP, электронную почту и API. Эти способы требуют, чтобы обе стороны создали и использовали конвейер данных, который перемещает данные между командами и организациями. С помощью Azure Data Explorer можно легко и безопасно делиться своими данными с людьми в вашей компании или с внешними партнерами. Общий доступ выполняется в режиме, близком к реальному времени, без необходимости создания или использования конвейера данных. Все изменения базы данных, включая схему и данные, на стороне поставщика мгновенно доступны на стороне потребителя.
Azure Data Explorer разделяет хранилище и вычисления, что позволяет клиентам запускать несколько вычислительных экземпляров (только для чтения) в одном и том же базовом хранилище. Можно присоединить базу данных как базу данных подписчиков, которая является базой данных только для чтения в удаленном кластере.
Настройка общего доступа к данным
Используйте Azure Data Share для отправки и управления приглашениями и общим доступом в компании или с внешними партнерами и клиентами. Azure Data Share использует базу данных подписчиков для создания символической связи между поставщиком и кластером Azure Data Explorer потребителя. Этот параметр предоставляет единую панель для просмотра и управления всеми вашими общими данными в кластерах Azure Data Explorer и других службах данных. Azure Data Share также позволяет совместно использовать данные между организациями в разных клиентах Microsoft Entra.
Примечание.
Администратор в обоих кластерах может настроить базу данных последователя напрямую с помощью различных интерфейсов API. Это полезно в сценариях, где требуется добавить ресурс вычисления для масштабирования при выполнении отчетности.
Вы можете настроить общий доступ к данным для:
- всей базы данных (по умолчанию);
- определенных таблиц — общий доступ на уровне таблиц.
Примечание.
Когда отношения использования общего доступа установлены, Azure Data Share создает символическую связь между поставщиком и кластером Azure Data Explorer потребителя. Если поставщик данных отменяет доступ, символическая связь удаляется, и общие базы данных больше не доступны для потребителя данных.
Поставщик данных может предоставлять общий доступ к данным на уровне базы данных или на уровне кластера. Кластер с общим доступом к базе данных является ведущим кластером, а кластер, участвующий в общем доступе, является кластером подписчика. Кластер подписчика может использовать одну или несколько баз данных ведущего кластера. Кластер подписчика периодически синхронизируется для проверки изменений. Время задержки между ведущим кластером и кластером-подписчиком варьируется от нескольких секунд до нескольких минут в зависимости от общего размера метаданных и данных. Данные кэшируются в кластере потребителя и доступны только для операций чтения или запросов, за исключением переопределения политики горячего кэширования и разрешений баз данных. Запросы, выполняемые в кластере подписчика, используют локальный кэш и не используют ресурсы ведущего кластера.
Необходимые компоненты
- Подписка Azure. Создайте бесплатную учетную запись Azure.
- Кластер и база данных Azure Data Explorer для лидера и подписчика. Создайте кластер и базу данных.
- База данных лидера должна содержать данные. Вы можете прием данных с помощью одного из методов, рассмотренных в обзоре приема.
Поток предоставления общего доступа к данным
- Поставщик использует свой ресурс Azure Data Share для предоставления общего доступа ко всей базе данных или определенной таблице, а также указывает адрес электронной почты получателя.
- Azure Data Share отправляет получателю по электронной почте приглашение со ссылкой.
- Получатель открывает сообщение с приглашением и выбирает ресурс Azure Data Share.
- С помощью Azure Data Share получатель сопоставляет общую базу данных или таблицу с соответствующим кластером.
Поставщик данных предоставляет общий доступ к данным
Поставщик данных может предоставить получателю общий доступ ко всей базе данных или к определенной таблице.
Общий доступ ко всей базе данных
Следуйте инструкциям в видео, чтобы создать учетную запись Azure Data Share, добавить набор данных и отправить приглашение.
Общий доступ к таблицам
Для предоставления общего доступа к одной или нескольким таблицам с помощью Azure Data Share вы можете использовать шаблон Azure Resource Manager.
Чтобы предоставить общий доступ к таблицам, выполните следующие действия:
Создайте шаблон и задайте соответствующие параметры набора данных и ограничения таблицы, а также укажите получателя приглашения. Используйте сведения, приведенные в следующей таблице, чтобы настроить шаблон.
Параметр Description Пример accountName Имя учетной записи Azure Data Share поставщика. расположение Расположение всех ресурсов. Руководитель и подписчик должны находиться в одном месте. shareName Имя общей папки, которая будет создана в учетной записи общего ресурса данных. recipientEmail Адрес электронной почты получателя Azure Data Share. databaseName Имя базы данных поставщика. databaseResourceId Идентификатор ресурса базы данных поставщика. externalTablesToExclude Список внешних таблиц для исключения. Чтобы исключить все внешние таблицы, используйте ["*"]. ["ExternalTable1ToExclude", "ExternalTable2ToExclude"]
externalTablesToInclude Список внешних таблиц для включения. Чтобы включить все внешние таблицы, начинающиеся с «Logs», используйте ["Logs*"]. ["ExternalTable1ToInclude", "ExternalTable2ToInclude"]
materializedViewsToExclude Список исключаемых материализованных представлений. Чтобы исключить все материализованные представления, используйте ["*"]. ["Mv11ToExclude", "Mv22ToExclude"]
materializedViewsToInclude Список включаемых материализованных представлений. Чтобы включить все материализованные представления, начинающиеся с «Logs», используйте ["Logs*"]. ["Mv1ToInclude", "Mv2ToInclude"]
tablesToExclude Список исключаемых таблиц. Чтобы исключить все таблицы, используйте ["*"]. ["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 Resource Manager с помощью портала Azure или PowerShell.
Потребитель данных — получение данных
Следуйте инструкциям в видео, чтобы принять приглашение, создать учетную запись для обмена данными и сопоставить ее с кластером потребителя.
Потребитель данных теперь может перейти в свой кластер Azure Data Explorer, чтобы предоставить пользователю разрешения для общих баз данных и доступ к данным. Данные, которые используют прием в очереди в исходном кластере Azure Data Explorer, будут отображаться в целевом кластере в течение нескольких секунд до нескольких минут.