從資料處理器管線將資料傳送至 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 訂用帳戶。 或者,註冊免費的 Microsoft Fabric 試用版容量。
- Microsoft Fabric 中的 Lakehouse。
設定 Microsoft Fabric
您必須先從管線授與 lakehouse 的存取權,才能從數據管線寫入至 Microsoft Fabric。 您可以使用服務主體或受控識別來驗證管線。 使用受控識別的優點是,您不需要管理服務主體的生命週期。 受控識別會自動由 Azure 管理,並系結至其指派的資源生命週期。
在您設定 Lakehouse 的服務主體或受控識別存取之前,請先啟用 服務主體驗證。
若要使用用戶端祕密來建立服務主體:
使用下列 Azure CLI 命令建立服務主體。
az ad sp create-for-rbac --name <YOUR_SP_NAME>
此命令的輸出包含
appId
、displayName
、password
及tenant
。 請記下這些值,以利用於設定 Microsoft Fabric 等雲端資源的存取權限、建立祕密,以及設定管線目的地:{ "appId": "<app-id>", "displayName": "<name>", "password": "<client-secret>", "tenant": "<tenant-id>" }
若要將服務主體新增至 Microsoft Fabric 工作區:
記下工作區識別碼和 Lakehouse 識別碼。 您可以在用來存取 Lakehouse 的 URL 中找到這些值:
https://msit.powerbi.com/groups/<your workspace ID>/lakehouses/<your lakehouse ID>?experience=data-engineering
在您的工作區中,選取 [管理存取權]:
選取 [新增人員或群組]:
依名稱搜尋您的服務主體。 開始輸入以查看相符的服務主體清單。 選取您稍早建立的服務主體:
授與服務主體管理員對工作區的存取權。
建立祕密
若要讓目的地階段連線到 Microsoft Fabric,它需要存取包含驗證詳細資料的秘密。 若要建立祕密:
請使用下列命令,將祕密新增至 Azure Key Vault,且其中須包含您在建立服務主體時記下的用戶端密碼:
az keyvault secret set --vault-name <your-key-vault-name> --name AccessFabricSecret --value <client-secret>
遵循管理 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 principal 或 Managed 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。 資料處理器支援 decimal
和 timestamp without time zone
以外的所有差異基本資料類型。
為了確保所有日期和時間在 Microsoft Fabric 中正確表示,請確保屬性的值是有效的 RFC 3339 字串,並且資料類型是 date
或 timestamp
。
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"
}
相關內容
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應