Exportación de datos de IoT a destinos en la nube mediante la característica de exportación de datos
En este artículo se describe cómo usar la exportación de datos en Azure IoT Central. Utilice esta característica para exportar continuamente los datos de IoT filtrados y enriquecidos desde su aplicación de IoT Central. La exportación de datos inserta los cambios casi en tiempo real en otras partes de la solución en la nube para su análisis y almacenamiento, y conocer los detalles de la ruta de acceso activa.
Por ejemplo, puede:
- Exporte continuamente la telemetría, los cambios de propiedad, la conectividad del dispositivo, el ciclo de vida del dispositivo y los datos del ciclo de vida de la plantilla de dispositivo en formato JSON casi en tiempo real.
- Filtrar los flujos de datos para exportar los datos que coincidan con condiciones personalizadas.
- Enriquecer los flujos de datos con valores personalizados y valores de propiedad del dispositivo.
- Transforme los flujos de datos para modificar su forma y contenido.
- Envíe los datos a destinos, como Azure Event Hubs, Azure Data Explorer, Azure Service Bus, Azure Blob Storage y puntos de conexión de webhook.
Sugerencia
Cuando se activa la exportación de datos, solo se obtienen los datos a partir de ese momento. Actualmente, no se pueden recuperar los datos del tiempo durante el que la exportación de datos estaba desactivada. Para conservar más datos históricos, active la exportación de datos al principio.
Prerrequisitos
Para usar las características de exportación de datos, debe tener una aplicación V3 y permisos de exportación de datos.
Si tiene una aplicación V2, consulte Migración de la aplicación de IoT Central V2 a V3.
Configuración del destino de exportación
El destino de exportación debe existir antes de configurar la exportación de datos. Actualmente están disponibles los siguientes tipos de destino:
- Azure Event Hubs
- Cola de Azure Service Bus
- Tema de Azure Service Bus
- Azure Blob Storage
- Explorador de datos de Azure
- webhook
Opciones de conexión
Para los destinos de servicio de Azure, puede configurar la conexión con una cadena de conexión o una identidad administrada. Las identidades administradas son más seguras porque:
- No se almacenan las credenciales del recurso en una cadena de conexión en la aplicación IoT Central.
- Las credenciales se vinculan automáticamente a la vigencia de la aplicación IoT Central.
- Las identidades administradas rotan automáticamente sus claves de seguridad periódicamente.
Actualmente, IoT Central usa identidades administradas asignadas por el sistema.
Al configurar una identidad administrada, la configuración incluye un ámbito y un rol:
- El ámbito define dónde puede usar la identidad administrada. Por ejemplo, puede usar un grupo de recursos de Azure como ámbito. En este caso, tanto la aplicación de IoT Central como el destino deben estar en el mismo grupo de recursos.
- El rol define qué permisos se conceden a la aplicación de IoT Central en el servicio de destino. Por ejemplo, para que la aplicación de IoT Central envíe datos a un centro de eventos, la identidad administrada necesita la asignación de rol emisor de datos de Azure Event Hubs.
En este artículo se muestra cómo crear una identidad administrada en Azure Portal. También puede usar la CLI de Azure para crear una identidad administrada. Para más información, consulte Asignación de un acceso de identidades administradas a un recurso mediante la CLI de Azure.
Creación de un destino de Event Hubs
Si no tiene un espacio de nombres existente de Event Hubs al que exportar, siga estos pasos:
Cree un espacio de nombres de Event Hubs en Azure Portal. Puede encontrar más información en los documentos de Azure Event Hubs.
Cree un centro de eventos en el espacio de nombres de Event Hubs Vaya al espacio de nombres y seleccione + Centro de eventos en la parte superior para crear una instancia de centro de eventos.
Genere la clave que usará cuando configure la exportación de datos en IoT Central:
- Seleccione la instancia del centro de eventos que creó.
- Seleccione Configuración > Directivas de acceso compartido.
- Cree una nueva clave o elija una clave existente que tenga permisos de envío.
- Copie la cadena de conexión principal o la secundaria. Esta cadena de conexión sirve para configurar un nuevo destino en IoT Central.
- Como alternativa, puede generar una cadena de conexión para todo el espacio de nombres de Event Hubs:
- Vaya a su espacio de nombres de Event Hubs en Azure Portal.
- En Configuración, seleccione Directivas de acceso compartido.
- Cree una nueva clave o elija una clave existente que tenga permisos de envío.
- Copie la cadena de conexión principal o la secundaria.
Creación de una cola o un tema de Service Bus como destino
Si no tiene un espacio de nombres existente de Service Bus al que exportar, siga estos pasos:
Cree un nuevo espacio de nombres de Service Bus en Azure Portal. Puede encontrar más información en los documentos de Azure Service Bus.
Para crear una cola o tema como destino de exportación, vaya al espacio de nombres de Service Bus y seleccione + Cola o + Tema.
Genere la clave que usará cuando configure la exportación de datos en IoT Central:
- Seleccione la cola o el tema que creó.
- Seleccione Configuración/Directivas de acceso compartido.
- Cree una nueva clave o elija una clave existente que tenga permisos de envío.
- Copie la cadena de conexión principal o la secundaria. Esta cadena de conexión sirve para configurar un nuevo destino en IoT Central.
- Como alternativa, puede generar una cadena de conexión para todo el espacio de nombres de Service Bus:
- Vaya al espacio de nombres de Service Bus en Azure Portal.
- En Configuración, seleccione Directivas de acceso compartido.
- Cree una nueva clave o elija una clave existente que tenga permisos de envío.
- Copie la cadena de conexión principal o la secundaria.
Creación de una instancia de Azure Blob Storage como destino
Si no tiene una cuenta existente de Azure Storage a la que exportar, siga estos pasos:
Cree una cuenta de almacenamiento en Azure Portal. Puede obtener más información sobre cómo crear nuevas cuentas de almacenamiento de Azure Blob o cuentas de almacenamiento de Azure Data Lake Storage v2. La exportación de datos solo puede escribir datos en cuentas de almacenamiento que admiten blobs en bloques. En la lista siguiente se muestran los tipos de cuenta de almacenamiento compatibles conocidos:
Nivel de rendimiento Tipo de cuenta Estándar Uso general V2 Estándar Uso general V1 Estándar Blob Storage Premium Almacenamiento de blob en bloques Para crear un contenedor en su cuenta de almacenamiento, vaya a su cuenta de almacenamiento. En Blob Service seleccione Examinar blobs. Seleccione + Contenedor en la parte superior para crear un contenedor.
Genere una cadena de conexión para la cuenta de almacenamiento en Configuración > Claves de acceso. Copie una de las dos cadenas de conexión.
Creación de un destino de Azure Data Explorer
Si no tiene una base de datos y un clúster de Azure Data Explorer existentes a los que exportar, siga estos pasos:
Cree un nuevo clúster y una base de datos de Azure Data Explorer. Para más información, consulte Inicio rápido: Creación de un clúster y una base de datos de Azure Data Explorer. Tome nota del nombre de la base de datos que ha creado; necesitará este valor en los pasos siguientes.
Cree una entidad de servicio que pueda usar para conectar la aplicación de IoT Central a Azure Data Explorer. Utilice Azure Cloud Shell para ejecutar el comando siguiente:
az ad sp create-for-rbac --skip-assignment --name "My SP for IoT Central"Anote los valores de
appId,passwordytenantde la salida del comando; los necesitará en los pasos siguientes.Para agregar la entidad de servicio a la base de datos, vaya al portal de Azure Data Explorer y ejecute la siguiente consulta en la base de datos. Reemplace los marcadores de posición por los valores que anotó anteriormente:
.add database <YourDatabaseName> admins ('aadapp=<YourAppId>;<YourTenant>');Cree una tabla en la base de datos con un esquema adecuado para los datos que va a exportar. En la consulta de ejemplo siguiente, se crea una tabla llamada
smartvitalspatch. Para más información, consulte Transformación de datos dentro de la aplicación de IoT Central para su exportación:.create table smartvitalspatch ( EnqueuedTime:datetime, Message:string, Application:string, Device:string, Simulated:boolean, Template:string, Module:string, Component:string, Capability:string, Value:dynamic )(Opcional) Para acelerar la ingesta de datos en la base de datos de Azure Data Explorer:
Vaya a la página Configurations (Configuraciones) del clúster de Azure Data Explorer. A continuación, habilite la opción Streaming ingestion (Ingesta de streaming).
Ejecute la consulta siguiente para modificar la directiva de la tabla para habilitar la ingesta de streaming:
.alter table smartvitalspatch policy streamingingestion enable
Agregue un destino de Azure Data Explorer en IoT Central mediante la dirección URL del clúster de Azure Data Explorer, el nombre de la base de datos y el nombre de la tabla. En la tabla siguiente, se muestran los valores de la entidad de servicio que se usarán para la autorización:
Valor de la entidad de servicio Configuración de destino appId ClientID tenant Id. de inquilino password Secreto del cliente
Creación de un punto de conexión de webhook
Puede exportar los datos a un punto de conexión de webhook HTTP disponible públicamente. Puede crear un punto de conexión de webhook de prueba mediante RequestBin. RequestBin limita las solicitudes cuando se alcanza el límite:
- Abra RequestBin.
- Cree una instancia de RequestBin y copie la dirección URL de la papelera. Esta dirección URL se usa para probar la exportación de datos.
Configuración de la exportación de datos
Ahora que tiene un destino al que exportar los datos, configure la exportación de datos en su aplicación de IoT Central:
Inicie sesión en su aplicación de IoT Central.
En el panel izquierdo, seleccione Exportación de datos.
Sugerencia
Si no ve Exportación de datos en el panel izquierdo, no tiene permisos para configurar la exportación de datos en la aplicación. Hable con un administrador para configurar la exportación de datos.
Seleccione + New export (+ Nueva exportación).
Escriba un nombre para mostrar para la nueva exportación y asegúrese de que la exportación de datos está habilitada.
Elija el tipo de datos para exportar. En la tabla siguiente se enumeran los tipos de exportación de datos compatibles:
Tipo de datos Descripción Formato de datos Telemetría Exporte los mensajes de telemetría de los dispositivos casi en tiempo real. Cada mensaje exportado contiene todo el contenido del mensaje del dispositivo original, normalizado. Formato del mensaje de telemetría Cambios de la propiedad Exporte los cambios de las propiedades de dispositivos y la nube casi en tiempo real. En el caso de las propiedades de dispositivo de solo lectura, se exportan los cambios realizados en los valores notificados. En el caso de las propiedades de lectura y escritura, se exportan los valores notificados y deseados. Formato de los mensajes de cambio de propiedad Conectividad de dispositivos Exporte eventos de dispositivos conectados y desconectados. Formato de mensaje de conectividad del dispositivo Ciclo de vida del dispositivo Exporte los eventos registrados, eliminados, aprovisionados, habilitados, deshabilitados, displayNameChanged y deviceTemplateChanged. Formato de los mensajes de cambios del ciclo de vida de dispositivo Ciclo de vida de plantillas de dispositivo Exporte los cambios de plantilla de dispositivo publicados, incluidos los creados, actualizados y eliminados. Formato de los mensajes de cambios del ciclo de vida de plantilla de dispositivo Opcionalmente, agregue filtros para reducir la cantidad de datos exportados. Hay diferentes tipos de filtros disponibles para cada tipo de exportación de datos:
Tipo de datos Filtros disponibles Telemetría - Filtrar por nombre de dispositivo, id. de dispositivo, plantilla de dispositivo y si el dispositivo está simulado
- Filtrar el flujo para que solo contenga la telemetría que cumpla las condiciones de filtro
- Filtrar el flujo para que solo contenga la telemetría de dispositivos con propiedades que coincidan con las condiciones de filtro
- Filtrar el flujo para que solo contenga la telemetría que tenga propiedades de mensaje que cumplan la condición de filtro. Las propiedades de mensaje (también denominadas propiedades de aplicación) se envían en un contenedor de pares de clave-valor en cada mensaje de telemetría enviado opcionalmente por los dispositivos que usan los SDK de dispositivo. Para crear un filtro de propiedad de mensaje, escriba la clave de la propiedad de mensaje que busca y especifique una condición. Solo se exportarán los mensajes de telemetría con propiedades que coincidan con la condición de filtro especificada. Obtenga más información sobre las propiedades de aplicaciones en la documentación de IoT Hub.
Cambios de la propiedad - Filtrar por nombre de dispositivo, id. de dispositivo, plantilla de dispositivo y si el dispositivo está simulado
- Filtrar el flujo para que contenga solo los cambios de propiedad que cumplan las condiciones de filtro
Conectividad de dispositivos - Filtrar por nombre de dispositivo, identificador de dispositivo, plantilla de dispositivo y si el dispositivo es simulado
- Filtrar el flujo para que solo contenga los cambios de dispositivos con propiedades que coincidan con las condiciones de filtro
Ciclo de vida del dispositivo - Filtrar por nombre de dispositivo, id. de dispositivo, plantilla de dispositivo y si el dispositivo está aprovisionado, habilitado o simulado
- Filtrar el flujo para que solo contenga los cambios de dispositivos con propiedades que coincidan con las condiciones de filtro
Ciclo de vida de plantillas de dispositivo - Filtrar por plantilla de dispositivo
Opcionalmente, puede enriquecer los mensajes exportados con metadatos adicionales de pares clave-valor. Están disponibles los enriquecimientos siguientes para los tipos de exportación de datos de telemetría, cambios de propiedad, conectividad de dispositivo y ciclo de vida de dispositivo:
- Cadena personalizada: agrega una cadena estática personalizada a cada mensaje. Escriba cualquier clave y especifique cualquier valor de cadena.
- Propiedad, que agrega a cada mensaje:
- Metadatos del dispositivo, como el nombre del dispositivo, el nombre de la plantilla de dispositivo, si está habilitado, las organizaciones, si está aprovisionado y si es simulado.
- La propiedad notificada de dispositivo actual o el valor de propiedad de la nube a cada mensaje. Si el mensaje exportado procede de un dispositivo que no tiene la propiedad especificada, no obtendrá el enriquecimiento.
Configure el destino:
Agregue un destino nuevo o uno que ya haya creado. Seleccione el vínculo Create a new one (Crear uno nuevo) y agregue la siguiente información:
- Destination name (Nombre del destino): el nombre para mostrar del destino en IoT Central.
- Tipo de destino: elija el tipo de destino. Si todavía no ha configurado el destino de exportación, consulte Configuración del destino de exportación.
- Autorización: seleccione Cadena de conexión.
- En el caso de Azure Event Hubs o la cola o el tema de Azure Service Bus, pegue la cadena de conexión del recurso y escriba el nombre (distingue mayúsculas de minúsculas) del centro de eventos, la cola o el tema, si es necesario.
- En Azure Blob Storage, pegue la cadena de conexión del recurso y, si es necesario, escriba el nombre del contenedor (distingue mayúsculas de minúsculas).
- Si se trata de un webhook, pegue la dirección URL de devolución de llamada para el punto de conexión de webhook. Opcionalmente, puede configurar la autorización de webhook (OAuth 2.0 y el token de autorización) y agregar encabezados personalizados.
- En OAuth 2.0, solo se admite el flujo de credenciales de cliente. Cuando el destino se guarde, IoT Central se comunicará con el proveedor de OAuth para recuperar un token de autorización. Este token se adjuntará al encabezado
Authorizationpara cada mensaje enviado a este destino. - Para el token de autorización, puede especificar un valor de token que se adjunte directamente al encabezado
Authorizationpara cada mensaje enviado a este destino.
- En OAuth 2.0, solo se admite el flujo de credenciales de cliente. Cuando el destino se guarde, IoT Central se comunicará con el proveedor de OAuth para recuperar un token de autorización. Este token se adjuntará al encabezado
- Seleccione Crear.
Seleccione + Destino y elija un destino en el menú desplegable. Puede agregar hasta cinco destinos a una única exportación.
Cuando haya terminado de configurar la exportación, seleccione Guardar. Transcurridos unos minutos, los datos aparecen en sus destinos.
Supervisión de la exportación
Puede comprobar el estado de las exportaciones en IoT Central. También puede usar Azure Monitor para ver cuántos datos está exportando y los errores de exportación. Puede acceder a las métricas de estado de dispositivos y de exportación en los gráficos de Azure Portal, con una API de REST o con consultas en PowerShell o la CLI de Azure. Actualmente, puede supervisar las siguientes métricas de exportación de datos en Azure Monitor:
- Número de mensajes entrantes para exportar antes de que se apliquen los filtros
- Número de mensajes que pasan a través de filtros
- Número de mensajes exportados correctamente a destinos
- Número máximo de errores detectados
Para más información, consulte Supervisión del estado de la aplicación.
Destinations
Destino de Azure Blob Storage
Los datos se exportan una vez por minuto, y cada archivo contiene el lote de cambios desde la exportación anterior. Los datos exportados se guardan en formato JSON. Las rutas de acceso predeterminadas a los datos exportados en la cuenta de almacenamiento son:
- Telemetría: {container}/{app-id}/{partition_id}/{YYYY}/{MM}/{dd}/{hh}/{mm}/{filename}
- Cambios de propiedad: {container}/{app-id}/{partition_id}/{YYYY}/{MM}/{dd}/{hh}/{mm}/{filename}
Para examinar los archivos exportados en Azure Portal, vaya al archivo y seleccione Editar blob.
Destinos de Azure Event Hubs y Azure Service Bus
Los datos se exportan casi en tiempo real. Los datos están en el cuerpo del mensaje y están en formato JSON codificados como UTF-8.
Las anotaciones o el contenedor de propiedades del sistema del mensaje contienen los campos iotcentral-device-id, iotcentral-application-id, iotcentral-message-source y iotcentral-message-type, que tienen los mismos valores que los campos correspondientes del cuerpo del mensaje.
Destino de Azure Data Explorer
Los datos se exportan casi en tiempo real a una tabla de la base de datos especificada del clúster de Azure Data Explorer. Los datos están en el cuerpo del mensaje y están en formato JSON codificados como UTF-8. Puede agregar una transformación en IoT Central para exportar los datos que coincidan con el esquema de la tabla.
Para consultar los datos exportados en el portal de Azure Data Explorer, vaya a la base de datos y seleccione Query (Consulta).
Destino de webhook
En el caso de los destinos de webhooks, los datos también se exportan casi en tiempo real. Los datos del cuerpo del mensaje están en el mismo formato que en Event Hubs y Service Bus.
Formato de los datos de telemetría
Cada mensaje exportado contiene un formato normalizado del mensaje completo que el dispositivo envió en el cuerpo del mensaje. El mensaje está en formato JSON y codificado como UTF-8. La información de los mensajes incluye:
applicationId: el identificador de la aplicación IoT Central.messageSource: el origen del mensaje (telemetry).deviceId: el identificador del dispositivo que envió el mensaje de telemetría.schema: el nombre y la versión del esquema de carga.templateId: el identificador de la plantilla de dispositivo asociada al dispositivo.enqueuedTime: la hora a la que IoT Central recibió este mensaje.enrichments: cualquier enriquecimiento configurado en la exportación.module: el módulo IoT Edge que envió este mensaje. Este campo solo aparece si el mensaje provino de un módulo IoT Edge.component: el componente que envió este mensaje. Este campo solo aparece si las funcionalidades enviadas en el mensaje se modelaron como un componente en la plantilla de dispositivo.messageProperties: más propiedades que el dispositivo envió con el mensaje. A veces, estas propiedades se denominan propiedades de la aplicación. Puede encontrar más información en la documentación de IoT Hub.
En el caso de Event Hubs y Service Bus, IoT Central exporta un mensaje nuevo rápidamente después de recibir el mensaje de un dispositivo. En las propiedades de usuario (también conocidas como propiedades de la aplicación) de cada mensaje, iotcentral-device-id, iotcentral-application-id e iotcentral-message-source se incluyen automáticamente.
Para Blob Storage, los mensajes se procesan por lotes y se exportan una vez por minuto.
En el ejemplo siguiente se muestra un mensaje de telemetría exportado:
{
"applicationId": "1dffa667-9bee-4f16-b243-25ad4151475e",
"messageSource": "telemetry",
"deviceId": "1vzb5ghlsg1",
"schema": "default@v1",
"templateId": "urn:qugj6vbw5:___qbj_27r",
"enqueuedTime": "2020-08-05T22:26:55.455Z",
"telemetry": {
"Activity": "running",
"BloodPressure": {
"Diastolic": 7,
"Systolic": 71
},
"BodyTemperature": 98.73447010562934,
"HeartRate": 88,
"HeartRateVariability": 17,
"RespiratoryRate": 13
},
"enrichments": {
"userSpecifiedKey": "sampleValue"
},
"module": "VitalsModule",
"component": "DeviceComponent",
"messageProperties": {
"messageProp": "value"
}
}
Propiedades del mensaje
Los mensajes de telemetría tienen propiedades de metadatos además de la carga de telemetría. El fragmento de código anterior muestra ejemplos de mensajes del sistema, como deviceId y enqueuedTime. Para obtener más información sobre las propiedades del mensaje del sistema, consulte Propiedades del sistema de los mensajes de IoT Hub D2C.
Puede agregar propiedades a los mensajes de telemetría si necesita agregar metadatos personalizados a los mensajes de telemetría. Por ejemplo, tiene que agregar una marca de tiempo cuando el dispositivo crea el mensaje.
En el fragmento de código siguiente se muestra cómo agregar la propiedad iothub-creation-time-utc al mensaje cuando se crea en el dispositivo:
Importante
El formato de esta marca de tiempo debe ser UTC sin información de zona horaria. Por ejemplo, 2021-04-21T11:30:16Z es válido y 2021-04-21T11:30:16-07:00 no lo es.
async function sendTelemetry(deviceClient, index) {
console.log('Sending telemetry message %d...', index);
const msg = new Message(
JSON.stringify(
deviceTemperatureSensor.updateSensor().getCurrentTemperatureObject()
)
);
msg.properties.add("iothub-creation-time-utc", new Date().toISOString());
msg.contentType = 'application/json';
msg.contentEncoding = 'utf-8';
await deviceClient.sendEvent(msg);
}
En el fragmento de código siguiente se muestra esta propiedad en el mensaje exportado a Blob Storage:
{
"applicationId":"5782ed70-b703-4f13-bda3-1f5f0f5c678e",
"messageSource":"telemetry",
"deviceId":"sample-device-01",
"schema":"default@v1",
"templateId":"urn:modelDefinition:mkuyqxzgea:e14m1ukpn",
"enqueuedTime":"2021-01-29T16:45:39.143Z",
"telemetry":{
"temperature":8.341033560421833
},
"messageProperties":{
"iothub-creation-time-utc":"2021-01-29T16:45:39.021Z"
},
"enrichments":{}
}
Formato de cambios de propiedades
Cada mensaje o registro representa los cambios en las propiedades del dispositivo y de la nube. La información del mensaje exportado incluye:
applicationId: el identificador de la aplicación IoT Central.messageSource: el origen del mensaje (properties).messageType:cloudPropertyChange,devicePropertyDesiredChangeodevicePropertyReportedChange.deviceId: el identificador del dispositivo que envió el mensaje de telemetría.schema: el nombre y la versión del esquema de carga.enqueuedTime: la hora a la que IoT Central detectó este cambio.templateId: el identificador de la plantilla de dispositivo asociada al dispositivo.properties: una matriz de propiedades que han cambiado que incluye los nombres de las propiedades y los valores que han cambiado. La información del componente y del módulo se incluye si la propiedad se modela dentro de un componente o un módulo de IoT Edge.enrichments: cualquier enriquecimiento configurado en la exportación.
En Event Hubs y Service Bus, IoT Central exporta los nuevos datos de los mensajes al centro de eventos o a la cola o el tema de Service Bus casi en tiempo real. En las propiedades de usuario (también conocidas como propiedades de la aplicación) de cada mensaje, iotcentral-device-id, iotcentral-application-id, iotcentral-message-source e iotcentral-message-type se incluyen automáticamente.
Para Blob Storage, los mensajes se procesan por lotes y se exportan una vez por minuto.
En el ejemplo siguiente, se muestra un mensaje de cambio de propiedad exportado recibido en Azure Blob Storage.
{
"applicationId": "1dffa667-9bee-4f16-b243-25ad4151475e",
"messageSource": "properties",
"messageType": "cloudPropertyChange",
"deviceId": "18a985g1fta",
"schema": "default@v1",
"templateId": "urn:qugj6vbw5:___qbj_27r",
"enqueuedTime": "2020-08-05T22:37:32.942Z",
"properties": [{
"name": "MachineSerialNumber",
"value": "abc",
"module": "VitalsModule",
"component": "DeviceComponent"
}],
"enrichments": {
"userSpecifiedKey" : "sampleValue"
}
}
Formato de los cambios de conectividad de dispositivos
Cada mensaje o registro representa un evento de conectividad de un único dispositivo. La información del mensaje exportado incluye:
applicationId: el identificador de la aplicación IoT Central.messageSource: el origen del mensaje (deviceConnectivity).messageType:connectedodisconnected.deviceId: el id. del dispositivo que se ha cambiado.schema: el nombre y la versión del esquema de carga.templateId: el identificador de la plantilla de dispositivo asociada al dispositivo.enqueuedTime: la hora a la que se produjo este cambio en IoT Central.enrichments: cualquier enriquecimiento configurado en la exportación.
En Event Hubs y Service Bus, IoT Central exporta los nuevos datos de los mensajes al centro de eventos o a la cola o el tema de Service Bus casi en tiempo real. En las propiedades de usuario (también conocidas como propiedades de la aplicación) de cada mensaje, iotcentral-device-id, iotcentral-application-id, iotcentral-message-source e iotcentral-message-type se incluyen automáticamente.
Para Blob Storage, los mensajes se procesan por lotes y se exportan una vez por minuto.
En el ejemplo siguiente, se muestra un mensaje sobre la conectividad del dispositivo exportado que se ha recibido en Azure Blob Storage.
{
"applicationId": "1dffa667-9bee-4f16-b243-25ad4151475e",
"messageSource": "deviceConnectivity",
"messageType": "connected",
"deviceId": "1vzb5ghlsg1",
"schema": "default@v1",
"templateId": "urn:qugj6vbw5:___qbj_27r",
"enqueuedTime": "2021-04-05T22:26:55.455Z",
"enrichments": {
"userSpecifiedKey": "sampleValue"
}
}
Formato de los cambios de ciclo de vida de dispositivo
Cada mensaje o registro representa un cambio en un único dispositivo. La información del mensaje exportado incluye:
applicationId: el identificador de la aplicación IoT Central.messageSource: el origen del mensaje (deviceLifecycle).messageType: tipo de error que se produjo. Uno de los siguientes:registered,deleted,provisioned,enabled,disabled,displayNameChangedydeviceTemplateChanged.deviceId: el id. del dispositivo que se ha cambiado.schema: el nombre y la versión del esquema de carga.templateId: el identificador de la plantilla de dispositivo asociada al dispositivo.enqueuedTime: la hora a la que se produjo este cambio en IoT Central.enrichments: cualquier enriquecimiento configurado en la exportación.
En Event Hubs y Service Bus, IoT Central exporta los nuevos datos de los mensajes al centro de eventos o a la cola o el tema de Service Bus casi en tiempo real. En las propiedades de usuario (también conocidas como propiedades de la aplicación) de cada mensaje, iotcentral-device-id, iotcentral-application-id, iotcentral-message-source e iotcentral-message-type se incluyen automáticamente.
Para Blob Storage, los mensajes se procesan por lotes y se exportan una vez por minuto.
En el ejemplo siguiente, se muestra un mensaje del ciclo de vida de dispositivo exportado que se ha recibido en Azure Blob Storage.
{
"applicationId": "1dffa667-9bee-4f16-b243-25ad4151475e",
"messageSource": "deviceLifecycle",
"messageType": "registered",
"deviceId": "1vzb5ghlsg1",
"schema": "default@v1",
"templateId": "urn:qugj6vbw5:___qbj_27r",
"enqueuedTime": "2021-01-01T22:26:55.455Z",
"enrichments": {
"userSpecifiedKey": "sampleValue"
}
}
Formato de los cambios del ciclo de vida de plantilla de dispositivo
Cada mensaje o registro representa un cambio en una única plantilla de dispositivo publicada. La información del mensaje exportado incluye:
applicationId: el identificador de la aplicación IoT Central.messageSource: el origen del mensaje (deviceTemplateLifecycle).messageType:created,updatedodeleted.schema: el nombre y la versión del esquema de carga.templateId: el identificador de la plantilla de dispositivo asociada al dispositivo.enqueuedTime: la hora a la que se produjo este cambio en IoT Central.enrichments: cualquier enriquecimiento configurado en la exportación.
En Event Hubs y Service Bus, IoT Central exporta los nuevos datos de los mensajes al centro de eventos o a la cola o el tema de Service Bus casi en tiempo real. En las propiedades de usuario (también conocidas como propiedades de la aplicación) de cada mensaje, iotcentral-device-id, iotcentral-application-id, iotcentral-message-source e iotcentral-message-type se incluyen automáticamente.
Para Blob Storage, los mensajes se procesan por lotes y se exportan una vez por minuto.
En el ejemplo siguiente, se muestra un mensaje del ciclo de vida de dispositivo exportado que se ha recibido en Azure Blob Storage.
{
"applicationId": "1dffa667-9bee-4f16-b243-25ad4151475e",
"messageSource": "deviceTemplateLifecycle",
"messageType": "created",
"schema": "default@v1",
"templateId": "urn:qugj6vbw5:___qbj_27r",
"enqueuedTime": "2021-01-01T22:26:55.455Z",
"enrichments": {
"userSpecifiedKey": "sampleValue"
}
}
Comparación entre la exportación de datos heredada y la exportación de datos
En la siguiente tabla se observan las diferencias entre la exportación de datos heredada y las características de la exportación de datos:
| Capacidades | Exportación de datos heredada | Exportación de datos nueva |
|---|---|---|
| Tipos de datos disponibles | Telemetría, dispositivos y plantillas de dispositivo | Telemetría, cambios de propiedades, cambios de conectividad del dispositivo, cambios de ciclo de vida de dispositivo, cambios de ciclo de vida de plantilla de dispositivo |
| Filtrado | None | Depende del tipo de datos exportado. Para datos de telemetría, filtrado por telemetría, propiedades de mensaje, valores de propiedad |
| Características enriquecidas | None | Enriquecer con una cadena personalizada o un valor de propiedad en el dispositivo |
| Destinations | Azure Event Hubs, colas y temas de Azure Service Bus, Azure Blob Storage | Igual que para los webhooks y la exportación de datos heredada |
| Versiones de aplicación admitidas | V2, V3 | Solo v3 |
| Límites destacados | Cinco exportaciones por aplicación, un destino por exportación | 10 conexiones de exportaciones y destinos por aplicación |
Pasos siguientes
Ahora que sabe cómo configurar la exportación de datos, el paso siguiente sugerido es la Transformación de datos dentro de la aplicación de IoT Central para su exportación.