Tutorial: Exportación de datos desde Azure IoT Central y visualización de información en Power BI
En los dos tutoriales anteriores, ha creado y personalizado una aplicación de IoT Central con la plantilla de aplicación In-store analytics - checkout (Análisis en tienda: finalización de la compra). En este tutorial, configurará la aplicación de IoT Central para que exporte los datos de telemetría recopilados de los dispositivos. A continuación, usará Power BI para crear un panel personalizado para que el administrador de la tienda visualice la información derivada de la telemetría.
En este tutorial, aprenderá a:
- Configurar una aplicación de IoT Central para exportar los datos de telemetría a un centro de eventos.
- Usar Logic Apps para enviar datos de un centro de eventos a un conjunto de datos de streaming de Power BI.
- Crear un panel de Power BI para visualizar los datos del conjunto de datos de streaming.
Prerrequisitos
Para completar este tutorial, necesita:
- Completar los dos tutoriales anteriores, Creación de una aplicación de análisis en tienda en Azure IoT Central y Personalización del panel y administración de dispositivos en Azure IoT Central.
- Una cuenta de Power BI Si no tiene una cuenta de Power BI, regístrese para obtener una evaluación gratuita de Power BI Pro antes de empezar.
Crear un grupo de recursos
Antes de crear el centro de eventos y la aplicación lógica, debe crear un grupo de recursos para administrarlos. El grupo de recursos debe estar en la misma ubicación que la aplicación In-store analytics - checkout (Análisis en tienda: finalización de la compra) de IoT Central. Para crear un grupo de recursos:
- Inicie sesión en Azure Portal.
- En el panel de navegación izquierdo, seleccione Grupos de recursos. A continuación, seleccione Agregar.
- En Suscripción, seleccione el nombre de la suscripción de Azure que usó para crear la aplicación de IoT Central.
- En el nombre del Grupo de recursos, escriba retail-store-analysis.
- En Región, seleccione la misma región que eligió para la aplicación de IoT Central.
- Seleccione Revisar + crear.
- En la página Revisar + crear, seleccione Crear.
Ahora tiene un grupo de recursos llamado retail-store-analysis en la suscripción.
Creación de un centro de eventos
Antes de poder configurar la aplicación de supervisión de venta al por menor para que exporte los datos de telemetría, debe crear un centro de eventos para recibir los datos exportados. En los pasos siguientes se muestra cómo crear el centro de eventos:
- En Azure Portal, seleccione Crear un recurso en la parte superior izquierda de la pantalla.
- En Buscar en Marketplace, escriba Event Hubs y, a continuación, presione Entrar.
- En la página Event Hubs, seleccione Crear.
- En la página Crear espacio de nombres, realice los pasos siguientes:
- Escriba un nombre único para el espacio de nombres, como sunombre-retail-store-analysis. El sistema comprueba si el nombre está disponible.
- Elija el plan de tarifa Básico.
- Seleccione la misma Suscripción que usó para crear la aplicación de IoT Central.
- Seleccione el grupo de recursos retail-store-analysis.
- Seleccione la misma ubicación que usó para la aplicación de IoT Central.
- Seleccione Crear. Puede que tenga que esperar unos minutos hasta que el sistema aprovisione los recursos.
- En el portal, vaya al grupo de recursos retail-store-analysis. Espere a que la implementación se complete. Es posible que tenga que seleccionar Actualizar para actualizar el estado de la implementación. También puede comprobar el estado de la creación del espacio de nombres del centro de eventos en Notificaciones.
- En el grupo de recursos retail-store-analysis, seleccione el Espacio de nombres de Event Hubs. Puede ver la página principal del espacio de nombres de Event Hubs en el portal.
Necesita una cadena de conexión con permisos de envío para conectarse desde IoT Central. Para crear una cadena de conexión:
- En el espacio de nombres de Event Hubs en Azure Portal, seleccione Directivas de acceso compartido. La lista de directivas incluye la directiva RootManageSharedAccessKey predeterminada.
- Seleccione +Agregar.
- Escriba SendPolicy como nombre de la directiva, seleccione Enviar y, luego, seleccione Crear.
- Seleccione SendPolicy en la lista de directivas.
- Anote el valor de la clave principal de la cadena de conexión. Se usa al configurar el destino de exportación en IoT Central.
Necesita una cadena de conexión con permisos de administración y escucha para conectarse al centro de eventos desde la aplicación lógica. Para recuperar una cadena de conexión:
- En el espacio de nombres de Event Hubs en Azure Portal, seleccione Directivas de acceso compartido. La lista de directivas incluye la directiva RootManageSharedAccessKey predeterminada.
- Seleccione RootManageSharedAccessKey en la lista de directivas.
- Anote el valor de la clave principal de la cadena de conexión. Se usa al configurar la aplicación lógica para capturar los datos de telemetría del centro de eventos.
Ahora que tiene un espacio de nombres de Event Hubs, puede crear un centro de eventos para usarlo con la aplicación de IoT Central:
- En la página principal del Espacio de nombres de Event Hubs en el portal, seleccione + Centro de eventos.
- En la página Crear centro de eventos, escriba store-telemetry como nombre y, a continuación, seleccione Crear.
Ahora tiene un centro de eventos que puede usar al configurar la exportación de datos desde la aplicación de IoT Central:
Configuración de la exportación de datos
Ahora tiene un centro de eventos, puede configurar la aplicación In-store analytics - checkout (Análisis en tienda: finalización de la compra) para exportar los datos de telemetría desde los dispositivos conectados. En los pasos siguientes se muestra cómo configurar la exportación:
- Inicie sesión en la aplicación In-store analytics - checkout (Análisis en tienda: finalización de la compra) de IoT Central.
- Seleccione Data export (Exportación de datos) en el panel izquierdo.
- Seleccione + New export (+ Nueva exportación).
- Escriba Telemetry Export (Exportación de datos de telemetría) como nombre de la exportación.
- Seleccione Telemetría como el tipo de datos que se van a exportar.
- En la sección Destinos, seleccione Crear uno nuevo.
- Escriba Store data event hub (Centro de eventos de almacenamiento) como nombre del destino.
- Elija Azure Event Hubs como tipo de destino.
- Seleccione Cadena de conexión como tipo de autorización.
- Pegue la cadena de conexión de SendPolicy que guardó al crear el centro de eventos.
- Escriba store-telemetry como centro de eventos.
- Seleccione Crear y Guardar.
- En la página de Telemetry Export, espere a que el estado de exportación cambie a Correcto.
La exportación de datos puede tardar unos minutos en iniciar el envío de los datos de telemetría al centro de eventos. Puede ver el estado de la exportación en la página Exportaciones de datos.
Creación de los conjuntos de datos de Power BI
El panel de Power BI muestra los datos de la aplicación de supervisión de venta al por menor. En esta solución, se usan conjuntos de datos de streaming de Power BI como origen de datos para el panel de Power BI. En esta sección, definirá el esquema de los conjuntos de datos de streaming para que la aplicación lógica pueda reenviar los datos procedentes del centro de eventos. En los pasos siguientes se muestra cómo crear dos conjuntos de datos de streaming para los sensores ambientales y un conjunto de datos de streaming para el sensor de ocupación:
Inicie sesión en su cuenta de Power BI.
Seleccione Áreas de trabajo y, después, seleccione Crear un área de trabajo.
En la página Crear un área de trabajo, escriba In-store analytics - checkout (Análisis en tienda: finalización de la compra) como el Nombre del área de trabajo de . Seleccione Guardar.
En la página del área de trabajo, seleccione + Nuevo > Conjunto de datos de streaming.
En la página Nuevo conjunto de datos de streaming, seleccione API y, a continuación, seleccione Siguiente.
Escriba Sensor zona 1 como Nombre del conjunto de datos.
Escriba los tres valores de la secuencia de la tabla siguiente:
Nombre del valor Tipo de valor Timestamp DateTime Humedad Number Temperatura Number Active Análisis del historial de datos.
Seleccione Crear y, a continuación, seleccione Listo.
Cree otro conjunto de datos de streaming llamado Sensor zona 2 con el mismo esquema y la misma configuración que el conjunto de datos Sensor zona 1.
Ahora tiene dos conjuntos de datos de streaming. La aplicación lógica enruta los datos de telemetría de los dos sensores ambientales conectados a la aplicación In-store analytics - checkout (Análisis en tienda: finalización de la compra) a estos dos conjuntos de datos:
Esta solución utiliza un conjunto de datos de streaming para cada sensor porque no es posible aplicar filtros a los datos de streaming en Power BI.
También necesita un conjunto de datos de streaming para los datos de telemetría de ocupación:
En la página del área de trabajo, seleccione Crear > Conjunto de datos de streaming.
En la página Nuevo conjunto de datos de streaming, seleccione API y, a continuación, seleccione Siguiente.
Escriba Sensor de ocupación como Nombre del conjunto de datos.
Escriba los cinco valores de la secuencia de la tabla siguiente:
Nombre del valor Tipo de valor Timestamp DateTime Queue Length 1 Number Queue Length 2 Number Dwell Time 1 Number Dwell Time 2 Number Active Análisis del historial de datos.
Seleccione Crear y, a continuación, seleccione Listo.
Ahora tiene un tercer conjunto de datos de streaming que almacena valores del sensor de ocupación simulado. Este sensor informa de la longitud de la cola en las dos zonas de cajas de la tienda y cuánto tiempo esperan los clientes en dichas colas:
Creación de una aplicación lógica
En esta solución, la aplicación lógica lee los datos de telemetría del centro de eventos, analiza los datos y, a continuación, los envía a los conjuntos de datos de streaming de Power BI que ha creado.
Antes de crear la aplicación lógica, necesita los identificadores de dispositivo de los dos sensores RuuviTag que conectó a la aplicación de IoT Central en el tutorial Creación de una aplicación de análisis en tienda en Azure IoT Central:
- Inicie sesión en la aplicación In-store analytics - checkout (Análisis en tienda: finalización de la compra) de IoT Central.
- En el panel izquierdo, seleccione Devices (Dispositivos). A continuación, seleccione RuuviTag.
- Tome nota de los identificadores de dispositivo. En la captura de pantalla siguiente, los identificadores son 8r6vfyiv1x y 1rvfk4ymk6z:
En los pasos siguientes se muestra cómo crear la aplicación lógica en Azure Portal:
- Inicie sesión en Azure Portal y seleccione Crear un recurso en la parte superior izquierda de la pantalla.
- En Buscar en Marketplace, escriba aplicación lógica y, a continuación, presione Entrar.
- En la página Aplicación lógica, seleccione Crear.
- En la página Crear:
- Escriba un nombre único para la aplicación lógica, como sunombre-retail-store-analysis.
- Seleccione la misma Suscripción que usó para crear la aplicación de IoT Central.
- Seleccione el grupo de recursos retail-store-analysis.
- Seleccione el valor de Tipo en Consumo.
- Seleccione la misma ubicación que usó para la aplicación de IoT Central.
- Seleccione Crear. Puede que tenga que esperar unos minutos hasta que el sistema aprovisione los recursos.
- En Azure Portal, vaya a la nueva aplicación lógica.
- En la página Diseñador de aplicaciones lógicas, seleccione Aplicación lógica en blanco.
- En Buscar conectores y desencadenadores, escriba Event Hubs.
- En Desencadenadores, seleccione Cuando los eventos estén disponibles en el centro de eventos.
- Escriba Store telemetry como nombre de la conexión.
- Seleccione Clave de acceso como tipo de autenticación.
- Pegue la cadena de conexión del centro de eventos para la directiva RootManageSharedAccessKey que anotó anteriormente y seleccione Crear.
- En la acción Cuando los eventos estén disponibles en el centro de eventos:
- En Nombre del centro de eventos, seleccione store-telemetry.
- En Tipo de contenido, seleccione application/json.
- Establezca el Intervalo en tres y la Frecuencia en segundos.
- Seleccione Guardar para guardar la aplicación lógica.
Para agregar la lógica al diseño de la aplicación lógica, seleccione Vista de código:
Reemplace
"actions": {},
por el siguiente código JSON. Reemplace los dos marcadores de posición[YOUR RUUVITAG DEVICE ID 1]
y[YOUR RUUVITAG DEVICE ID 2]
por los identificadores de los dos dispositivos RuuviTag. Anotó dichos identificadores anteriormente:"actions": { "Initialize_Device_ID_variable": { "inputs": { "variables": [ { "name": "DeviceID", "type": "String" } ] }, "runAfter": {}, "type": "InitializeVariable" }, "Parse_Telemetry": { "inputs": { "content": "@triggerBody()?['ContentData']", "schema": { "properties": { "deviceId": { "type": "string" }, "enqueuedTime": { "type": "string" }, "telemetry": { "properties": { "DwellTime1": { "type": "number" }, "DwellTime2": { "type": "number" }, "count1": { "type": "integer" }, "count2": { "type": "integer" }, "humidity": { "type": "number" }, "temperature": { "type": "number" } }, "type": "object" }, "templateId": { "type": "string" } }, "type": "object" } }, "runAfter": { "Initialize_Device_ID_variable": [ "Succeeded" ] }, "type": "ParseJson" }, "Set_Device_ID_variable": { "inputs": { "name": "DeviceID", "value": "@body('Parse_Telemetry')?['deviceId']" }, "runAfter": { "Parse_Telemetry": [ "Succeeded" ] }, "type": "SetVariable" }, "Switch_by_DeviceID": { "cases": { "Occupancy": { "actions": {}, "case": "Occupancy" }, "Zone 2 environment": { "actions": {}, "case": "[YOUR RUUVITAG DEVICE ID 2]" }, "Zone_1_environment": { "actions": {}, "case": "[YOUR RUUVITAG DEVICE ID 1]" } }, "default": { "actions": {} }, "expression": "@variables('DeviceID')", "runAfter": { "Set_Device_ID_variable": [ "Succeeded" ] }, "type": "Switch" } },
Seleccione Guardar y, después, seleccione Diseñador para ver la versión visual de la lógica que ha agregado:
Seleccione Cambiar por identificador de dispositivo para expandir la acción. A continuación, seleccione Entorno zona 1 y seleccione Agregar una acción.
En Buscar todos los conectores y acciones, escriba Agregar filas a un conjunto de datos.
Seleccione la acción Agregar filas a un conjunto de datos de Power BI.
Seleccione Iniciar sesión y siga las indicaciones para iniciar sesión en la cuenta de Power BI.
Una vez finalizado el proceso de inicio de sesión, en la acción Agregar filas a un conjunto de datos:
- Seleccione In-store analytics - checkout (Análisis en tienda: finalización de la compra) como el área de trabajo.
- Seleccione Sensor zona 1 como el conjunto de datos.
- Seleccione RealTimeData como la tabla.
- Seleccione Agregar nuevo parámetro y, a continuación, seleccione los campos Timestamp, Humidity y Temperature.
- Seleccione el campo Timestamp y, después, seleccione enqueuedTime de la lista Contenido dinámico.
- Seleccione el campo Humidity y, a continuación, seleccione Ver más junto a Analizar telemetría. A continuación, seleccione humidity.
- Seleccione el campo Temperature y, a continuación, seleccione Ver más junto a Analizar telemetría. A continuación, seleccione temperature.
Haga clic en Guardar para guardar los cambios. La acción Zone 1 environment (Entorno de la zona 1) tiene el aspecto de la captura de pantalla siguiente: .
Seleccione la acción Entorno zona 2 y seleccione Agregar una acción.
En Buscar todos los conectores y acciones, escriba Agregar filas a un conjunto de datos.
Seleccione la acción Agregar filas a un conjunto de datos de Power BI.
En la acción Agregar filas a un conjunto de datos 2:
- Seleccione In-store analytics - checkout (Análisis en tienda: finalización de la compra) como el área de trabajo.
- Seleccione Sensor zona 2 como el conjunto de datos.
- Seleccione RealTimeData como la tabla.
- Seleccione Agregar nuevo parámetro y, a continuación, seleccione los campos Timestamp, Humidity y Temperature.
- Seleccione el campo Timestamp y, después, seleccione enqueuedTime de la lista Contenido dinámico.
- Seleccione el campo Humidity y, a continuación, seleccione Ver más junto a Analizar telemetría. A continuación, seleccione humidity.
- Seleccione el campo Temperature y, a continuación, seleccione Ver más junto a Analizar telemetría. A continuación, seleccione temperature.
Haga clic en Guardar para guardar los cambios.
Seleccione la acción Ocupación y seleccione Agregar una acción.
En Buscar todos los conectores y acciones, escriba Agregar filas a un conjunto de datos.
Seleccione la acción Agregar filas a un conjunto de datos de Power BI.
En la acción Agregar filas a un conjunto de datos 3:
- Seleccione In-store analytics - checkout (Análisis en tienda: finalización de la compra) como el área de trabajo.
- Seleccione Sensor de ocupación como conjunto de datos.
- Seleccione RealTimeData como la tabla.
- Seleccione Agregar nuevo parámetro y, luego, elija los campos Timestamp, Queue Length 1, Queue Length 2, Dwell Time 1 y Dwell Time 2.
- Seleccione el campo Timestamp y, después, seleccione enqueuedTime de la lista Contenido dinámico.
- Seleccione el campo Queue Length 1 y, a continuación, seleccione Ver más junto a Analizar telemetría. A continuación, seleccione count1.
- Seleccione el campo Queue Length 2 y, a continuación, seleccione Ver más junto a Analizar telemetría. A continuación, seleccione count2.
- Seleccione el campo Dwell Time 1 y, a continuación, seleccione Ver más junto a Analizar telemetría. A continuación, seleccione DwellTime1.
- Seleccione el campo Dwell Time 2 y, a continuación, seleccione Ver más junto a Analizar telemetría. A continuación, seleccione DwellTime2.
Haga clic en Guardar para guardar los cambios. La acción Ocupación tiene un aspecto similar al de la captura de pantalla siguiente:
La aplicación lógica se ejecuta automáticamente. Para ver el estado de cada ejecución, vaya a la página Información general de la aplicación lógica en Azure Portal y seleccione Historial de ejecuciones. Seleccione Actualizar para actualizar la lista de ejecuciones.
Creación de un panel de Power BI
Ahora tiene datos de telemetría que fluyen desde la aplicación de IoT Central al centro de eventos. A continuación, la aplicación lógica analiza los mensajes del centro de eventos y los agrega a un conjunto datos de streaming de Power BI. Ahora puede crear un panel de Power BI para visualizar los datos de telemetría:
- Inicie sesión en su cuenta de Power BI.
- Seleccione Áreas de trabajo > Análisis en la tienda - finalización de la compra.
- Seleccione + Nuevo > Panel.
- Escriba Store analytics como el nombre del panel y seleccione Crear.
Adición de gráficos de líneas
Agregue cuatro iconos de gráfico de líneas para mostrar la temperatura y la humedad de los dos sensores ambientales. Utilice la información de la tabla siguiente para crear los iconos. Para agregar cada icono, seleccione Editar > Add a tile (Agregar un icono). Seleccione Datos de transmisión personalizados y, a continuación, seleccione Siguiente:
Configuración | Gráfico 1 | Gráfico 2 | Gráfico 3 | Gráfico 4 |
---|---|---|---|---|
Dataset | Sensor zona 1 | Sensor zona 1 | Sensor zona 2 | Sensor zona 2 |
Tipo de visualización | Gráfico de líneas | Gráfico de líneas | Gráfico de líneas | Gráfico de líneas |
Eje | Timestamp | Timestamp | Timestamp | Timestamp |
Valores | Temperatura | Humedad | Temperatura | Humedad |
Período de tiempo | 60 minutos | 60 minutos | 60 minutos | 60 minutos |
Título | Temperatura (1 hora) | Humedad (1 hora) | Temperatura (1 hora) | Humedad (1 hora) |
Subtítulo | Zona 1 | Zona 1 | Zona 2 | Zona 2 |
En la captura de pantalla siguiente se muestra la configuración del primer gráfico:
Adición de tarjetas para mostrar los datos ambientales
Agregue cuatro iconos de tarjeta para mostrar los valores de temperatura y humedad más recientes de los dos sensores ambientales. Utilice la información de la tabla siguiente para crear los iconos. Para agregar cada icono, seleccione Editar > Add a tile (Agregar un icono). Seleccione Datos de transmisión personalizados y, a continuación, seleccione Siguiente:
Configuración | Tarjeta 1 | Tarjeta 2 | Tarjeta 3 | Tarjeta 4 |
---|---|---|---|---|
Dataset | Sensor zona 1 | Sensor zona 1 | Sensor zona 2 | Sensor zona 2 |
Tipo de visualización | Card | Card | Card | Card |
Fields | Temperatura | Humedad | Temperatura | Humedad |
Título | Temperatura (F) | Humedad (%) | Temperatura (F) | Humedad (%) |
Subtítulo | Zona 1 | Zona 1 | Zona 2 | Zona 2 |
En la captura de pantalla siguiente se muestra la configuración de la primera tarjeta:
Adición de iconos para mostrar los datos de ocupación en la zona de cajas
Agregue cuatro iconos de tarjeta para mostrar la longitud de la cola y el tiempo de permanencia de las dos zonas de cajas de la tienda. Utilice la información de la tabla siguiente para crear los iconos. Para agregar cada icono, seleccione Editar > Add a tile (Agregar un icono). Seleccione Datos de transmisión personalizados y, a continuación, seleccione Siguiente:
Configuración | Tarjeta 1 | Tarjeta 2 | Tarjeta 3 | Tarjeta 4 |
---|---|---|---|---|
Dataset | Sensor de ocupación | Sensor de ocupación | Sensor de ocupación | Sensor de ocupación |
Tipo de visualización | Gráfico de columnas agrupadas | Gráfico de columnas agrupadas | Indicador | Indicador |
Eje | Timestamp | Timestamp | N/D | N/D |
Value | Dwell Time 1 | Dwell Time 2 | Queue Length 1 | Queue Length 2 |
Período de tiempo | 60 minutos | 60 minutos | N/D | N/D |
Título | Tiempo de permanencia | Tiempo de permanencia | Longitud de la cola | Longitud de la cola |
Subtítulo | Zona de cajas 1 | Zona de cajas 2 | Zona de cajas 1 | Zona de cajas 2 |
Cambie el tamaño y reorganice los iconos en el panel para que se parezca a la siguiente captura de pantalla:
Puede agregar algunos recursos gráficos para personalizar aún más el panel:
Limpieza de recursos
Si ha terminado con la aplicación IoT Central, puede eliminarla; para ello, inicie sesión en la aplicación y vaya a la página Administración en la sección Aplicación.
Si desea mantener la aplicación pero quiere reducir los costos asociados a ella, deshabilite la exportación de datos que envía los datos de telemetría al centro de eventos.
Puede eliminar el centro de eventos y la aplicación lógica en Azure Portal mediante la eliminación del grupo de recursos llamado retail-store-analysis.
Puede eliminar el panel y los conjuntos de datos de Power BI mediante la eliminación del área de trabajo en la página de configuración de Power BI del área de trabajo.