數據質量為您提供多種預設表級別、字段級別的監控模板。本文為您介紹如何按模板配置監控規則。
使用限制
按模板配置目前支持配置MaxCompute、E-MapReduce、Hologres和AnalyticDB PostgreSQL數據源的監控規則。
配置流程
按模板配置質量規則的主要流程如下:
內置模板分為表級和字段級的模板規則,選擇模板后,以待校驗的表為對象,定義該表數據質量校驗規則的校驗方式。通過數據質量規則定義對該表數據的具體校驗方式,從而確定表數據是否符合預期。
選擇待批量校驗的表或字段,將規則模板應用到目標表或字段上。
以校驗的表的具體數據范圍為對象(如分區表的具體分區),通過質量規則關聯質量監控的方式,定義對象數據需要進行哪些質量規則校驗。
操作步驟
步驟一:進入按模板配置監控規則頁面
登錄DataWorks控制臺,切換至目標地域后,單擊左側導航欄的 ,在下拉框中選擇對應工作空間后單擊進入數據質量。
在左側導航欄選擇
,進入按模板配置頁面。數據質量提供系統內置的表級規則模板和字段級規則模板,您可以單擊對應模板后的配置監控規則來批量對表或字段配置監控規則。
步驟二:配置監控規則詳細屬性
選擇需要進行規則配置的模板,單擊操作列的配置監控規則,進入該模板的批量新增監控規則頁面。
配置監控規則的基本屬性。
參數
描述
數據源類型
選擇后續需要應用此監控規則的表所屬的數據源類型。
說明按模板配置目前支持配置MaxCompute、E-MapReduce、Hologres和AnalyticDB PostgreSQL數據源的監控規則。
規則來源
默認來源為內置模板。
規則模板
此處展示配置選擇的規則模板名稱。詳情請參見查看內置規則模板。
規則名稱
規則名稱系統會自動生成,您可以按需調整名稱后綴。
描述
對配置的監控規則進行簡單描述。
配置監控規則的高級屬性。
參數
描述
重要程度
設置規則在業務中的強弱程度。
強規則:比較重要的規則,如果出現紅色異常,默認會阻塞質量監控關聯的調度任務的執行。
弱規則:普通規則,如果出現紅色異常,默認不會阻塞質量監控關聯的調度任務的執行。
比較方式
定義規則具體怎么校驗表數據是否符合預期。
手動設置:自定義數據產出結果與規則的比較方式。
不同規則模板,可選擇的比較方式不同,具體請以實際界面為準。
支持數值型結果對比,通常與固定值(即期望值)進行比較,比較方式包括大于、大于等于、等于、不等于、小于、小于等于。支持您自定義正常數據范圍(正常閾值)與異常數據范圍(紅色閾值)。
支持波動型結果對比,通常是進行范圍比較,比較方式包括絕對值、上升、下降。支持您自定義正常數據范圍(正常閾值),您還可以根據異常偏離程度定義數據產出存在異常(橙色閾值)與數據產出不符合預期(紅色閾值)。
智能動態閾值:您無需手動配置波動閾值或期望值,系統會根據智能算法,自動判斷合理閾值;若發現數據異常,會即時觸發告警或阻塞。動態閾值也可支持強、弱規則。
說明僅自定義SQL、自定義范圍、動態閾值類型的質量規則支持智能動態閾值比較方式。
監控閾值
當比較方式為手動設置時,您可以自行設置正常閾值與紅色閾值。
正常閾值:當數據質量規則校驗結果滿足此處設置的值時,說明數據校驗符合預期。
紅色閾值:當數據質量規則校驗結果滿足此處設置的值時,說明數據校驗不符合預期。
當規則為波動型校驗時,您需要指定橙色閾值。
橙色閾值:當數據質量規則校驗結果滿足此處設置的值時,說明數據存在異常但不影響業務運行。
啟停狀態
規則的啟用和停用狀態,用于控制該規則是否在生產環境中運行。
重要狀態設置為停用時,規則將無法觸發測試運行,并且不會被關聯的調度任務觸發運行。
單擊下一步,進入生成規則頁面。
步驟三:批量添加需要規則校驗的表或字段
根據您選擇的表級規則模板或字段級規則模板,批量添加需要進行該規則校驗的表或字段。
添加表
單擊添加表。
在彈出的批量添加頁面中,選擇待配置規則的表,列表中為您展示MaxCompute的所有表信息,您還可以輸入目標表名對結果進行過濾。
選中需要配置監控規則的表后,單擊確定,將其添加至列表中。
添加字段
單擊添加字段。
在彈出的選擇字段對話框中,選擇目標表,待選擇表區域會展示MaxCompute的所有表信息。
選中要配置監控規則的字段所在的表后,選擇字段區域為您展示已選擇表中的所有字段信息,支持您根據字段名和字段描述對結果進行過濾。
選中需要配置監控規則的字段后,單擊添加,將其添加至列表中。
步驟四:新建或關聯質量監控
以校驗的表的具體數據范圍為對象(如分區表的具體分區),通過質量規則關聯質量監控的方式,定義對象數據需要進行哪些質量規則校驗。
你可以單獨配置或批量配置。
批量配置
選擇多個待添加規則的表或字段后,單擊設置質量監控。
支持批量自動關聯、批量取消關聯和批量快速新增。
自動關聯:選中的表或字段會自動關聯已有的質量監控。
取消關聯:選中的表或字段會取消已關聯的質量監控。
批量快速新增:為已選擇的表配置質量監控的數據范圍和運行設置。
配置項
說明
數據范圍
分區表
通過分區表達式定義該表需要進行質量規則校驗的分區。
非分區表:無需配置,默認為全表。
分區表:表達式格式:
分區名=分區值
,分區值可以是固定值,也可以是附錄二:內置分區表達式。
運行設置
觸發方式
監控規則的運行方式。
生產調度觸發:通過關聯DataWorks運維中心中指定的周期調度任務,任務運行完成后,自動觸發該質量監控下的質量規則(空跑任務不會觸發質量規則校驗)。
手動觸發:手動觸發當前質量監控關聯的質量監控規則。
關聯調度節點
如果觸發方式配置為生產調度觸發,可以使用配置此參數,指定關聯的調度節點,指定的調度節點運行完成后,自動觸發質量監控規則。
選擇運行資源
執行質量規則檢測所需的運行資源,默認選擇該工作空間下監控表所屬數據源。如選取其他數據源,需確認對應資源可對該表進行訪問。
單表配置
在目標表名或字段右側的質量監控列,您可以為質量規則關聯質量監控任務,支持選擇已有的質量監控任務或新建質量監控任務。
如果沒有質量監控任務,您可以單擊新建質量監控。配置如下參數:
配置項
參數
說明
基本配置
質量監控名稱
自定義監控規則名稱。
監控對象
數據質量校驗的對象,默認為當前表。
數據范圍
通過分區表達式定義該表需要進行質量規則校驗的分區。
非分區表:無需配置,默認為全表。
分區表:表達式格式:
分區名=分區值
,分區值可以是固定值,也可以是附錄二:內置分區表達式。
說明使用自定義模板、自定義SQL配置規則時,此處配置不生效。即使用自定義模板、自定義SQL配置的質量規則校驗的分區由自定義SQL決定。
運行設置
觸發方式
監控規則的運行方式。
生產調度觸發:通過關聯DataWorks運維中心中指定的周期調度任務,任務運行完成后,自動觸發該質量監控下的質量規則(空跑任務不會觸發質量規則校驗)。
手動觸發:手動觸發當前質量監控關聯的質量監控規則。
關聯調度節點
如果觸發方式配置為生產調度觸發,可以使用配置此參數,指定關聯的調度節點,指定的調度節點運行完成后,自動觸發質量監控規則。
選擇運行資源
執行質量規則檢測所需的運行資源,默認選擇該工作空間下監控表所屬數據源。如選取其他數據源,需確認對應資源可對該表進行訪問。
質量問題處理策略
問題處置策略
配置在檢測到數據質量問題后,具體的阻塞或告警策略。
阻塞:當檢測到數據質量問題后,將識別觸發該表質量檢測的生產調度節點,并將該節點設置為失敗,下游節點將不執行,以此阻塞生產鏈路,以避免問題數據污染擴散。
默認為
強規則·紅色異常
。告警:當檢測到數據質量問題后,將對該質量監控的告警訂閱渠道發送告警信息。
默認為:
強規則·紅色異常
、強規則·橙色異常
、強規則·校驗失敗
、弱規則·紅色異常
、弱規則·橙色異常
、弱規則·校驗失敗
。
選擇質量規則
選擇質量規則
通過質量監控關聯質量規則的方式,確定通過哪些規則來校驗該表當前數據范圍是否符合預期。
說明不同分區可新建多個質量監控并關聯不同的質量規則進行校驗,以實現不同分區校驗規則不同的目的。
如果還未創建質量規則,本步驟可暫不添加,您可以先完成質量監控的創建,在后續創建質量規則時,將規則添加至質量監控中。質量規則的創建,詳情請參見步驟三:配置數據質量規則。
步驟五:測試規則執行
單擊生成規則,進入規則驗證頁面。在規則驗證頁面您可以進行如下操作:
校驗規則配置的合理性:測試運行
規則創建完成后,您可以選擇單個或多個規則進行測試運行,在彈出的測試運行對話框中選擇調度時間(模擬給定校驗被觸發的時間),系統會根據此時間以及數據范圍,計算要驗證的表的具體分區取值。完成后單擊測試運行,以校驗該表該分區下的數據是否符合當前配置的數據質量校驗規則。
測試運行后,您可以單擊操作列的運行記錄,查看測試運行的詳情,并進行相應的處理。
定義報警接收人:訂閱管理
您可以單擊訂閱管理,選擇訂閱方式及接受對象,目前支持通過郵件通知、郵件和短信通知、釘釘群機器人、釘釘群機器人@ALL、飛書群機器人、企業微信機器人、自定義Webhook和電話,觸發報警后,指定接收人將收到報警信息。
說明僅DataWorks企業版版本支持使用自定義Webhook方式,DataWorks推送自定義Webhook的報警信息的消息格式請參見:附錄:Webhook消息格式。
定義規則觸發方式:關聯調度
您可以單擊推薦設置運行方式或手動設置運行方式,為單個或多個數據質量規則關聯產出表數據的調度節點(運維中心中產出表數據的節點,包括自動調度的周期實例,手動觸發的補數據實例,測試實例),當節點任務執行時便會觸發該數據質量規則校驗,您可以設置規則的強弱來控制節點是否失敗退出,從而避免臟數據影響擴大。
推薦設置運行方式:系統會根據產出該表的節點血緣關系選中的規則自動關聯推薦的調度節點。
手動設置運行方式:您可以為選中的規則手動關聯指定的調度節點。
重要必須關聯相應的調度節點,規則才會被自動觸發運行。
刪除:您可以選擇單個或多個規則進行刪除。
規則詳情:您可以單擊操作列的規則詳情,查看規則詳情,并對規則進行修改、啟停、刪除、設置規則強弱、查看日志等操作。
試跑運行成功且關聯調度后,單擊完成驗證。
后續步驟
質量監控運行后,您可以在左側導航欄的質量運維目錄下,單擊質量監控和運行記錄,查看指定表的質量校驗情況,以及完整的質量規則校驗記錄。
附錄: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 | 校驗規則的強弱。強弱表示規則的重要程度。取值如下:
|
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 | 是否為固定值校驗。取值如下:
|
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 | 是否為預測的結果。取值如下:
|
RuleName | String | 規則的名稱。 | 規則的名稱。 |
CheckerId | Integer | 7 | 校驗器的ID。 |
DiscreteCheck | Boolean | true | 是否為離散校驗。取值如下:
|
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 | 規則是否開啟。 |