全部產品
Search
文件中心

DataWorks:配置規則:按模板(批量)

更新時間:Aug 17, 2024

資料品質為您提供多種預設表層級、欄位層級的監控模板。本文為您介紹如何按模板配置監控規則。

使用限制

按模板配置目前支援配置MaxCompute、E-MapReduce、Hologres和AnalyticDB PostgreSQL資料來源的監控規則。

配置流程

按模板配置品質規則的主要流程如下:

  1. 選擇規則模板並配置校正方式

    內建模板分為表級和欄位級的模板規則,選擇模板後,以待校正的為對象,定義該表資料品質校正規則的校正方式。通過資料品質規則定義對該表資料的具體校正方式,從而確定表資料是否符合預期。

  2. 大量新增需要規則校正的表或欄位

    選擇待批量校正的表或欄位,將規則模板應用到目標表或欄位上。

  3. 建立或關聯品質監控

    以校正的表的具體資料範圍為對象(如分區表的具體分區),通過品質規則關聯品質監控的方式,定義對象資料需要進行哪些品質規則校正。

操作步驟

步驟一:進入按模板配置監控規則頁面

  1. 登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的資料建模與開發 > 資料品質,在下拉框中選擇對應工作空間後單擊進入資料品質

  2. 在左側導覽列選擇規則配置 > 按模板配置,進入按模板配置頁面。

    資料品質提供系統內建的表級規則模板和欄位規則模板,您可以單擊對應模板後的配置監控規則來批量對錶或欄位配置監控規則。

    image

步驟二:配置監控規則詳細屬性

  1. 選擇需要進行規則配置的模板,單擊操作列的配置監控規則,進入該模板的批量新增監控規則頁面。

  2. 配置監控規則的基本屬性。

    參數

    描述

    資料來源類型

    選擇後續需要應用此監控規則的表所屬的資料來源類型。

    說明

    按模板配置目前支援配置MaxCompute、E-MapReduce、Hologres和AnalyticDB PostgreSQL資料來源的監控規則。

    規則來源

    預設來源為內建模板

    規則模板

    此處展示配置選擇的規則模板名稱。詳情請參見查看內建規則模板

    規則名稱

    規則名稱系統會自動產生,您可以按需調整名稱尾碼。

    描述

    對配置的監控規則進行簡單描述。

  3. 配置監控規則的進階屬性。image

    參數

    描述

    重要程度

    設定規則在業務中的強弱程度。

    • 強規則:比較重要的規則,如果出現紅色異常,預設會阻塞品質監控關聯的調度任務的執行。

    • 弱規則:普通規則,如果出現紅色異常,預設不會阻塞品質監控關聯的調度任務的執行。

    比較方式

    定義規則具體怎麼校正表資料是否符合預期。

    • 手動設定:自訂資料產出結果與規則的比較方式。

      不同規則模板,可選擇的比較方式不同,具體請以實際介面為準。

      • 支援數值型結果對比,通常與固定值(即期望值)進行比較,比較方式包括大於大於等於等於不等於小於小於等於。支援您自訂正常資料範圍(正常閾值)與異常資料範圍(紅色閾值)。

      • 支援波動型結果對比,通常是進行範圍比較,比較方式包括絕對值上升下降。支援您自訂正常資料範圍(正常閾值),您還可以根據異常偏離程度定義資料產出存在異常(橙色閾值)與資料產出不符合預期(紅色閾值)。

    • 智能動態閾值:您無需手動設定波動閾值或期望值,系統會根據智能演算法,自動判斷合理閾值;若探索資料異常,會即時觸發警示或阻塞。動態閾值也可支援強、弱規則。

      說明

      自訂SQL自訂範圍、動態閾值類型的品質規則支援智能動態閾值比較方式。

    監控閾值

    • 比較方式手動設定時,您可以自行設定正常閾值紅色閾值

      • 正常閾值:當資料品質規則校正結果滿足此處設定的值時,說明資料校正符合預期。

      • 紅色閾值:當資料品質規則校正結果滿足此處設定的值時,說明資料校正不符合預期。

    • 當規則為波動型校正時,您需要指定橙色閾值

      • 橙色閾值:當資料品質規則校正結果滿足此處設定的值時,說明資料存在異常但不影響業務運行。

    啟停狀態

    規則的啟用停用狀態,用於控制該規則是否在生產環境中運行。

    重要

    狀態設定為停用時,規則將無法觸發測試回合,並且不會被關聯的調度任務觸發運行。

  4. 單擊下一步,進入建置規則頁面。

