本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在本教學課程中,您將開始使用 AWS Glue 中的資料品質 AWS Glue Studio。 您將了解如何:
-
使用 Data Quality Definition Language (DQDL) 規則建置器建立規則。
-
指定資料品質動作、要輸出的資料,以及資料品質結果的輸出位置。
-
檢閱資料品質結果。
若要練習範例,請檢閱部落格文章 ETL 管道的 AWS Glue Data Quality 入門
步驟 1:將「評估資料品質」轉換節點新增至視覺化任務
在此步驟中,您要將評估資料品質節點新增到視覺化任務編輯器。
新增資料品質節點
-
在 AWS Glue Studio 主控台中,從建立任務區段選擇具有來源和目標的視覺化,然後選擇建立。
-
選擇您要套用資料品質轉換的節點。一般而言,這將是轉換節點或資料來源。
-
透過選擇 "+" 圖示開啟左側的資源面板。然後在搜尋列中輸入評估資料品質,接著從搜尋結果中選擇評估資料品質。
-
視覺化任務編輯器將顯示從您選取的節點分支的評估資料品質轉換節點。在主控台右側,轉換索引標籤將自動開啟。如果需要變更父節點,請選擇節點屬性索引標籤,然後從下拉式選單中選擇父節點。
選擇新的父節點時,會在父節點與評估資料品質節點之間建立新的連線。移除任何不需要的父節點。只有一個父節點可以連接到一個評估資料品質節點。
-
「評估資料品質」轉換支援多個父項,因此您可以驗證多個資料集的資料品質規則。支援多個資料集的規則包括 ReferentialIntegrity、 DatasetMatch SchemaMatch、 RowCountMatch、 和 AggregateMatch。
當您將多個輸入新增至「評估資料品質」轉換時,您需要選取「主要」輸入。您的主要輸入是您想要驗證資料品質的資料集。所有其他節點或輸入都被視為參考。
您可以使用「評估資料品質」轉換來識別未通過資料品質檢查的特定記錄。建議您選擇主資料集,因為標示錯誤記錄的新資料欄會新增至主資料集。
-
您可以為輸入資料來源指定別名。當您使用 ReferentialIntegrity 規則時,別名提供另一種參考輸入來源的方式。因為只能將一個資料來源指定為主要來源,您新增的每個其他資料來源都需要別名。
在下列範例中, ReferentialIntegrity 規則會依別名名稱指定輸入資料來源,並執行與主要資料來源的 one-to-one比較。
Rules = [ ReferentialIntegrity “Aliasname.name” = 1 ]
步驟 2:使用 建立規則 DQDL
在此步驟中,您會使用 建立規則DQDL。在本教學課程中,您將使用完整度規則類型建立單一規則。此規則類型會根據指定運算式檢查資料欄中完整 (非 Null) 值的百分比。如需有關使用 DQDL 的詳細資訊,請參閱 DQDL。
-
在轉換索引標籤中,選擇插入按鈕以新增規則類型。這會將規則類型新增至規則編輯器,您可以在其中輸入規則的參數。
注意
編輯規則時,請確保規則位於括號內,且以逗號分隔規則。例如,完整的規則運算式如下所示:
Rules= [ Completeness "year">0.8, Completeness "month">0.8 ]
此範例指定名為 'year' 和 'month' 資料欄的完整度參數。這些資料欄必須大於 80%「完整」,或各相應資料欄中 80% 以上的執行個體都有資料,才能通過規則。
在此範例中,搜尋並插入完整度規則類型。這會將規則類型新增至規則編輯器。此規則類型的語法如下:
Completeness <COL_NAME> <EXPRESSION>
。大多數規則類型都需要您提供運算式作為參數,以建立布林值回應。如需支援DQDL表達式的詳細資訊,請參閱DQDL表達式。接著新增資料欄名稱。
-
在DQDL規則建置器中,選擇結構描述索引標籤。使用搜尋列尋找輸入結構描述中的欄名稱。輸入結構描述會顯示欄名稱和資料類型。
-
在規則編輯器中按一下規則類型右側,將游標插入要插入資料欄的位置。或者,您也可以在規則中輸入資料欄的名稱。
例如,在輸入結構描述清單中的資料欄清單中,選擇資料欄 (在此範例中為年) 旁的插入按鈕。這會將資料欄新增至規則。
-
然後,在規則編輯器中新增運算式來評估規則。由於完整度規則類型會根據指定運算式檢查欄中完整 (非 Null) 值的百分比,請輸入運算式,例如
> 0.8
。此規則將檢查資料欄是否大於 80% 的完整 (非 Null) 值。
步驟 3:設定資料品質輸出
建立資料品質規則後,即可選取其他選項以指定資料品質節點輸出:
-
在資料品質轉換輸出中,從以下選項中選擇:
-
原始資料:選擇輸出原始輸入資料。當您選擇此選項時,新的子節點「rowLevelOutcomes」會新增至任務。其結構描述與作為輸入傳遞至轉換的主資料集結構描述相符。如果您只想在品質問題發生時傳遞資料並讓任務失敗,則此選項非常有用。
另一個使用案例是當您想要偵測未通過資料品質檢查的錯誤記錄時。若要偵測錯誤記錄,請選擇新增資料欄以指出資料品質錯誤選項。此動作會將四個新資料欄新增至「rowLevelOutcomes」轉換的結構描述。
-
DataQualityRulesPass (字串陣列) – 提供傳遞資料品質檢查的規則陣列。
-
DataQualityRulesFail (字串陣列) – 提供未通過資料品質檢查的規則陣列。
-
DataQualityRulesSkip (字串陣列) – 提供略過的規則陣列。下列規則無法識別錯誤記錄,因為它們是在資料集層級套用。
-
AggregateMatch
-
ColumnCount
-
ColumnExists
-
ColumnNamesMatchPattern
-
CustomSql
-
RowCount
-
RowCountMatch
-
StandardDeviation
-
Mean
-
ColumnCorrelation
-
-
DataQualityEvaluationResult – 在資料列層級提供「通過」或「失敗」狀態。請注意,您的整體結果可以是 FAIL,但特定記錄可能會通過。例如, RowCount 規則可能失敗,但所有其他規則可能都成功。在這種情況下,此欄位狀態為「已通過」。
-
-
-
資料品質結果:選擇輸出已設定的規則及其通過或失敗狀態。如果您想要將結果寫入 Amazon S3 或其他資料庫,此選項非常有用。
-
資料品質輸出設定 (選用):選擇資料品質輸出設定,以顯示資料品質結果位置欄位。然後選擇瀏覽,以搜尋要設定為資料品質輸出目標的 Amazon S3 位置。
步驟 4. 設定資料品質動作
您可以使用 動作來發佈指標至 CloudWatch ,或根據特定條件停止任務。動作只有在您建立規則之後才可用。當您選擇此選項時,相同的指標也會發布至 Amazon EventBridge。您可以使用這些選項建立通知警示。
-
規則集失敗時:如果規則集在任務執行時失敗,您可以選擇該怎麼做。如果您希望任務在資料品質失敗時失敗,請選取下列其中一個選項來選擇任務失敗的時間。預設不會選取此動作,即使資料品質規則失敗,任務也會完成執行。
-
無:如果選擇 無 (預設值),即使規則集失敗,任務也不會失敗,而會繼續執行。
-
將資料載入目標後任務失敗:任務失敗且不儲存任何資料。若要儲存結果,請選擇要儲存資料品質結果的 Amazon S3 位置。
-
任務失敗而不載入至目標資料:發生資料品質錯誤時,此選項會立即讓任務失敗。它不會載入任何資料目標,包括資料品質轉換的結果。
-
步驟 5:檢視資料品質結果
執行任務後,選擇資料品質索引標籤來檢視資料品質結果。
-
檢視每個任務執行的資料品質結果。每個節點都會顯示資料品質狀態和狀態詳細資訊。選擇節點以檢視所有規則和每個規則的狀態。
-
選擇下載結果以下載包含任務執行和資料品質結果相關資訊CSV的檔案。
-
如果您執行多個具有資料品質結果的任務,則可以依日期和時間範圍篩選結果。選擇依日期和時間範圍篩選以展開篩選條件視窗。
-
選擇相對範圍或絕對範圍。如要使用絕對範圍,請使用行事曆選取日期,並輸入開始時間和結束時間的值。完成時,請選擇套用。
自動資料品質
當您以 AWS Amazon S3 做為目標建立 Glue ETL任務時, AWS Glue ETL會自動啟用資料品質規則,以檢查要載入的資料是否至少有一個資料欄。此規則旨在確保要載入的資料不是空的或已損毀。不過,如果此規則失敗,任務不會失敗;反之,您會注意到資料品質分數降低。此外,異常偵測預設為啟用,可監控資料中的資料欄數。如果資料欄計數中有任何變化或異常, AWS Glue ETL會通知您這些異常。此功能可協助您識別資料的潛在問題,並採取適當的動作。若要檢視資料品質規則及其組態,您可以按一下 Glue ETL任務中的 Amazon S3 AWS 目標。隨即會顯示規則的組態,如提供的螢幕擷取畫面所示。
您可以選取編輯資料品質組態來新增其他資料品質規則。