Share via


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:

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:

  1. 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> 
    
  2. La salida de este comando incluye un appId, displayName, password, y tenant. 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:

  1. 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

  2. En el área de trabajo, seleccione Administrar acceso:

    Captura de pantalla que muestra cómo buscar el vínculo Administrar acceso.

  3. Seleccione Agregar personas o grupos:

    Captura de pantalla que muestra cómo agregar un usuario.

  4. 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:

    Captura de pantalla que muestra cómo agregar una entidad de servicio.

  5. 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:

  1. 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>
    
  2. 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. - 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. -
LakehouseId String El identificador de Lakehouse. -
Tabla String Nombre de la tabla en la que se va a escribir. -
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 -
Volver a intentar Reintentar Directiva de reintento que se va a usar. No default fixed
Nombre de columnas > cadena El nombre de la columna. temperature
Columnas > Tipo3 string enum Tipo de datos contenidos en la columna, utilizando uno de los tipos primitivosdelta. 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.
ClientId El identificador de aplicación que anotó al crear la entidad de servicio que tiene acceso a la base de datos.
Secreto Referencia secreta que ha creado en el clúster.

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"
}