步驟三:大量新增需要規則校正的表或欄位

根據您選擇的表級規則模板欄位級規則模板,大量新增需要進行該規則校正的表或欄位。

添加表

  1. 單擊添加表

  2. 在彈出的大量新增頁面中,選擇待配置規則的表,列表中為您展示MaxCompute的所有表資訊,您還可以輸入目標表名對結果進行過濾。

  3. 選中需要配置監控規則的表後,單擊確定,將其添加至列表中。

添加欄位

  1. 單擊添加欄位

  2. 在彈出的選擇欄位對話方塊中,選擇目標表,待選擇表地區會展示MaxCompute的所有表資訊。

  3. 選中要配置監控規則的欄位所在的表後,選擇欄位地區為您展示已選擇表中的所有欄位資訊,支援您根據欄位名欄位描述對結果進行過濾。

  4. 選中需要配置監控規則的欄位後,單擊添加,將其添加至列表中。

步驟四:建立或關聯品質監控

以校正的表的具體資料範圍為對象(如分區表的具體分區),通過品質規則關聯品質監控的方式,定義對象資料需要進行哪些品質規則校正。

你可以單獨配置或大量設定。

大量設定

  1. 選擇多個待添加規則的表或欄位後,單擊設定品質監控

    image

  2. 支援批量自動關聯、批量取消關聯批量快速新增

    • 自動關聯:選中的表或欄位會自動關聯已有的品質監控。

    • 取消關聯:選中的表或欄位會取消已關聯的品質監控。

    • 批量快速新增:為已選擇的表配置品質監控的資料範圍和回合設定。

      image

      配置項

      說明

      資料範圍

      分區表

      通過分區運算式定義該表需要進行品質規則校正的分區。

      • 非分區表:無需配置,預設為全表

      • 分區表:運算式格式:分區名=分區值,分區值可以是固定值,也可以是附錄二:內建分區運算式

      回合設定

      觸發方式

      監控規則的運行方式。

      • 生產調度觸發:通過關聯DataWorks營運中心中指定的周期調度任務,任務運行完成後,自動觸發該品質監控下的品質規則(空跑任務不會觸發品質規則校正)。

      • 手動觸發:手動觸發當前品質監控關聯的品質監控規則。

      關聯調度節點

      如果觸發方式配置為生產調度觸發,可以使用配置此參數,指定關聯的調度節點,指定的調度節點運行完成後,自動觸發品質監控規則。

      選擇運行資源

      執行品質規則檢測所需的運行資源,預設選擇該工作空間下監控表所屬資料來源。如選取其他資料來源,需確認對應資源可對該表進行訪問。

