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:
- Uma instância implantada do processador de dados.
- Uma assinatura do Microsoft Fabric. Ou inscreva-se para obter uma capacidade de avaliação gratuita do Microsoft Fabric.
- Uma casa de lago no Microsoft Fabric.
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:
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>
A saída deste comando inclui um
appId
,displayName
,password
etenant
. 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:
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
No espaço de trabalho, selecione Gerenciar acesso:
Selecione Adicionar pessoas ou grupos:
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:
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:
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>
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"
}