共用方式為


從資料處理器管線將資料傳送至 Microsoft Fabric

重要

已啟用 Azure Arc 的 Azure IoT 操作預覽版目前為預覽狀態。 請勿在生產環境使用此預覽版軟體。

請參閱 Microsoft Azure 預覽版增補使用規定,以了解適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的法律條款。

使用 Fabric Lakehouse 目的地,從 Azure IoT Data Processor Preview 管線將數據寫入 Microsoft Fabric 中的 lakehouse。 目的地階段會將 parquet 檔案寫入 Lakehouse,讓您檢視差異資料表中的資料。 目的地階段會在訊息傳送至 Microsoft Fabric 之前批次處理訊息。

必要條件

若要設定及使用 Microsoft Fabric 目的地管線階段,您需要:

設定 Microsoft Fabric

您必須先從管線授與 lakehouse 的存取權,才能從數據管線寫入至 Microsoft Fabric。 您可以使用服務主體或受控識別來驗證管線。 使用受控識別的優點是,您不需要管理服務主體的生命週期。 受控識別會自動由 Azure 管理,並系結至其指派的資源生命週期。

在您設定 Lakehouse 的服務主體或受控識別存取之前,請先啟用 服務主體驗證

若要使用用戶端祕密來建立服務主體:

  1. 使用下列 Azure CLI 命令建立服務主體。

    az ad sp create-for-rbac --name <YOUR_SP_NAME> 
    
  2. 此命令的輸出包含 appIddisplayNamepasswordtenant。 請記下這些值,以利用於設定 Microsoft Fabric 等雲端資源的存取權限、建立祕密,以及設定管線目的地:

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

若要將服務主體新增至 Microsoft Fabric 工作區:

  1. 記下工作區識別碼和 Lakehouse 識別碼。 您可以在用來存取 Lakehouse 的 URL 中找到這些值:

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

  2. 在您的工作區中,選取 [管理存取權]

    顯示如何尋找 [管理存取權] 鏈接的螢幕快照。

  3. 選取 [新增人員或群組]

    顯示如何新增用戶的螢幕快照。

  4. 依名稱搜尋您的服務主體。 開始輸入以查看相符的服務主體清單。 選取您稍早建立的服務主體:

    顯示如何新增服務主體的螢幕快照。

  5. 授與服務主體管理員對工作區的存取權。

建立祕密

若要讓目的地階段連線到 Microsoft Fabric,它需要存取包含驗證詳細資料的秘密。 若要建立祕密:

  1. 請使用下列命令,將祕密新增至 Azure Key Vault,且其中須包含您在建立服務主體時記下的用戶端密碼:

    az keyvault secret set --vault-name <your-key-vault-name> --name AccessFabricSecret --value <client-secret>
    
  2. 遵循管理 Azure IoT Operations Preview 部署秘密中的步驟,將秘密參考新增至 Kubernetes 叢集。

設定目的地階段

Fabric Lakehouse 目的地階段 JSON 組態會定義階段的詳細資料。 若要編寫階段,可透過與表單架構使用者介面互動,或在 [進階] 索引標籤上提供 JSON 設定:

欄位 類型 描述 是必要欄位 預設 範例
Display name String 用於顯示在資料處理器使用者介面中的名稱。 Yes - Azure IoT MQ output
描述 String 使用者易記的階段功能描述。 No Write to topic default/topic1
WorkspaceId String Lakehouse 工作區識別碼。 Yes -
LakehouseId String lakehouse Lakehouse 識別碼。 Yes -
Table String 要寫入之資料表的名稱。 Yes -
檔案路徑1 範本 要寫入 parquet 檔案的檔案路徑。 No {{{instanceId}}}/{{{pipelineId}}}/{{{partitionId}}}/{{{YYYY}}}/{{{MM}}}/{{{DD}}}/{{{HH}}}/{{{mm}}}/{{{fileNumber}}}
批次2 Batch 如何批次處理資料。 No 60s 10s
驗證4 String 連線至 Azure 資料總管的驗證詳細資訊。 Service principalManaged identity 服務主體 Yes -
重試 重試 要使用的重試原則。 No default fixed
資料行 > 名稱 string 資料行名稱。 Yes temperature
數據行 > 類型3 字串列舉 資料行中保留的資料類型,使用其中一個 Delta 基本類型 Yes integer
資料行 > 路徑 路徑 從每筆記錄中讀取資料列值的資料位置。 No .{{name}} .temperature

1檔案路徑:若要將檔案寫入至 Microsoft Fabric,您需要檔案路徑。 您可以使用範本來設定檔案路徑。 檔案路徑必須依任何順序包含下列元件:

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

檔案名稱是遞增整數值,如 fileNumber 表示。 如果您想要讓系統辨識檔案類型,請務必包含副檔名。

2批處理:當您將數據寫入至 Microsoft Fabric 時,必須進行批處理。 目的地階段會透過可設定的時間間隔批次處理訊息。

如果您未設定批次處理間隔,階段會使用 60 秒做為預設值。

3類型:數據處理者會使用差異格式寫入至 Microsoft Fabric。 資料處理器支援 decimaltimestamp without time zone 以外的所有差異基本資料類型

為了確保所有日期和時間在 Microsoft Fabric 中正確表示,請確保屬性的值是有效的 RFC 3339 字串,並且資料類型是 datetimestamp

1驗證:目前,目的地階段在聯機到 Microsoft Fabric 時,支援服務主體型驗證或受控識別。

服務主體型驗證

若要設定服務主體型驗證,請提供下列值。 先前建立服務主體時並新增叢集的祕密參考時,您已記下這些值。

欄位 描述 必要
TenantId 租用戶識別碼。 Yes
ClientId 先前建立具有資料庫存取權的服務主體時,已記下的應用程式識別碼。 Yes
祕密 您在叢集中建立的祕密參考。 Yes

範例設定

下列 JSON 範例顯示完整的 Microsoft Fabric Lakehouse 目的地階段設定,會將整個訊息寫入資料庫中的資料表 quickstart

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

設定會定義以下項目:

  • 每隔 5 秒批次處理訊息。
  • 使用批次路徑 .payload 尋找資料行的資料。

範例

下列範例顯示 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"
}