Использование 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 Data Explorer.

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

Предварительные требования

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

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

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

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

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

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

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

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

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

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

    Параметр Описание Пример
    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')]"
            }
          }
        }
      ]
    }
    
  2. Разверните шаблон Azure Resource Manager с помощью портала Azure или PowerShell.

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

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

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

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

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

Ограничения