單表配置

  1. 在目標表名或欄位右側的品質監控列,您可以為品質規則關聯品質監控任務,支援選擇已有的品質監控任務或建立品質監控任務。image

  2. 如果沒有品質監控任務,您可以單擊建立品質監控。配置如下參數:image

    配置項

    參數

    說明

    基本配置

    品質監控名稱

    自訂監控規則名稱。

    監控對象

    資料品質校正的對象,預設為當前表。

    資料範圍

    通過分區運算式定義該表需要進行品質規則校正的分區。

    • 非分區表:無需配置,預設為全表

    • 分區表:運算式格式:分區名=分區值,分區值可以是固定值,也可以是附錄二:內建分區運算式

    說明

    使用自訂模板、自訂SQL配置規則時,此處配置不生效。即使用自訂模板、自訂SQL配置的品質規則校正的分區由自訂SQL決定。

    回合設定

    觸發方式

    監控規則的運行方式。

    • 生產調度觸發:通過關聯DataWorks營運中心中指定的周期調度任務,任務運行完成後,自動觸發該品質監控下的品質規則(空跑任務不會觸發品質規則校正)。

    • 手動觸發:手動觸發當前品質監控關聯的品質監控規則。

    關聯調度節點

    如果觸發方式配置為生產調度觸發,可以使用配置此參數,指定關聯的調度節點,指定的調度節點運行完成後,自動觸發品質監控規則。

    選擇運行資源

    執行品質規則檢測所需的運行資源,預設選擇該工作空間下監控表所屬資料來源。如選取其他資料來源,需確認對應資源可對該表進行訪問。

    品質問題處理策略

    問題處置策略

    配置在檢測到資料品質問題後,具體的阻塞或警示策略。

    • 阻塞:當檢測到資料品質問題後,將識別觸發該表品質檢測的生產調度節點,並將該節點設定為失敗,下遊節點將不執行,以此阻塞生產鏈路,以避免問題資料汙染擴散。

      預設為強規則·紅色異常

    • 警示:當檢測到資料品質問題後,將對該品質監控的警示訂閱渠道發送警示資訊。

      預設為:強規則·紅色異常強規則·橙色異常強規則·校正失敗弱規則·紅色異常弱規則·橙色異常弱規則·校正失敗

    選擇品質規則

    選擇品質規則

    通過品質監控關聯品質規則的方式,確定通過哪些規則來校正該表當前資料範圍是否符合預期。

    說明
    • 不同分區可建立多個品質監控並關聯不同的品質規則進行校正,以實現不同分區校正規則不同的目的。

    • 如果還未建立品質規則,本步驟可暫不添加,您可以先完成品質監控的建立,在後續建立品質規則時,將規則添加至品質監控中。品質規則的建立,詳情請參見步驟三:配置資料品質規則

步驟五:測試規則執行

  1. 單擊建置規則,進入規則驗證頁面。在規則驗證頁面您可以進行如下操作:

    • 校正規則配置的合理性:測試回合

      規則建立完成後,您可以選擇單個或多個規則進行測試回合,在彈出的測試回合對話方塊中選擇調度時間(類比給定校正被觸發的時間),系統會根據此時間以及資料範圍,計算要驗證的表的具體分區取值。完成後單擊測試回合,以校正該表該分區下的資料是否符合當前配置的資料品質校正規則。

      測試回合後,您可以單擊操作列的運行記錄,查看測試回合的詳情,並進行相應的處理。

    • 定義警示接收人:訂閱管理

      您可以單擊訂閱管理,選擇訂閱者式接受對象,目前支援通過郵件通知郵件和簡訊通知DingTalk群機器人DingTalk群機器人@ALL飛書群機器人企業微信機器人自訂Webhook電話,觸發警示後,指定接收人將收到警示資訊。

      說明

      僅DataWorks企業版版本支援使用自訂Webhook方式,DataWorks推送自訂Webhook的警示資訊的訊息格式請參見:附錄:Webhook訊息格式

    • 定義規則引發方式:關聯調度

      您可以單擊推薦關聯調度手動關聯調度,為單個或多個資料品質規則關聯產出表資料的調度節點(營運中心中產出表資料的節點,包括自動調度的周期執行個體,手動觸發的補資料執行個體,測試執行個體),當節點任務執行時便會觸發該資料品質規則校正,您可以設定規則的強弱來控制節點是否失敗退出,從而避免髒資料影響擴大。

      • 推薦關聯調度:系統會根據產出該表的節點血緣關係選中的規則自動關聯推薦的調度節點。

      • 手動關聯調度:您可以為選中的規則手動關聯指定的調度節點。

      重要

      必須關聯相應的調度節點,規則才會被自動觸發運行。

    • 刪除規則:您可以選擇單個或多個規則進行刪除。

    • 查看規則詳情:您可以單擊操作列的規則詳情,查看規則詳情,並對規則進行修改、啟停、刪除、設定規則強弱、查看日誌等操作。

  2. 試跑運行成功且關聯調度後,單擊完成驗證

