Uso de Azure Data Share para compartir datos con Azure Data Explorer

Hay muchas formas tradicionales de compartir datos, como a través de recursos compartidos de archivos, FTP, correo electrónico y API. Estos métodos requieren que las dos partes creen y mantengan una canalización de datos que mueva los datos entre los equipos y organizaciones. Con Azure Data Explorer, puede compartir sus datos de forma fácil y segura tanto con el personal de su empresa como con asociados externos. El uso compartido se produce casi en tiempo real, y sin necesidad de crear ni mantener una canalización de datos. Todos los cambios en la base de datos, incluidos el esquema y los datos, que se realizan en el lado del proveedor están disponibles al instante en el lado del consumidor.

Vídeo de Azure Friday.

Azure Data Explorer desacopla el almacenamiento y el proceso, lo que permite a los clientes ejecutar varias instancias del proceso (solo lectura) en el mismo almacenamiento subyacente. Puede adjuntar una base de datos como base de datos seguidora, que es una base de datos de solo lectura en un clúster remoto.

Configuración del uso compartido de datos

Use Azure Data Share para enviar y administrar invitaciones y recursos compartidos en toda la compañía o con clientes y asociados externos. Azure Data Share usa una base de datos de seguidores para crear un vínculo simbólico entre el clúster de Azure Data Explorer del proveedor y el del consumidor. Esta opción proporciona un único panel para ver y administrar todos los recursos compartidos de datos en los clústeres de Azure Data Explorer y otros servicios de datos. Azure Data Share también permite compartir datos entre organizaciones en distintos inquilinos de Microsoft Entra.

Nota:

Un administrador de ambos clústeres puede configurar directamente la base de datos de seguidores con varias API. Esto es útil en escenarios en los que se necesita un proceso adicional para escalar horizontalmente para la generación de informes.

Se puede configurar el uso compartido de datos de lo siguiente:

Nota

Cuando se establece la relación de uso compartido, Azure Data Share crea un vínculo simbólico entre el clúster de Azure Data Explorer del consumidor y del proveedor. Si el proveedor de datos revoca el acceso, se elimina el vínculo simbólico y las bases de datos compartidas dejan de estar disponibles para el consumidor de datos.

Uso compartido de datos de Azure Data Explorer.

El proveedor de datos puede compartir los datos en el nivel de base de datos o en el nivel de clúster. El clúster que comparte la base de datos es el clúster responsable, mientras que el que la recibe es el clúster seguidor. Los clústeres seguidores pueden seguir una o varias bases de datos de clústeres responsables. El clúster seguidor se sincroniza periódicamente para comprobar si hay cambios. El tiempo de retardo entre ambos clústeres varía entre unos segundos y unos minutos, en función del tamaño total de los metadatos y los datos. Los datos se almacenan en la caché del clúster consumidor y solo están disponibles para las operaciones de lectura o consulta, con una excepción, para invalidar la directiva de almacenamiento en caché activo y los permisos de base de datos. Las consultas que se ejecutan en el clúster seguidor usan la caché local y no usan los recursos del clúster responsable.

Requisitos previos

Flujo del uso compartido de datos

  1. El proveedor usa su recurso de Azure Data Share para compartir una base de datos completa o una tabla específica, y especificar la dirección de correo electrónico del receptor.
  2. Azure Data Share envía un correo electrónico de invitación al receptor.
  3. El receptor abre el correo electrónico de invitación y selecciona el recurso de Azure Data Share.
  4. El receptor usa Azure Data Share para asignar la base de datos o tabla compartidas al clúster adecuado.

Proveedor de datos: uso compartido de datos

El proveedor de datos puede compartir una base de datos completa o una tabla específica con el receptor.

Compartir una base de datos completa

Siga las instrucciones del vídeo para crear una cuenta de Azure Data Share, agregar un conjunto de datos y enviar una invitación. Proveedor de datos: uso compartido de datos.

Compartir tablas

Puede usar una plantilla de Azure Resource Manager para compartir una o varias tablas a través de Azure Data Share.

Siga estos pasos para compartir tablas:

  1. Cree una plantilla, establezca los parámetros adecuados en el conjunto de datos y las restricciones de tabla, y especifique el destinatario de la invitación. Use la información de la tabla siguiente como ayuda para configurar la plantilla.

    Parámetro Descripción Ejemplo
    accountName Nombre de la cuenta de Azure Data Share del proveedor.
    ubicación Ubicación de todos los recursos. El responsable y el seguidor deben estar en la misma ubicación.
    shareName Nombre del recurso compartido que se creará en la cuenta de Azure Data Share.
    recipientEmail Correo electrónico del receptor de Azure Data Share.
    databaseName Nombre de la base de datos del proveedor.
    databaseResourceId Identificador de recurso de la base de datos del proveedor.
    externalTablesToExclude Lista de las tablas externas que se excluirán. Para excluir todas las tablas externas, use ["*"]. ["ExternalTable1ToExclude", "ExternalTable2ToExclude"]
    externalTablesToInclude Lista de las tablas externas que se incluirán. Para incluir todas las tablas externas que comiencen por "Logs", use ["Logs*"]. ["ExternalTable1ToInclude", "ExternalTable2ToInclude"]
    materializedViewsToExclude Lista de vistas materializadas que se excluyen. Para excluir todas las vistas materializadas, use ["*"]. ["Mv11ToExclude", "Mv22ToExclude"]
    materializedViewsToInclude Lista de vistas materializadas que se incluyen. Para incluir todas las vistas materializadas que comiencen por "Logs", use ["Logs*"]. ["Mv1ToInclude", "Mv2ToInclude"]
    tablesToExclude La lista de tablas que se incluyen. Para excluir todas las tablas, use ["*"]. ["table1ToExclude", "table2ToExclude"]
    tablesToInclude La lista de tablas que se incluyen. Para excluir todas las tablas, use ["*"]. ["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. Implemente la plantilla de Azure Resource Manager mediante Azure Portal o PowerShell.

    implementación de plantillas.

Consumidor de datos: recepción de datos

Siga las instrucciones del vídeo para aceptar la invitación, crear una cuenta de uso compartido de datos y asignarla al clúster de consumidores.

Consumidor de datos: recepción de datos.

El consumidor de datos ahora puede ir a su clúster de Azure Data Explorer para conceder permisos de usuario a las bases de datos compartidas y acceder a los datos. Los datos ingeridos mediante la ingesta en cola en el clúster de Azure Data Explorer de origen se mostrarán en el clúster de destino en unos segundos a unos minutos.

Limitaciones