Partilhar via


Enviar dados para o Microsoft Fabric a partir de um pipeline de processador de dados

Importante

Azure IoT Operations Preview – habilitado pelo Azure Arc está atualmente em visualização. Não deve utilizar este software de pré-visualização em ambientes de produção.

Você precisará implantar uma nova instalação do Azure IoT Operations quando uma versão disponível em geral for disponibilizada, você não poderá atualizar uma instalação de visualização.

Veja Termos de Utilização Complementares da Pré-visualizações do Microsoft Azure para obter os termos legais que se aplicam às funcionalidades do Azure que estão na versão beta, na pré-visualização ou que ainda não foram lançadas para disponibilidade geral.

Use o destino Fabric Lakehouse para gravar dados em uma lakehouse no Microsoft Fabric a partir de um pipeline de processador de dados. O estágio de destino grava arquivos de parquet em uma casa de lago que permite visualizar os dados em tabelas delta. O estágio de destino envia mensagens em lote antes de enviá-las para o Microsoft Fabric.

Pré-requisitos

Para configurar e usar um estágio de pipeline de destino do Microsoft Fabric, você precisa:

Configurar o Microsoft Fabric

Antes de gravar no Microsoft Fabric a partir de um pipeline de dados, você precisa conceder acesso ao lakehouse a partir do pipeline. Você pode usar uma entidade de serviço ou uma identidade gerenciada para autenticar o pipeline. A vantagem de usar uma identidade gerenciada é que você não precisa gerenciar o ciclo de vida da entidade de serviço. A identidade gerenciada é gerenciada automaticamente pelo Azure e está vinculada ao ciclo de vida do recurso ao qual está atribuída.

Antes de configurar a entidade de serviço ou o acesso de identidade gerenciada a um lakehouse, habilite a autenticação da entidade de serviço.

Para criar uma entidade de serviço com um segredo do cliente:

  1. Use o seguinte comando da CLI do Azure para criar uma entidade de serviço.

    az ad sp create-for-rbac --name <YOUR_SP_NAME> 
    
  2. A saída deste comando inclui um appId, displayName, passworde tenant. Anote esses valores para usar ao configurar o acesso ao seu recurso de nuvem, como o Microsoft Fabric, criar um segredo e configurar um destino de pipeline:

    {
        "appId": "<app-id>",
        "displayName": "<name>",
        "password": "<client-secret>",
        "tenant": "<tenant-id>"
    }
    

Para adicionar a entidade de serviço ao seu espaço de trabalho do Microsoft Fabric:

  1. Anote o ID do seu espaço de trabalho e o ID do lakehouse. Você pode encontrar esses valores no URL que você usa para acessar sua casa do lago:

    https://msit.powerbi.com/groups/<your workspace ID>/lakehouses/<your lakehouse ID>?experience=data-engineering

  2. No espaço de trabalho, selecione Gerenciar acesso:

    Captura de tela que mostra como encontrar o link Gerenciar acesso.

  3. Selecione Adicionar pessoas ou grupos:

    Captura de ecrã que mostra como adicionar um utilizador.

  4. Pesquise a entidade de serviço pelo nome. Comece a digitar para ver uma lista de entidades de serviço correspondentes. Selecione a entidade de serviço criada anteriormente:

    Captura de tela que mostra como adicionar uma entidade de serviço.

  5. Conceda ao administrador da entidade de serviço acesso ao espaço de trabalho.

Configure o seu segredo

Para que o estágio de destino se conecte ao Microsoft Fabric, ele precisa acessar um segredo que contenha os detalhes de autenticação. Para criar um segredo:

  1. Use o seguinte comando para adicionar um segredo ao seu Cofre de Chaves do Azure que contenha o segredo do cliente do qual você anotou quando criou a entidade de serviço:

    az keyvault secret set --vault-name <your-key-vault-name> --name AccessFabricSecret --value <client-secret>
    
  2. Adicione a referência secreta ao seu cluster Kubernetes seguindo as etapas em Gerenciar segredos para sua implantação do Azure IoT Operations Preview.

Configurar o estágio de destino

