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.
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.
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:
- Base de datos completa (predeterminado).
- Tablas específicas; Uso compartido de nivel de tabla.
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.
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.
- Suscripción a Azure. Cree una cuenta de Azure gratuita.
- Un clúster y una base de datos de Azure Data Explorer para líder y seguidor. Cree un clúster y una base de datos.
- La base de datos líder debe contener datos. Puede ingerir datos mediante uno de los métodos descritos en la introducción a la ingesta.
- 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.
- Azure Data Share envía un correo electrónico de invitación al receptor.
- El receptor abre el correo electrónico de invitación y selecciona el recurso de Azure Data Share.
- El receptor usa Azure Data Share para asignar la base de datos o tabla compartidas al clúster adecuado.
El proveedor de datos puede compartir una base de datos completa o una tabla específica con el receptor.
Siga las instrucciones del vídeo para crear una cuenta de Azure Data Share, agregar un conjunto de datos y enviar una invitación.
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:
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')]" } } } ] }
Implemente la plantilla de Azure Resource Manager mediante Azure Portal o PowerShell.
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.
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.