Captura de eventos a través de Azure Event Hubs en Azure Blob Storage o Azure Data Lake Storage
Artículo
Azure Event Hubs le permite capturar automáticamente el streaming de datos a través de Event Hubs en Azure Blob Storage o la cuenta de Azure Data Lake Storage Gen 1 o Gen 2 que prefiera. También le proporciona la flexibilidad de especificar un intervalo de tiempo o de tamaño. La habilitación o configuración de la característica Event Hubs Capture es rápida. Su ejecución no conlleva ningún gasto administrativo y se escala automáticamente con unidades de rendimiento de Event Hubs en el nivel estándar o unidades de procesamiento en el nivel Premium. El uso de Event Hubs Capture constituye la forma más sencilla de cargar datos de streaming en Azure y permite centrarse en el procesamiento de datos, en lugar de en su captura.
Nota
La configuración de Event Hubs Capture para usar Azure Data Lake Storage Gen2 es la misma que la configuración para utilizar una instancia de Azure Blob Storage. Para obtener información, consulte Configuración de Event Hubs Capture.
Event Hubs Capture permite procesar las canalizaciones en tiempo real y las basadas en lotes en la misma transmisión, lo que permite crear soluciones que crecen a la par que sus necesidades. Si ya está creando sistemas basados en lotes pensando en un futuro procesamiento en tiempo real o desea agregar una ruta de acceso inactiva eficaz a una solución en tiempo real existente, Event Hubs Capture facilita el trabajo con datos de streaming.
Importante
La cuenta de almacenamiento de destino (Azure Storage o Azure Data Lake Storage) debe estar en la misma suscripción que el centro de eventos cuando no use la identidad administrada para la autenticación.
Event Hubs no admite la captura de eventos en una cuenta de almacenamiento prémium.
Event Hubs Capture admite cualquier cuenta de almacenamiento con soporte para blobs en bloques.
Cómo funciona Event Hubs Capture
Event Hubs es un búfer duradero de retención temporal para la entrada de datos de telemetría, es similar a un registro distribuido. La clave para reducir horizontalmente en Event Hubs es el modelo de consumidor con particiones. Cada partición es un segmento de datos independiente y se consume de forma independiente. Con el tiempo estos datos envejecen basándose en el período de retención configurable. Como consecuencia, un centro de eventos determinado nunca llega a estar "demasiado lleno".
Event Hubs Capture permite especificar una cuenta y un contenedor propios de Azure Blob Storage, o una cuenta de Azure Data Lake Storage, que se usan para almacenar los datos capturados. Estas cuentas pueden estar en la misma región que el centro de eventos o en otra, lo que se suma a la flexibilidad de la característica Event Hubs Capture.
Los datos capturados se escriben en el formato de Apache Avro, que es un formato compacto, rápido y binario que proporciona estructuras de datos enriquecidos con un esquema insertado. Este formato se usa ampliamente en el ecosistema de Hadoop, en Stream Analytics y en Azure Data Factory. En este mismo artículo encontrará más información acerca de cómo trabajar con Avro.
Event Hubs Capture permite configurar una ventana para controlar la captura. Esta ventana es una configuración mínima de tamaño y tiempo con una "directiva de que el primero gana", lo que significa que el primer desencadenador que se encuentre provocará una operación de captura. Si tiene una ventana de captura de 100 MB cada quince minutos y envía 1 MB/s, la ventana de tamaño se desencadenará antes que la ventana de tiempo. Cada partición se captura de forma independiente y escribe un blob en bloques completado en el momento de la captura, denominado como la hora en que se encontró el intervalo de captura. Esta es la convención de nomenclatura de almacenamiento:
Si la instancia de Azure Storage Blob no está disponible temporalmente, Event Hubs Capture retiene los datos durante el período de retención de datos configurado en el centro de eventos y volverá a rellenarlos una vez que la cuenta de almacenamiento vuelva a estar disponible.
Escalado de unidades de rendimiento o unidades de procesamiento
En el nivel estándar de Event Hubs, las unidades de rendimiento controlan el tráfico, y en el nivel Premium, las unidades de procesamiento controlan el tráfico. Event Hubs Capture copia los datos directamente del almacenamiento interno de Event Hubs, omite las cuotas de salida de unidades de rendimiento o procesamiento y guarda la salida para otros lectores de procesamiento, como Stream Analytics o Spark.
Una vez configurado, Event Hubs Capture se ejecuta automáticamente cuando se envía el primer evento y continúa ejecutándose. Para facilitar que el procesamiento descendente sepa que el proceso funciona, Event Hubs escribe archivos vacíos cuando no hay datos. Este proceso proporciona un marcador y una cadencia predecibles que puede alimentar sus procesadores de lotes.
Configuración de Event Hubs Capture
Puede configurar la funcionalidad de captura en el momento de creación del centro de eventos mediante Azure Portal o con las plantillas de Azure Resource Manager. Para más información, consulte los siguientes artículos.
Si habilita la característica de captura en un centro de eventos existente, la característica capturará los eventos que lleguen al centro de eventos después de activar la característica en cuestión. No capturará aquellos eventos que ya existían en el centro de eventos antes de que se activara.
Cómo se factura Event Hubs Capture
La característica de captura se incluye en el nivel Premium, por lo que no hay ningún cargo adicional por ese nivel. Para el nivel Estándar, la característica se cobra mensualmente y el cargo es directamente proporcional al número de unidades de procesamiento o unidades de procesamiento adquiridas para el espacio de nombres. A medida que las unidades de rendimiento o procesamiento se incrementan y reducen, las mediciones de Event Hubs Capture aumentan y disminuyen con el fin de proporcionar un rendimiento coincidente. Los medidores se ejecutan de manera simultánea. Para conocer los precios detallados, consulte Precios de Event Hubs.
Capture no consume la cuota de salida, porque se factura por separado.
Para habilitar la captura en un centro de eventos con Azure Storage como destino de captura, o actualizar sus propiedades, el usuario o la entidad de servicio debe tener un rol de control de acceso basado en rol (RBAC) con los siguientes permisos asignados en el ámbito de la cuenta de almacenamiento.
Generic: Linked access check failed for capture storage destination <StorageAccount Arm Id>.
User or the application with object id <Object Id> making the request doesn't have the required data plane write permissions.
Please enable Microsoft.Storage/storageAccounts/blobServices/containers/write, Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write permission(s) on above resource for the user or the application and retry.
TrackingId:<ID>, SystemTracker:mynamespace.servicebus.windows.net:myhub, Timestamp:<TimeStamp>
El propietario de datos de Storage Blob es un rol integrado con permisos anteriores, por lo que debe agregar la cuenta de usuario o la entidad de servicio a este rol.
Contenido relacionado
Event Hubs Capture es el modo más sencillo de obtener datos en Azure. Con Azure Data Lake, Azure Data Factory y Azure HDInsight, se puede realizar el procesamiento por lotes y cualquier otro análisis mediante las plataformas y herramientas conocidas a la escala que necesite.
Aprenda a habilitar esta característica mediante Azure Portal y una plantilla de Azure Resource Manager:
Demostrar la comprensión de las tareas comunes de ingeniería de datos para implementar y administrar cargas de trabajo de ingeniería de datos en Microsoft Azure mediante una serie de servicios de Azure.
En este artículo se muestra cómo escribir código de Python para capturar los datos que se envían a un centro de eventos y cómo leer los datos de eventos capturados en una cuenta de Azure Storage.
En este artículo se proporcionan límites y cuotas para Azure Event Hubs. Por ejemplo, el número de espacios de nombres por suscripción o el número de centros de eventos por espacio de nombres.
Describe cómo equilibrar la carga de las particiones entre varias instancias de una aplicación mediante un procesador de eventos y el SDK de Azure Event Hubs.