共用方式為


使用數據流擴充數據

重要

此頁面包含使用 Kubernetes 部署指令清單來管理 Azure IoT Operations 元件的指示,其處於預覽狀態。 這項功能隨附 數個限制,不應用於生產工作負載。

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

您可以使用內容化數據集函式來擴充數據。 處理傳入記錄時,您可以根據與傳入記錄欄位相關的條件來查詢這些資料集。 此功能允許動態互動。 來自這些數據集的數據可用來補充輸出欄位中的資訊,並在對應程式期間參與複雜的計算。

若要將範例數據載入狀態存放區,請使用 狀態存放區 CLI

例如,假設下列資料集有一些記錄,以 JSON 記錄表示:

{
  "Position": "Analyst",
  "BaseSalary": 70000,
  "WorkingHours": "Regular"
},
{
  "Position": "Receptionist",
  "BaseSalary": 43000,
  "WorkingHours": "Regular"
}

對應程式會根據對應組態中指定的條件,使用索引鍵值來存取儲存在 Azure IoT Operations 狀態存放區中的參考數據集。 狀態存放區中的索引鍵名稱會對應至數據流組態中的數據集。

datasets: [
  {
    key: 'position',
    inputs: [
      '$source.Position' //  - $1
      '$context.Position' // - $2
    ],
    expression: '$1 == $2'
  }
]

正在處理新記錄時,對應工具會執行下列步驟:

  • 數據要求: 對應程式會將要求傳送至狀態存放區,以擷取儲存在索引鍵 Position底下的數據集。
  • 記錄比對:對應程式接著會查詢此數據集,以尋找數據集中欄位符合Position傳入記錄欄位的第一Position筆記錄。
{
  inputs: [
    '$context(position).WorkingHours' //  - $1 
  ]
  output: 'WorkingHours'
}
{
  inputs: [
    'BaseSalary' // - - - - - - - - - - - - $1
    '$context(position).BaseSalary' //  - - $2
  ]
  output: 'BaseSalary'
  expression: 'if($1 == (), $2, $1)'
}

在此範例中, WorkingHours 欄位會新增至輸出記錄,而 BaseSalary 只有在傳入記錄不包含 BaseSalary 欄位時,才會有條件地使用 字段(如果它是可為 Null 的欄位,則為值 null )。 內容化資料的要求不會隨著每個傳入記錄發生。 對應程式會要求數據集,然後從狀態存放區收到有關變更的通知,同時會使用數據集的快取版本。

您可使用多個資料集:

datasets: [
  {
    key: 'position'
    inputs: [
      '$source.Position'  // - $1
      '$context.Position' // - $2
    ],
    expression: '$1 == $2'
  }
  {
    key: 'permissions'
    inputs: [
      '$source.Position'  // - $1
      '$context.Position' // - $2
    ],
    expression: '$1 == $2'
  }
]

然後使用混合的參考:

inputs: [
  '$context(position).WorkingHours'  // - $1
  '$context(permissions).NightShift' // - $2
]

輸入參考會使用 資料集的索引鍵,例如 positionpermission。 如果狀態存放區中的索引鍵不方便使用,您可以定義別名:

datasets: [
  {
    key: 'datasets.parag10.rule42 as position'
    inputs: [
      '$source.Position'  // - $1
      '$context.Position' // - $2
    ],
    expression: '$1 == $2'
  }
]

組態會將數據集重新命名為 position索引鍵datasets.parag10.rule42