Envío de datos a Microsoft Fabric desde una canalización de procesador de datos
Importante
Operaciones de IoT de Azure, habilitado por Azure Arc, está actualmente en VERSIÓN PRELIMINAR. No se debería usar este software en versión preliminar en entornos de producción.
Consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure para conocer los términos legales que se aplican a las características de Azure que se encuentran en la versión beta, en versión preliminar o que todavía no se han publicado para que estén disponibles con carácter general.
Use el destino deFabric Lakehouse para escribir datos en un almacén de lago en Microsoft Fabric desde una canalización del procesador de datos de Azure IoT (versión preliminar). La fase de destino escribe archivos parquet en una instancia de lakehouse que le permite ver los datos en tablas delta. La fase de destino procesa los mensajes por lotes antes de enviarlos a Microsoft Fabric.
Requisitos previos
Para configurar y usar una fase de canalización de destino de Microsoft Fabric, necesita:
- Instancia implementada del procesador de datos.
- Una suscripción de Microsoft Fabric. O regístrese para obtener una prueba de Microsoft Fabric (versión preliminar) gratuita.
- Lakehouse en Microsoft Fabric.
Configurar Microsoft Fabric
Para poder escribir en Microsoft Fabric desde una canalización de datos, debe conceder acceso a lakehouse desde la canalización. Puede usar una entidad de servicio o una identidad administrada para autenticar la canalización. La ventaja de usar una identidad administrada es que no es necesario administrar el ciclo de vida de la entidad de servicio. Azure administra automáticamente la identidad administrada, que se asocia al ciclo de vida del recurso al que está asignada.
Antes de configurar la entidad de servicio o el acceso de identidad administrada a una instancia de LakeHouse, habilite la autenticación de la entidad de servicio.
Para crear una entidad de servicio con un secreto de cliente:
Use el siguiente comando de la CLI de Azure para crear una entidad de servicio.
az ad sp create-for-rbac --name <YOUR_SP_NAME>
La salida de este comando incluye un
appId
,displayName
,password
, ytenant
. Anote estos valores para usarlos al configurar el acceso al recurso en la nube, como Microsoft Fabric, crear un secreto y configurar un destino de canalización:{ "appId": "<app-id>", "displayName": "<name>", "password": "<client-secret>", "tenant": "<tenant-id>" }
Para agregar la entidad de servicio al área de trabajo de Microsoft Fabric:
Anote el identificador del área de trabajo y el identificador de lakehouse. Puede encontrar estos valores en la dirección URL que usa para acceder a lakehouse:
https://msit.powerbi.com/groups/<your workspace ID>/lakehouses/<your lakehouse ID>?experience=data-engineering
En el área de trabajo, seleccione Administrar acceso:
Seleccione Agregar personas o grupos:
Busque la entidad de servicio por nombre. Empiece a escribir para ver una lista de entidades de servicio coincidentes. Seleccione la entidad de servicio que creó anteriormente:
Conceda al administrador de la entidad de servicio acceso al área de trabajo.
Configuración del secreto
Para que la fase de destino se conecte a Microsoft Fabric, necesita acceso a un secreto que contenga los detalles de autenticación. Para crear un secreto:
Use el comando siguiente para agregar un secreto a Azure Key Vault que contiene el secreto de cliente que anotó al crear la entidad de servicio:
az keyvault secret set --vault-name <your-key-vault-name> --name AccessFabricSecret --value <client-secret>
Agregue la referencia secreta al clúster de Kubernetes siguiendo los pasos descritos en Administración de secretos para la implementación de Operaciones de IoT de Azure (versión preliminar).
Configuración del conmutador de destino
La configuración JSON de la fase de destino de Fabric Lakehouse define sus detalles. Para crear la fase, puede interactuar con la interfaz de usuario basada en formularios o proporcionar la configuración JSON en la pestaña Opciones avanzadas :
Campo | Tipo | Descripción | Necesario | Valor predeterminado | Ejemplo |
---|---|---|---|---|---|
Nombre para mostrar | String | Un nombre para mostrar en la interfaz de usuario del procesador de datos. | Sí | - | Azure IoT MQ output |
Descripción | String | Una descripción sencilla de lo que hace la fase. | No | Write to topic default/topic1 |
|
WorkspaceId | String | Identificador del área de trabajo de Lakehouse. | Sí | - | |
LakehouseId | String | El identificador de Lakehouse. | Sí | - | |
Tabla | String | Nombre de la tabla en la que se va a escribir. | Sí | - | |
Ruta de accesodel archivo 1 | Plantilla | Ruta de acceso del archivo en la que se va a escribir el archivo parquet. | No | {{{instanceId}}}/{{{pipelineId}}}/{{{partitionId}}}/{{{YYYY}}}/{{{MM}}}/{{{DD}}}/{{{HH}}}/{{{mm}}}/{{{fileNumber}}} |
|
Lote2 | Batch | Cómo procesar datos porlotes. | No | 60s |
10s |
Autenticación4 | Cadena | Detalles de autenticación para conectarse a Azure Data Explorer. Service principal o Managed identity |
Entidad de servicio | Sí | - |
Volver a intentar | Reintentar | Directiva de reintento que se va a usar. | No | default |
fixed |
Nombre de columnas > | cadena | El nombre de la columna. | Sí | temperature |
|
Columnas > Tipo3 | string enum | Tipo de datos contenidos en la columna, utilizando uno de los tipos primitivosdelta. | Sí | integer |
|
Ruta de acceso de columnas > | Path | Ubicación dentro de cada registro de los datos desde donde se va a leer el valor de la columna. | No | .{{name}} |
.temperature |
1Ruta del archivo: para escribir archivos en Microsoft Fabric, necesita una ruta de archivo. Puede usar plantillas para configurar rutas de acceso de archivo. Las rutas de acceso de archivo deben contener los siguientes componentes en cualquier orden:
instanceId
pipelineId
partitionId
YYYY
MM
DD
HH
mm
fileNumber
Los nombres de los archivos son valores enteros incrementales, como se indica en fileNumber
. Asegúrese de incluir una extensión de archivo si desea que el sistema reconozca el tipo de archivo.
2Procesamiento por lotes: el procesamiento por lotes es obligatorio al escribir datos en Microsoft Fabric. La fase de destino agrupa los mensajes en lotes durante un intervalo de tiempo configurable.
Si no configura un intervalo de procesamiento por lotes, la fase usa 60 segundos como valor predeterminado.
3Tipo: el procesador de datos escribe en Microsoft Fabric mediante el formato delta. El procesador de datos admite todos los tipos de datos primitivos delta, excepto para decimal
y timestamp without time zone
.
Para asegurarse de que todas las fechas y horas se representan correctamente en Microsoft Fabric, asegúrese de que el valor de la propiedad es una cadena RFC 3339 válida y de que el tipo de datos sea date
o timestamp
.
1Autenticación: actualmente, la fase de destino admite la autenticación basada en la entidad de servicio o la identidad administrada cuando se conecta a Microsoft Fabric.
Autenticación basada en la entidad de servicio
Para configurar la autenticación basada en la entidad de servicio, proporcione los valores siguientes. Ha anotado estos valores al crear la entidad de servicio y agregar la referencia secreta a su clúster.
Campo | Descripción | Obligatorio |
---|---|---|
TenantId | Id. del inquilino. | Sí |
ClientId | El identificador de aplicación que anotó al crear la entidad de servicio que tiene acceso a la base de datos. | Sí |
Secreto | Referencia secreta que ha creado en el clúster. | Sí |
Configuración de ejemplo
En el ejemplo JSON siguiente se muestra una configuración completa de la fase de destino de Microsoft Fabric Lakehouse que escribe todo el mensaje en la quickstart
tabla de la base de datos':
{
"displayName": "Fabric Lakehouse - 520f54",
"type": "output/fabric@v1",
"viewOptions": {
"position": {
"x": 0,
"y": 784
}
},
"workspace": "workspaceId",
"lakehouse": "lakehouseId",
"table": "quickstart",
"columns": [
{
"name": "Timestamp",
"type": "timestamp",
"path": ".Timestamp"
},
{
"name": "AssetName",
"type": "string",
"path": ".assetname"
},
{
"name": "Customer",
"type": "string",
"path": ".Customer"
},
{
"name": "Batch",
"type": "integer",
"path": ".Batch"
},
{
"name": "CurrentTemperature",
"type": "float",
"path": ".CurrentTemperature"
},
{
"name": "LastKnownTemperature",
"type": "float",
"path": ".LastKnownTemperature"
},
{
"name": "Pressure",
"type": "float",
"path": ".Pressure"
},
{
"name": "IsSpare",
"type": "boolean",
"path": ".IsSpare"
}
],
"authentication": {
"type": "servicePrincipal",
"tenantId": "tenantId",
"clientId": "clientId",
"clientSecret": "secretReference"
},
"batch": {
"time": "5s",
"path": ".payload"
},
"retry": {
"type": "fixed",
"interval": "20s",
"maxRetries": 4
}
}
La configuración define que:
- Los mensajes se procesan por lotes durante 5 segundos.
- Usa la ruta de acceso
.payload
del lote para buscar los datos de las columnas.
Ejemplo
En el ejemplo siguiente se muestra un mensaje de entrada de ejemplo a la fase de destino de LakeHouse de Microsoft Fabric:
{
"payload": {
"Batch": 102,
"CurrentTemperature": 7109,
"Customer": "Contoso",
"Equipment": "Boiler",
"IsSpare": true,
"LastKnownTemperature": 7109,
"Location": "Seattle",
"Pressure": 7109,
"Timestamp": "2023-08-10T00:54:58.6572007Z",
"assetName": "oven"
},
"qos": 0,
"systemProperties": {
"partitionId": 0,
"partitionKey": "quickstart",
"timestamp": "2023-11-06T23:42:51.004Z"
},
"topic": "quickstart"
}