共用方式為


在 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
驗證 連線至訊息代理程式的驗證方法。 為 NoneUsername/PasswordService 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 格式,即不會轉換傳入資料。 若要在管線中使用多種資料處理器功能,例如 FilterEnrich 階段,則必須在輸入階段還原序列化資料。 您可以選擇將傳入資料從 JSONjsonStreamMessagePackCBORCSVProtobuf 格式還原序列化為資料處理器可讀取的訊息,以使用完整的資料處理器功能。

下表描述不同的還原序列化設定選項:

欄位 描述 是必要欄位 預設
資料格式 資料格式的類型。 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、、 FloatIntegerBooleanBytes 預設: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
}