本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
自訂 SQL
此規則類型已經過延伸,可支援兩種使用案例:
針對資料集執行自訂SQL陳述式,並根據指定的運算式檢查傳回值。
執行自訂SQL陳述式,您可以在陳述式中指定資料行名稱,以便與某些條件進行比較,以取得資料列層級SELECT結果。
語法
CustomSql
<SQL_STATEMENT>
<EXPRESSION>
SQL_ STATEMENT — 傳回單一數值的SQL陳述式,並以雙引號括住。
EXPRESSION— 針對規則類型回應執行以產生布林值的運算式。如需詳細資訊,請參閱表達式。
範例:自訂SQL以擷取整體規則結果
此範例規則會使用SQL陳述式來擷取資料集的記錄計數。然後規則會檢查記錄計數是否在 10 到 20 之間。
CustomSql "select count(*) from primary" between 10 and 20
範例:自訂SQL以擷取列層級結果
這個範例規則會使用SQL陳述式,其中您可以在陳SELECT述式中指定資料行名稱,以便與某些條件進行比較,以取得資料列層級結果。閥值條件運算式定義了導致整個規則失敗的記錄失敗數量閥值。請注意,規則不能同時包含條件和關鍵字。
CustomSql "select Name from primary where Age > 18"
或
CustomSql "select Name from primary where Age > 18" with threshold > 3
重要
primary
別名代表您要評估的資料集名稱。當您在主控台上使用視覺化ETL工作時,primary
永遠代表DynamicFrame
傳遞至EvaluateDataQuality.apply()
轉換的項目。當您使用 AWS Glue 資料型錄對資料表執行資料品質工作時,primary
表示該表格。
如果您是使用 AWS Glue Data Catalog,則也可以使用實際的資料表名稱:
CustomSql "select count(*) from database.table" between 10 and 20
您還可以聯結多個資料表來比較不同的資料元素:
CustomSql "select count(*) from database.table inner join database.table2 on id1 = id2" between 10 and 20
在中 AWS GlueETL,「自訂」SQL 可以識別資料品質檢查失敗的記錄。您需要傳回屬於目前正在評估資料品質之主資料表的記錄,才能使用此功能。作為查詢的一部分傳回的記錄會視為成功,未傳回的記錄則會視為失敗。
下列規則會確保將期限小於 100 的記錄識別為成功,並將超過該數值的記錄標記為失敗。
CustomSql "select id from primary where age < 100"
當 50% 的記錄年齡大於 10 時,此自訂SQL規則將通過,並且也會識別失敗的記錄。此 Custom 返回的記錄SQL將被視為通過,而未返回的記錄將被視為失敗。
CustomSQL "select ID, CustomerID from primary where age > 10" with threshold > 0.5
附註:如果您傳回資料集中無法使用的記錄,自訂SQL規則將會失敗。