A configuração JSON do estágio de destino do Fabric Lakehouse define os detalhes do estágio. Para criar o palco, você pode interagir com a interface do usuário baseada em formulário ou fornecer a configuração JSON na guia Avançado :

Campo Tipo Descrição Necessário Predefinição Exemplo
Nome a apresentar String Um nome a ser exibido na interface do usuário do processador de dados. Sim - MQTT broker output
Description String Uma descrição amigável do que o palco faz. Não Write to topic default/topic1
WorkspaceId String O ID do espaço de trabalho lakehouse. Sim -
LakehouseId String O Lakehouse Lakehouse ID. Sim -
Tabela String O nome da tabela para gravar. Sim -
Caminho do arquivo1 Modelo O caminho do arquivo para onde gravar o arquivo parquet. Não {{{instanceId}}}/{{{pipelineId}}}/{{{partitionId}}}/{{{YYYY}}}/{{{MM}}}/{{{DD}}}/{{{HH}}}/{{{mm}}}/{{{fileNumber}}}
Lote2 Batch Como processar dados em lote . Não 60s 10s
Autenticação4 String Os detalhes de autenticação para se conectar ao Azure Data Explorer. Service principal ou Managed identity Service principal (Principal de serviço) Sim -
Tentar novamente Repetir A política de repetição a ser usada. Não default fixed
Nome das colunas > string O nome da coluna. Sim temperature
Colunas > Tipo3 enum de corda O tipo de dados mantidos na coluna, usando um dos tipos primitivos Delta. Sim integer
Caminho das colunas > Caminho O local dentro de cada registro dos dados de onde ler o valor da coluna. Não .{{name}} .temperature

1 Caminho do arquivo: para gravar arquivos no Microsoft Fabric, você precisa de um caminho de arquivo. Você pode usar modelos para configurar caminhos de arquivo. Os caminhos de arquivo devem conter os seguintes componentes em qualquer ordem:

  • instanceId
  • pipelineId
  • partitionId
  • YYYY
  • MM
  • DD
  • HH
  • mm
  • fileNumber

Os nomes dos arquivos são valores inteiros incrementais, conforme indicado pelo fileNumber. Certifique-se de incluir uma extensão de arquivo se você quiser que seu sistema reconheça o tipo de arquivo.

2 Lotes: o envio em lote é obrigatório quando você grava dados no Microsoft Fabric. O estágio de destino armazena mensagens em lote em um intervalo de tempo configurável.

Se você não configurar um intervalo de lote, o estágio usará 60 segundos como padrão.

3 Tipo: O processador de dados grava no Microsoft Fabric usando o formato delta. O processador de dados suporta todos os tipos de dados primitivos delta, exceto para decimal e timestamp without time zone.

Para garantir que todas as datas e horas sejam representadas corretamente no Microsoft Fabric, verifique se o valor da propriedade é uma cadeia de caracteres RFC 3339 válida e se o tipo de dados é ou date timestamp.

1 Autenticação: atualmente, o estágio de destino oferece suporte à autenticação baseada na entidade de serviço ou à identidade gerenciada quando se conecta ao Microsoft Fabric.

Autenticação baseada na entidade de serviço

Para configurar a autenticação baseada na entidade de serviço, forneça os seguintes valores. Você anotou esses valores quando criou a entidade de serviço e adicionou a referência secreta ao cluster.

Campo Descrição Obrigatório
TenantId O ID do locatário. Sim
ClientId O ID do aplicativo que você anotou quando criou a entidade de serviço que tem acesso ao banco de dados. Sim
Segredo A referência secreta que você criou no cluster. Sim

Configuração de exemplo

O exemplo JSON a seguir mostra uma configuração completa do quickstart estágio de destino do Microsoft Fabric lakehouse que grava a mensagem inteira na tabela do banco de dados':

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

A configuração define que:

  • As mensagens são enviadas em lote por 5 segundos.
  • Usa o caminho .payload do lote para localizar os dados das colunas.

Exemplo

O exemplo a seguir mostra uma mensagem de entrada de exemplo para o estágio de destino do Microsoft Fabric lakehouse:

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