Data Quality ofrece plantillas de reglas para simplificar la creación de Specs. El sistema incluye un conjunto de plantillas integradas comunes y también es posible crear plantillas personalizadas. Las plantillas contienen la mayoría de las configuraciones obligatorias de las Specs, por lo que al crear una regla a partir de una plantilla, solo necesita configurar los ajustes restantes.
Uso de plantillas de reglas del sistema
A continuación se muestra un ejemplo de cómo crear una regla mediante la plantilla de regla del sistema 1, 7, and 30-day average volatility:
datasets:
- type: Table
tables:
- tb_d_spec_demo
filter: "dt='$[yyyymmdd]' AND hh='$[hh24-1/24]'"
dataSource:
name: odps_first
envType: Dev
rules:
- templateId: "SYSTEM:field:avg:flux:1_7_1m_bizdate"
fields:
- col_income
warn: "when > 1%"
fail: "when > 10%"
El fragmento de código anterior crea una regla de monitoreo de Data Quality al hacer referencia a la plantilla de regla del sistema 1, 7, and 30-day average volatility. Los parámetros se configuran de la siguiente manera:
templateId: ElIDde la plantilla de reglas. Para consultar más ID de plantillas de reglas, consulte System Rule Template List. También puede crear una plantilla de reglas personalizada y consultar Use a custom rule template para crear una regla.-
templateParameters: Los parámetros que requiere la plantilla de reglas. Cada plantilla requiere parámetros distintos. Un parámetro común esfields, que especifica la lista de campos que monitorea la regla.Para conocer los parámetros que requiere cada plantilla de reglas, consulte System rule template list.
warn/fail: Los umbrales.
Uso de plantillas de reglas personalizadas
Si las plantillas de reglas del sistema no satisfacen sus necesidades, o si cuenta con varias reglas SQL personalizadas que contienen las mismas instrucciones SQL, puede crear plantillas de reglas personalizadas.
Definición de una plantilla personalizada
El siguiente fragmento de código muestra un ejemplo de configuración de Spec para una plantilla de regla personalizada:
name: "Check for non-empty ID row count"
id: "1760d075-00bd-43c9-be8f-3c9a4bac35db"
assertion: "id_not_null_row_count = 0"
id_not_null_row_count:
query: "SELECT COUNT(*) FROM ${table} WHERE dt = '$[yyyymmdd-1]';"
catalog: "ods_layer/real-time_check"
El fragmento de código anterior define una plantilla de regla personalizada sencilla. Incluye los siguientes campos:
name: El nombre de la plantilla.id: El identificador único de la plantilla. Este ID debe ser único a nivel global y se utiliza para hacer referencia a la plantilla.-
assertion: La lógica de la regla. Para obtener más información sobre la sintaxis, consulte el campoassertionen Data Quality Spec configuration.id_not_null_row_count: La definición demetrica la que hace referenciaassertionen este ejemplo. Enquery, puede usar${tableName}como marcador de posición para el nombre de la tabla. Al crear una regla a partir de esta plantilla, dicho marcador se reemplaza con el nombre de la tabla que monitorea la regla. También puede hacer referencia directa a los parámetros de hora del sistema. Para obtener más información, consulte Data filtering configuration. catalog: La categoría de la plantilla de reglas, que se utiliza para fines de gestión. Use una barra diagonal (/) para separar varios niveles de categorías.
Configuración de umbrales en plantillas personalizadas
Umbrales fijos y no fijos
El siguiente fragmento de código muestra un ejemplo de configuración con un umbral no fijo:
name: "Check for non-empty ID row count"
id: "1760d075-00bd-43c9-be8f-3c9a4bac35db"
assertion: "id_not_null_row_count"
id_not_null_row_count:
query: "SELECT COUNT(*) FROM ${table} WHERE dt = '$[yyyymmdd-1]';"
Umbrales de volatilidad
name: "Check for non-empty ID row count"
id: "1760d075-00bd-43c9-be8f-3c9a4bac35db"
assertion: "change avg last 7 days percent for id_not_null_row_count"
id_not_null_row_count:
query: "SELECT COUNT(*) FROM ${table} WHERE dt = '$[yyyymmdd-1]';"
Creación de una regla mediante una plantilla personalizada
-
Ejemplo 1
datasets: - type: Table tables: - tb_d_spec_demo filter: "dt='$[yyyymmdd]' AND hh='$[hh24-1/24]'" dataSource: name: odps_first envType: Dev rules: - templateId: "1760d075-00bd-43c9-be8f-3c9a4bac35db" # Defines the failure threshold fail: "when != 0" -
Ejemplo 2
datasets: - type: Table tables: - tb_d_spec_demo filter: "dt='$[yyyymmdd]' AND hh='$[hh24-1/24]'" dataSource: name: odps_first envType: Dev rules: - templateId: "1760d075-00bd-43c9-be8f-3c9a4bac35db" warn: "when between 1 and 10)" fail: "when > 10" -
Ejemplo 3
datasets: - type: Table tables: - tb_d_spec_demo filter: "dt='$[yyyymmdd]' AND hh='$[hh24-1/24]'" dataSource: name: odps_first envType: Dev rules: - templateId: "1760d075-00bd-43c9-be8f-3c9a4bac35db" warn: "when not between -1% and 1%" fail: "when not between -10% and 10%"
Lista de plantillas de reglas del sistema
|
Id |
Plantilla |
Campos obligatorios |
Ejemplo |
|
|
Recuento de filas de tabla, valor fijo |
|
|
|
|
Recuento de filas de tabla mayor que 0 |
- |
|
|
|
Recuento de filas de tabla, diferencia de 1 día |
|
|
|
|
Recuento de filas de tabla, diferencia respecto al periodo anterior |
|
|
|
|
Recuento de filas de tabla, tasa de volatilidad de 1, 7 y 30 días |
|
|
|
|
Recuento de filas de tabla, tasa de volatilidad de 1, 7, 30 días y primer día del mes |
|
|
|
|
Recuento de filas de tabla, tasa de volatilidad de 1 día |
|
|
|
|
Recuento de filas de tabla, tasa de volatilidad de 30 días |
|
|
|
|
Recuento de filas de tabla, tasa de volatilidad de 7 días |
|
|
|
|
Recuento de filas de tabla, umbral dinámico |
- |
|
|
|
Recuento de filas de tabla, tasa de volatilidad promedio de 7 días |
|
|
|
|
Recuento de filas de tabla, tasa de volatilidad promedio de 30 días |
|
|
|
|
Recuento de filas de tabla, tasa de volatilidad respecto al periodo anterior |
|
|
|
|
Tamaño de tabla, valor fijo |
|
|
|
|
Tamaño de tabla, diferencia de 1 día (bytes) |
|
|
|
|
Tamaño de tabla, diferencia respecto al periodo anterior |
|
|
|
|
Tamaño de tabla, tasa de volatilidad de 1 día |
|
|
|
|
Tamaño de tabla, tasa de volatilidad de 30 días |
|
|
|
|
Tamaño de tabla, tasa de volatilidad de 7 días |
|
|
|
|
Tamaño de tabla, umbral dinámico |
- |
|
|
|
Recuento de valores nulos, valor fijo |
|
|
|
|
El recuento de valores nulos es 0 |
|
|
|
|
Porcentaje de valores nulos, valor fijo |
|
|
|
|
Verificación de expresión regular |
|
|
|
|
Verificación de formato de fecha |
|
|
|
|
Verificación de formato de correo electrónico |
|
|
|
|
Verificación de formato de tarjeta de identificación |
|
|
|
|
Verificación de formato de número de celular |
|
|
|
|
Verificación de formato de moneda |
|
|
|
|
Verificación de formato numérico |
|
|
|
|
Verificación de formato de número telefónico |
|
|
|
|
Recuento de valores duplicados, valor fijo |
|
|
|
|
El recuento de valores duplicados es 0 |
|
|
|
|
El recuento de valores duplicados en varios campos es 0 |
|
|
|
|
Porcentaje de valores duplicados, valor fijo |
|
|
|
|
Recuento de valores únicos, valor fijo |
|
|
|
|
Recuento de valores únicos, tasa de volatilidad de 1, 7 y 30 días |
|
|
|
|
Recuento de valores únicos, umbral dinámico |
|
|
|
|
Porcentaje de valores únicos, valor fijo |
|
|
|
|
Valor mínimo, tasa de volatilidad de 1, 7 y 30 días |
|
|
|
|
Valor mínimo, umbral dinámico |
|
|
|
|
Valor mínimo, tasa de volatilidad de 1 día |
|
|
|
|
Valor mínimo, tasa de volatilidad respecto al periodo anterior |
|
|
|
|
Valor mínimo, tasa de volatilidad de 1, 7 y 30 días |
|
|
|
|
Valor máximo, umbral dinámico |
|
|
|
|
Valor máximo, tasa de volatilidad de 1 día |
|
|
|
|
Valor máximo, tasa de volatilidad respecto al periodo anterior |
|
|
|
|
Valor promedio, tasa de volatilidad de 1, 7 y 30 días |
|
|
|
|
Valor promedio, umbral dinámico |
|
|
|
|
Valor promedio, tasa de volatilidad de 1 día |
|
|
|
|
Suma, tasa de volatilidad de 1, 7 y 30 días |
|
|
|
|
Suma, umbral dinámico |
|
|
|
|
Suma, tasa de volatilidad de 1 día |
|
|
|
|
Suma, tasa de volatilidad respecto al periodo anterior |
|
|
|
|
Recuento de valores únicos no presentes en la enumeración, valor fijo |
|
|
|
|
Recuento de filas con valores no presentes en la enumeración, valor fijo |
|
|
|
|
El recuento de filas con valores no presentes en la enumeración es 0 |
|
|
|
|
Verificación de enumeración personalizada, valor fijo |
|
|
|
|
Recuento de valores de estado discretos, valor fijo |
|
|
|
|
Recuento de grupos discretos, valor fijo |
|
|
|
|
Recuento de grupos discretos, umbral dinámico |
|
|
|
|
Recuento de valores de estado discretos, umbral dinámico |
|
|
|
|
Recuento de grupos discretos, tasa de volatilidad respecto al periodo anterior |
|
|
|
|
Métricas discretas (grupos y valores), tasa de volatilidad de 1, 7 y 30 días |
|
|
Apéndice: Instrucciones de configuración para plantillas del sistema de rango personalizado
A continuación se describen las plantillas del sistema de rango personalizado, las cuales se configuran de manera distinta a las plantillas estándar del sistema y requieren una configuración por separado.
-
Porcentaje de coincidencia condicional, rango personalizado
rules: - assertion: "matched_row_percent = 0" filter: "id IS NULL" -
Valor mínimo del campo, rango personalizado
rules: - assertion: "anomal detection for min(income)" -
Valor máximo del campo, rango personalizado
rules: - assertion: "change avg last 7 days percent for max(income)" warn: "when > 0.1%" fail: "when > 0.5%" -
Valor promedio del campo, rango personalizado
rules: - assertion: "change var last 30 days percent for avg(income)" warn: "when < -0.1%" fail: "when < -0.5%" -
Suma del campo, rango personalizado
rules: - assertion: "change 1 days ago percent for sum(income)" warn: "when not between -0.1% and 0.1%" fail: "when not between -0.5% and 0.5%" -
Custom SQL
Para el parámetro
assertion, consulte Define custom metric rules .rules: - assertion: "change percent for id_not_null_count" id_not_null_count: query: "SELECT COUNT(*) AS cnt FROM tb_spec_demo WHERE dt = '$[yyyymmdd]'" warn: "when not between -0.1% and 0.1%" fail: "when not between -0.5% and 0.5%"