在 Azure IoT 數據處理者預覽管線中設定 MQ 來源階段
重要
已啟用 Azure Arc 的 Azure IoT 操作預覽版目前為預覽狀態。 請勿在生產環境使用此預覽版軟體。
請參閱 Microsoft Azure 預覽版增補使用規定,以了解適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的法律條款。
來源階段是 Azure IoT 數據處理器預覽管線中的第一個必要階段。 來源階段會將資料導入資料處理管線,準備進一步處理。 您可透過 MQ 來源階段訂閱來自 MQTT 主題的訊息。 在此來源階段中,您將定義 MQ 來源的連線詳細資訊,並根據特定資料處理需求建立資料分割設定。
必要條件
- 已部署的 Azure IoT 數據處理者預覽實例,其中包含選擇性的數據處理者元件。
- 具備所有必要可用原始資料的 Azure IoT MQ 預覽版訊息代理程式可正常運作且可連線。
設定 MQ 來源
若要設定 MQ 來源:
- 提供 MQ 來源的連線詳細資料。 此組態須包含 MQ 來源的類型、MQTT 訊息代理程式 URL、服務品質 (QoS) 層級、工作階段類型,以及要訂閱的主題。
- 指定驗證方法。 目前僅限於使用者名稱/密碼式驗證或服務帳戶權杖。
下表描述 MQ 來源設定參數:
欄位 | 描述 | 是必要欄位 | 預設 | 範例 |
---|---|---|---|---|
名稱 | 客戶可見的來源階段名稱。 | 必要 | NA | asset-1broker |
描述 | 客戶可見的來源階段描述。 | 選擇性 | NA | brokerforasset-1 |
Broker | 要連線之 MQTT 訊息代理程式的 URL。 | 必要 | NA | tls://aio-mq-dmqtt-frontend:8883 |
驗證 | 連線至訊息代理程式的驗證方法。 為 None 、Username/Password 或 Service Account Token (SAT) 的其中之一。 |
必要 | Service Account Token (SAT) |
Service Account Token (SAT) |
使用者名稱/密碼 > 使用者名稱 | 用於使用者名稱/密碼驗證的使用者名稱 | Yes | NA | myuser |
使用者名稱/密碼 > 祕密 | Azure Key Vault 中儲存之密碼的參考。 | Yes | NA | AKV_USERNAME_PASSWORD |
QoS | 訊息傳遞的 QoS 層級。 | 必要 | 1 | 0 |
清除工作階段 | 將持續性工作階段設定為 FALSE 。 |
必要 | FALSE |
FALSE |
主題 | 要訂閱以擷取資料的主題。 | 必要 | NA | contoso/site1/asset1 , contoso/site1/asset2 |
若要深入瞭解秘密,請參閱 管理 Azure IoT Operations Preview 部署的秘密。
資料處理器不會重新排序來自 MQTT 代理的錯誤順序資料。 若來自訊息代理程式的資料順序錯亂,其將保留於管線中。
選取資料格式
在資料處理器管線中,來源階段的格式欄位負責指定如何還原序列化傳入資料。 根據預設,資料處理器管線會使用 raw
格式,即不會轉換傳入資料。 若要在管線中使用多種資料處理器功能,例如 Filter
或 Enrich
階段,則必須在輸入階段還原序列化資料。 您可以選擇將傳入資料從 JSON
、jsonStream
、MessagePack
、CBOR
、CSV
或 Protobuf
格式還原序列化為資料處理器可讀取的訊息,以使用完整的資料處理器功能。
下表描述不同的還原序列化設定選項:
欄位 | 描述 | 是必要欄位 | 預設 | 值 |
---|---|---|---|---|
資料格式 | 資料格式的類型。 | Yes | Raw |
Raw JSON jsonStream MessagePack CBOR CSV Protobuf |
Data Format
欄位為必要欄位,且其值將決定其他必要欄位。
若要還原序列化 CSV 訊息,您也必須指定下列欄位:
欄位 | 描述 | 必要 | 值 | 範例 |
---|---|---|---|---|
頁首 | CSV 資料是否包含標題行。 | Yes | Yes No |
No |
名稱 | CSV 中資料行的名稱 | Yes | - | temp , asset |
路徑 | 新增資料行資訊之訊息中的 jq 路徑。 | No | - | 預設的 jq 路徑為資料行名稱 |
資料類型 | 資料行中資料的資料類型,以及其在資料處理器管線中的表現方式。 | No | String 、、 Float 、 Integer 、 Boolean 、 Bytes |
預設:String |
若要還原序列化 Protobuf 訊息,您也必須指定下列欄位:
欄位 | 描述 | 必要 | 值 | 範例 |
---|---|---|---|---|
描述項 | Protobuf 定義的 base64 編碼描述項。 | Yes | - | Zhf... |
訊息 | 用於格式化資料之訊息類型的名稱。 | Yes | - | pipeline |
套件 | 描述項中定義類別之套件的名稱。 | Yes | - | schedulerv1 |
注意
資料處理器在每個 .proto 檔案中僅支援一種訊息類型。
設定資料分割
管線中的資料分割功能會將傳入資料分割為不同的分割區。 資料分割可在管線中啟用資料平行處理原則,協助提高輸送量並減少延遲。 資料分割策略將影響資料在管線其他階段中的處理方式。 例如,上一個已知的值與彙總階段會在每個邏輯分割區上執行。
若要分割資料,請指定資料分割策略及要使用的分割區數目:
欄位 | 描述 | 是必要欄位 | 預設 | 範例 |
---|---|---|---|---|
磁碟分割類型 | 要使用的資料分割類型:分割區 ID 或分割區 Key |
必要 | Key |
Key |
分割區運算式 | jq 運算式用於傳入訊息,以計算分割區 ID 或分割區 Key |
必要 | .topic |
.topic |
資料分割數目 | 資料處理器管線中的分割區數目。 | 必要 | 2 |
2 |
資料處理器會將其他中繼資料新增至傳入訊息。 請參閱資料處理器訊息結構概觀,瞭解如何正確指定在傳入訊息上執行的資料分割運算式。 根據預設,資料分割運算式會設定為 0
,[分割區類型] 則設定為 ID
,以將所有傳入資料傳送至單一分割區。
如需建議及更多資訊,請參閱什麼是資料分割?。
範例設定
下列顯示階段的範例設定:
參數 | 值 |
---|---|
名稱 | input data |
Broker | tls://aio-mq-dmqtt-frontend:8883 |
驗證 | Service Account Token (SAT) |
主題 | azure-iot-operations/data/opc-ua-connector-0/# |
資料格式 | JSON |
接下來,此設定會產生類似下列範例的訊息:
{
"Timestamp": "2023-08-10T00:54:58.6572007Z",
"MessageType": "ua-deltaframe",
"payload": {
"temperature": {
"SourceTimestamp": "2023-08-10T00:54:58.2543129Z",
"Value": 7109
},
"Tag 10": {
"SourceTimestamp": "2023-08-10T00:54:58.2543482Z",
"Value": 7109
}
},
"DataSetWriterName": "oven",
"SequenceNumber": 4660
}
相關內容
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應