後續步驟

品質監控運行後,您可以在左側導覽列的品質營運目錄下,單擊品質監控運行記錄,查看指定表的品質校正情況,以及完整的品質規則校正記錄。

附錄:Webhook訊息格式

DataWorks推送自訂Webhook的警示資訊的訊息格式及參數說明如下所示:

訊息樣本

{
  "detailUrl": "https://dqc-cn-zhangjiakou.data.aliyun.com/?defaultProjectId=3058#/jobDetail?envType=ODPS&projectName=yongxunQA_zhangbei_standard&tableName=sx_up_001&entityId=10878&taskId=16876941111958fa4ce0e0b5746379cd9bc67999d05f8&bizDate=1687536000000&executeTime=1687694111000",
  "datasourceName": "emr_test_01",
  "engineTypeName": "EMR",
  "projectName": "線上迴歸專案",
  "dqcEntityQuality": {
    "entityName": "tb_auto_test",
    "actualExpression": "ds=20230625",
    "strongRuleAlarmNum": 1,
    "weakRuleAlarmNum": 0
  },
  "ruleChecks": [
    {
      "blockType": 0,
      "warningThreshold": 0.1,
      "property": "id",
      "tableName": "tb_auto_test",
      "comment": "測試規則",
      "checkResultStatus": 2,
      "templateName": "欄位唯一值個數期望值校正",
      "checkerName": "fulx",
      "ruleId": 123421,
      "fixedCheck": false,
      "op": "",
      "upperValue": 22200,
      "actualExpression": "ds=20230625",
      "externalId": "123112232",
      "timeCost": "10",
      "trend": "up",
      "externalType": "CWF2",
      "bizDate": 1600704000000,
      "checkResult": 2,
      "matchExpression": "ds=$[yyyymmdd]",
      "checkerType": 0,
      "projectName": "auto_test",
      "beginTime": 1600704000000,
      "dateType": "YMD",
      "criticalThreshold": "0.6",
      "isPrediction": false,
      "ruleName": "規則的名稱",
      "checkerId": 7,
      "discreteCheck": true,
      "endTime": 1600704000000,
      "MethodName": "max",
      "lowerValue": 2344,
      "entityId": 12142421,
      "whereCondition": "type!='type2'",
      "expectValue": 90,
      "templateId": 5,
      "taskId": "16008552981681a0d6",
      "id": 234241453,
      "open": true,
      "referenceValue": [
        {
          "discreteProperty": "type1",
          "value": 20,
          "bizDate": "1600704000000",
          "singleCheckResult": 2,
          "threshold": 0.2
        }
      ],
      "sampleValue": [
        {
          "discreteProperty": "type2",
          "bizDate": "1600704000000",
          "value": 23
        }
      ]
    }
  ]
}

參數說明

名稱

類型

樣本值

描述

ProjectName

String

autotest

需要進行資料品質校正的引擎或者資料來源名稱。

actualExpression

String

ds=20200925

被校正的資料來源表的實際分區。

RuleChecks

Array of RuleChecks

校正結果的列表。

BlockType

Integer

1

校正規則的強弱。強弱表示規則的重要程度。取值如下:

  • 1,表示強規則。

  • 0,表示弱規則。

    您可以根據實際需求設定重要的規則為強規則。如果使用強規則並觸發了紅色警示,則會阻塞調度任務。

WarningThreshold

Float

0.1

橙色閾值。表示與樣本預期的偏離程度,您可以根據業務需求自訂該閾值。

