Поделиться через


Совместное использование данных с помощью 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 Data Explorer.

Поставщик данных может предоставлять общий доступ к данным на уровне базы данных или на уровне кластера. Кластер с общим доступом к базе данных является ведущим кластером, а кластер, участвующий в общем доступе, является кластером подписчика. Кластер подписчика может использовать одну или несколько баз данных ведущего кластера. Кластер подписчика периодически синхронизируется для проверки изменений. Время задержки между ведущим кластером и кластером-подписчиком варьируется от нескольких секунд до нескольких минут в зависимости от общего размера метаданных и данных. Данные кэшируются в кластере потребителя и доступны только для операций чтения или запросов, за исключением переопределения политики горячего кэширования и разрешений баз данных. Запросы, выполняемые в кластере подписчика, используют локальный кэш и не используют ресурсы ведущего кластера.

Необходимые компоненты

Поток предоставления общего доступа к данным

  1. Поставщик использует свой ресурс Azure Data Share для предоставления общего доступа ко всей базе данных или определенной таблице, а также указывает адрес электронной почты получателя.
  2. Azure Data Share отправляет получателю по электронной почте приглашение со ссылкой.
  3. Получатель открывает сообщение с приглашением и выбирает ресурс Azure Data Share.
  4. С помощью Azure Data Share получатель сопоставляет общую базу данных или таблицу с соответствующим кластером.

Поставщик данных

Поставщик данных может предоставить получателю общий доступ ко всей базе данных или к определенной таблице.

Общий доступ ко всей базе данных

Следуйте инструкциям в видео, чтобы создать учетную запись Azure Data Share, добавить набор данных и отправить приглашение. Поставщик данных — общий доступ к данным.

Общий доступ к таблицам

Шаблон Azure Resource Manager можно использовать для совместного использования одной или нескольких таблиц с помощью Azure Data Share.

Чтобы предоставить общий доступ к таблицам, выполните следующие действия:

  1. Создайте шаблон и задайте соответствующие параметры набора данных и ограничения таблицы, а также укажите получателя приглашения. Используйте сведения, приведенные в следующей таблице, чтобы настроить шаблон.

Общие параметры

Параметр Описание Пример
accountName Имя учетной записи Azure Data Share поставщика.
расположение Расположение всех ресурсов. Руководитель и подписчик должны находиться в одном месте.
shareName Имя общей папки, создаваемой в учетной записи для общего доступа к данным.
recipientEmail Адрес электронной почты получателя Azure Data Share.

Параметры базы данных

Параметр Описание Пример
databaseName Имя базы данных поставщика.
databaseResourceId Идентификатор ресурса базы данных поставщика.

Параметры таблицы и представления

Параметр Описание Пример
внешниеТаблицыДляИсключения Список внешних таблиц для исключения. Чтобы исключить все внешние таблицы, используйте ["*"]. ["ExternalTable1ToExclude", "ExternalTable2ToExclude"]
externalTablesToInclude Список внешних таблиц для включения. Чтобы включить все внешние таблицы, начинающиеся с «Logs», используйте ["Logs*"]. ["ExternalTable1ToInclude", "ExternalTable2ToInclude"]
материализованныеПредставленияДляИсключения Список исключаемых материализованных представлений. Чтобы исключить все материализованные представления, используйте ["*"]. ["Mv11ToExclude", "Mv22ToExclude"]
материализованный вид для включения Список включаемых материализованных представлений. Чтобы включить все материализованные представления, начинающиеся с «Logs», используйте ["Logs*"]. ["Mv1ToInclude", "Mv2ToInclude"]
таблицыДляИсключения Список исключаемых таблиц. Чтобы исключить все таблицы, используйте ["*"]. ["table1ToExclude", "table2ToExclude"]
таблицы для включения Список включаемых таблиц. Чтобы включить все таблицы, используйте ["*"]. ["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')]"
            }
          }
        }
      ]
    }
  1. Разверните шаблон Azure Resource Manager с помощью портала Azure или PowerShell.

    Развертывание шаблона.

Потребитель данных — получение данных

Следуйте инструкциям в видео, чтобы принять приглашение, создать учетную запись для обмена данными и сопоставить ее с кластером потребителя.

Потребитель данных — получение данных.

Потребитель данных теперь может перейти в свой кластер Azure Data Explorer, чтобы предоставить пользователю разрешения для общих баз данных и доступ к данным. Данные, принятые с помощью приема в очередь в исходный кластер Azure Data Explorer, отображаются в целевом кластере в течение нескольких секунд до нескольких минут.

Ограничения