Property

String

type

規則屬性的欄位,即被校正資料來源表的column名稱。

TableName

String

dual

進行校正的表名稱。

Comment

String

規則的描述資訊。

校正規則的描述。

CheckResultStatus

Integer

2

校正結果狀態。

TemplateName

String

欄位唯一值個數期望值校正

使用的校正模板的名稱。

CheckerName

String

fulx

校正器的名稱。

RuleId

Long

123421

規則ID。

FixedCheck

Boolean

false

是否為固定值校正。取值如下:

  • true:是固定值校正。

  • false:非固定值校正。

Op

String

>

比較符。

UpperValue

Float

22200

預測上限。設定閾值後自動產生。

ActualExpression

String

ds=20200925

被校正的資料來源表的實際分區。

ExternalId

String

123112232

調度任務的節點ID。

TimeCost

String

10

執行校正任務花費的時間。

Trend

String

up

校正結果的趨勢。

ExternalType

String

CWF2

調度系統的類型。目前僅支援CWF。

BizDate

Long

1600704000000

業務日期。如果被校正的業務主體為離線資料,則業務日期通常為執行校正操作的前一天。

CheckResult

Integer

2

校正結果。

MatchExpression

String

ds=$[yyyymmdd]

分區運算式。

CheckerType

Integer

0

校正器的類型。

ProjectName

String

autotest

需要進行資料品質校正的引擎或者資料來源名稱。

BeginTime

Long

1600704000000

執行校正操作的開始時間。

DateType

String

YMD

調度周期的類型。通常為YMD,即年任務、月任務、天任務。

CriticalThreshold

Float

0.6

紅色閾值。表示與樣本預期的偏離程度。您可以根據業務需求自訂該閾值。使用強規則並觸發紅色閾值,會阻塞調度任務。

IsPrediction

Boolean

false

是否為預測的結果。取值如下:

  • true:是預測的結果。

  • false:不是預測的結果。

RuleName

String

規則的名稱。

規則的名稱。

CheckerId

Integer

7

校正器的ID。

DiscreteCheck

Boolean

true

是否為離散校正。取值如下:

  • true:是離散校正。

  • false:非離散校正。

EndTime

Long

1600704000000

查詢校正結果的截止時間。

MethodName

String

max

採集樣本資料的方法。包括avg、count、sum、min、max、count_distinct、user_defined、table_count、table_size、table_dt_load_count、table_dt_refuseload_count、null_value、null_value/table_count、(table_count-count_distinct)/table_count、table_count-count_distinct等。

LowerValue

Float

2344

預測下限。根據您設定的閾值自動產生。

EntityId

Long

14534343

分區運算式ID。

WhereCondition

String

type!='type2'

校正任務使用的過濾條件。

ExpectValue

Float

90

期望值。

TemplateId

Integer

5

使用的校正模板的ID。

TaskId

String

16008552981681a0d6****

校正任務的ID。

Id

Long

2231123

主鍵ID。

ReferenceValue

Array of ReferenceValue

歷史樣本值。

DiscreteProperty

String

type1

通過group by分組後的樣本欄位取值。例如group by性別欄位,則DiscreteProperty為男生、女生和null。

Value

Float

20

樣本值。

BizDate

String

1600704000000

業務日期。如果被校正的業務主體為離線資料,則業務日期通常為執行校正操作的前一天。

SingleCheckResult

Integer

2

校正結果的字串。

Threshold

Float

0.2

閾值。

SampleValue

Array of SampleValue

當前使用的樣本。

DiscreteProperty

String

type2

通過group by分組後的樣本欄位取值。例如group by性別欄位,則DiscreteProperty為男生、女生和null。

BizDate

String

1600704000000

業務日期。如果被校正的業務主體為離線資料,則業務日期通常為執行校正操作的前一天。

Value

Float

23

樣本值。

Open

Boolean

true

規則是否開啟。