Todos los productos
Search
Centro de documentos

DataWorks:Plantillas de reglas

Última actualización: Sep 04, 2026

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: El ID de 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 es fields, 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 campo assertion en Data Quality Spec configuration.

    id_not_null_row_count: La definición de metric a la que hace referencia assertion en este ejemplo. En query, 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

SYSTEM:table:table_count:fixed

Recuento de filas de tabla, valor fijo

pass

templateId: "SYSTEM:table:table_count:fixed"
pass: "when > 0"

SYSTEM:table:table_count:fixed:0

Recuento de filas de tabla mayor que 0

-

templateId: "SYSTEM:table:table_count:fixed:0"

SYSTEM:table:table_count_delta:fixed:1_bizdate

Recuento de filas de tabla, diferencia de 1 día

pass

templateId: "SYSTEM:table:table_count_delta:fixed:1_bizdate"
pass: "when < 10"

SYSTEM:table:table_count_delta:fixed:latest_bizdate

Recuento de filas de tabla, diferencia respecto al periodo anterior

pass

templateId: "SYSTEM:table:table_count_delta:fixed:latest_bizdate"
pass: "when < 10"

SYSTEM:table:table_count:flux:1_7_1m_bizdate

Recuento de filas de tabla, tasa de volatilidad de 1, 7 y 30 días

  • warn

  • fail

templateId: "SYSTEM:table:table_count:flux:1_7_1m_bizdate"
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:table:table_count:flux:1_7_1m_1st_bizdate

Recuento de filas de tabla, tasa de volatilidad de 1, 7, 30 días y primer día del mes

  • warn

  • fail

templateId: "SYSTEM:table:table_count:flux:1_7_1m_1st_bizdate"
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:table:table_count:flux:1_bizdate

Recuento de filas de tabla, tasa de volatilidad de 1 día

  • warn

  • fail

templateId: "SYSTEM:table:table_count:flux:1_bizdate"
warn: "when < -1%"
fail: "when < -5%"

SYSTEM:table:table_count:flux:1m_bizdate

Recuento de filas de tabla, tasa de volatilidad de 30 días

  • warn

  • fail

templateId: "SYSTEM:table:table_count:flux:1m_bizdate"
warn: "when < -1%"
fail: "when < -5%"

SYSTEM:table:table_count:flux:7_bizdate

Recuento de filas de tabla, tasa de volatilidad de 7 días

  • warn

  • fail

templateId: "SYSTEM:table:table_count:flux:7_bizdate"
warn: "when < -1%"
fail: "when < -5%"

SYSTEM:table:table_count:dynamic_threshold

Recuento de filas de tabla, umbral dinámico

-

templateId: "SYSTEM:table:table_count:dynamic_threshold"

SYSTEM:table:table_count:avg:7_bizdate

Recuento de filas de tabla, tasa de volatilidad promedio de 7 días

  • warn

  • fail

templateId: "SYSTEM:table:table_count:avg:7_bizdate"
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:table:table_count:avg:1m_bizdate

Recuento de filas de tabla, tasa de volatilidad promedio de 30 días

  • warn

  • fail

templateId: "SYSTEM:table:table_count:avg:1m_bizdate"
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:table:table_count:cycle:latest_bizdate

Recuento de filas de tabla, tasa de volatilidad respecto al periodo anterior

  • warn

  • fail

templateId: "SYSTEM:table:table_count:cycle:latest_bizdate"
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:table:table_size:fixed

Tamaño de tabla, valor fijo

pass

templateId: "SYSTEM:table:table_size:fixed"
pass: "when > 0"

SYSTEM:table:table_size_delta:fixed:1_bizdate

Tamaño de tabla, diferencia de 1 día (bytes)

pass

templateId: "SYSTEM:table:table_size_delta:fixed:1_bizdate"
pass: "when > 0"

SYSTEM:table:table_size_delta:fixed:latest_bizdate

Tamaño de tabla, diferencia respecto al periodo anterior

pass

templateId: "SYSTEM:table:table_size_delta:fixed:latest_bizdate"
pass: "when > 0"

SYSTEM:table:table_size:flux:1_bizdate

Tamaño de tabla, tasa de volatilidad de 1 día

  • warn

  • fail

templateId: "SYSTEM:table:table_size:flux:1_bizdate"
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:table:table_size:flux:1m_bizdate

Tamaño de tabla, tasa de volatilidad de 30 días

  • warn

  • fail

templateId: "SYSTEM:table:table_size:flux:1m_bizdate"
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:table:table_size:flux:7_bizdate

Tamaño de tabla, tasa de volatilidad de 7 días

  • warn

  • fail

templateId: "SYSTEM:table:table_size:flux:7_bizdate"
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:table:table_size:dynamic_threshold

Tamaño de tabla, umbral dinámico

-

templateId: "SYSTEM:table:table_size:dynamic_threshold"

SYSTEM:field:null_value:fixed

Recuento de valores nulos, valor fijo

  • fields

  • pass

templateId: "SYSTEM:field:null_value:fixed"
fields:
  - id
pass: "when > 0"

SYSTEM:field:null_value:fixed:0

El recuento de valores nulos es 0

fields

templateId: "SYSTEM:field:null_value:fixed:0"
fields:
  - id

SYSTEM:field:null_value_percent:fixed

Porcentaje de valores nulos, valor fijo

  • fields

  • pass

templateId: "SYSTEM:field:null_value_percent:fixed"
fields:
  - id
pass: "when > 0"

SYSTEM:field:pattern_match:fixed

Verificación de expresión regular

  • fields

  • valid

    • regex

  • templateParameters

    • metric

  • pass

templateId: "SYSTEM:field:pattern_match:fixed"
templateParameters:
  metric: invalid_distinct_count
fields:
  - id
valid:
  regex: "[0-9]+"
pass: "when > 0"

SYSTEM:field:pattern_match_date:fixed

Verificación de formato de fecha

  • fields

  • valid

    • format

  • templateParameters

    • metric

  • pass

templateId: "SYSTEM:field:pattern_match_date:fixed"
templateParameters:
  metric: invalid_count
fields:
  - id
valid:
  format: date_yyyymmdd
pass: "when > 0"

SYSTEM:field:pattern_match_email:fixed

Verificación de formato de correo electrónico

  • fields

  • templateParameters

    • metric

  • pass

templateId: "SYSTEM:field:pattern_match_email:fixed"
templateParameters:
  metric: invalid_count
fields:
  - id
pass: "when > 0"

SYSTEM:field:pattern_match_idcard:fixed

Verificación de formato de tarjeta de identificación

  • fields

  • templateParameters

    • metric

  • pass

templateId: "SYSTEM:field:pattern_match_idcard:fixed"
templateParameters:
  metric: invalid_count
fields:
  - id
pass: "when > 0"

SYSTEM:field:pattern_match_mobile_number:fixed

Verificación de formato de número de celular

  • fields

  • templateParameters

    • metric

  • pass

templateId: "SYSTEM:field:pattern_match_mobile_number:fixed"
templateParameters:
  metric: invalid_count
fields:
  - id
pass: "when > 0"

SYSTEM:field:pattern_match_money:fixed

Verificación de formato de moneda

  • fields

  • valid

    • format

  • templateParameters

    • metric

  • pass

templateId: "SYSTEM:field:pattern_match_money:fixed"
templateParameters:
  metric: invalid_count
fields:
  - id
valid:
  format: CNY
pass: "when > 0"

SYSTEM:field:pattern_match_number:fixed

Verificación de formato numérico

  • fields

  • templateParameters

    • metric

  • pass

templateId: "SYSTEM:field:pattern_match_number:fixed"
templateParameters:
  metric: invalid_count
fields:
  - id
pass: "when > 0"

SYSTEM:field:pattern_match_phone_number:fixed

Verificación de formato de número telefónico

  • fields

  • templateParameters

    • metric

  • pass

templateId: "SYSTEM:field:pattern_match_phone_number:fixed"
templateParameters:
  metric: invalid_count
fields:
  - id
pass: "when > 0"

SYSTEM:field:duplicated_count:fixed

Recuento de valores duplicados, valor fijo

  • fields

  • pass

templateId: "SYSTEM:field:duplicated_count:fixed"
fields:
  - id
pass: "when > 0"

SYSTEM:field:duplicated_count:fixed:0

El recuento de valores duplicados es 0

fields

templateId: "SYSTEM:field:duplicated_count:fixed:0"
fields:
  - id

SYSTEM:fields:duplicated_count:fixed:0

El recuento de valores duplicados en varios campos es 0

fields

templateId: "SYSTEM:fields:duplicated_count:fixed:0"
fields:
  - id
  - name

SYSTEM:field:duplicated_percent:fixed

Porcentaje de valores duplicados, valor fijo

  • fields

  • pass

templateId: "SYSTEM:field:duplicated_percent:fixed"
fields:
  - id
pass: "when > 0"

SYSTEM:field:count_distinct:fixed

Recuento de valores únicos, valor fijo

  • fields

  • pass

templateId: "SYSTEM:field:count_distinct:fixed"
fields:
  - id
pass: "when > 0"

SYSTEM:field:count_distinct:flux:1_7_1m_bizdate

Recuento de valores únicos, tasa de volatilidad de 1, 7 y 30 días

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:count_distinct:flux:1_7_1m_bizdate"
fields:
  - id
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:table:distinct_count:dynamic_threshold

Recuento de valores únicos, umbral dinámico

  • fields

  • pass

templateId: "SYSTEM:table:distinct_count:dynamic_threshold"
fields:
  - id

SYSTEM:field:count_distinct_percent:fixed

Porcentaje de valores únicos, valor fijo

  • fields

  • pass

templateId: "SYSTEM:field:count_distinct_percent:fixed"
fields:
  - id
pass: "when > 0"

SYSTEM:field:min:flux:1_7_1m_bizdate

Valor mínimo, tasa de volatilidad de 1, 7 y 30 días

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:min:flux:1_7_1m_bizdate"
fields:
  - id
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:field:min:dynamic_threshold

Valor mínimo, umbral dinámico

fields

templateId: "SYSTEM:field:min:dynamic_threshold"
fields:
  - id

SYSTEM:field:min:cycle:1_bizdate

Valor mínimo, tasa de volatilidad de 1 día

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:min:cycle:1_bizdate"
fields:
  - id
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:field:min:cycle:latest_bizdate

Valor mínimo, tasa de volatilidad respecto al periodo anterior

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:min:cycle:latest_bizdate"
fields:
  - id
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:field:min:flux:1_7_1m_bizdate

Valor mínimo, tasa de volatilidad de 1, 7 y 30 días

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:min:flux:1_7_1m_bizdate"
fields:
  - id
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:field:max:dynamic_threshold

Valor máximo, umbral dinámico

fields

templateId: "SYSTEM:field:max:dynamic_threshold"
fields:
  - id

SYSTEM:field:max:cycle:1_bizdate

Valor máximo, tasa de volatilidad de 1 día

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:max:cycle:1_bizdate"
fields:
  - id
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:field:max:cycle:latest_bizdate

Valor máximo, tasa de volatilidad respecto al periodo anterior

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:max:cycle:latest_bizdate"
fields:
  - id
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:field:avg:flux:1_7_1m_bizdate

Valor promedio, tasa de volatilidad de 1, 7 y 30 días

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:avg:flux:1_7_1m_bizdate"
fields:
  - id
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:field:avg:dynamic_threshold

Valor promedio, umbral dinámico

fields

templateId: "SYSTEM:field:avg:dynamic_threshold"
fields:
  - id

SYSTEM:field:avg:cycle:1_bizdate

Valor promedio, tasa de volatilidad de 1 día

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:avg:cycle:1_bizdate"
fields:
  - id
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:field:sum:flux:1_7_1m_bizdate

Suma, tasa de volatilidad de 1, 7 y 30 días

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:sum:flux:1_7_1m_bizdate"
fields:
  - id
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:field:sum:dynamic_threshold

Suma, umbral dinámico

fields

templateId: "SYSTEM:field:sum:dynamic_threshold"
fields:
  - id

SYSTEM:field:sum:cycle:1_bizdate

Suma, tasa de volatilidad de 1 día

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:sum:cycle:1_bizdate"
fields:
  - id
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:field:sum:cycle:latest_bizdate

Suma, tasa de volatilidad respecto al periodo anterior

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:sum:cycle:latest_bizdate"
fields:
  - id
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:field:count_distinct_not_in:fixed

Recuento de valores únicos no presentes en la enumeración, valor fijo

  • fields

  • valid

    • values

  • pass

templateId: "SYSTEM:field:count_distinct_not_in:fixed"
fields:
  - gender
valid:
  values:
    - male
    - female
pass: "when = 0"

SYSTEM:field:count_not_in:fixed

Recuento de filas con valores no presentes en la enumeración, valor fijo

  • fields

  • valid

    • values

  • pass

templateId: "SYSTEM:field:count_not_in:fixed"
fields:
  - gender
valid:
  values:
    - male
    - female
pass: "when = 0"

SYSTEM:field:count_not_in:fixed:0

El recuento de filas con valores no presentes en la enumeración es 0

  • fields

  • valid

    • values

templateId: "SYSTEM:field:count_not_in:fixed:0"
fields:
  - gender
valid:
  values:
    - male
    - female

SYSTEM:field:field_enum:fixed

Verificación de enumeración personalizada, valor fijo

  • fields

  • valid

    • values

  • templateParameters

    • metirc

  • pass

templateId: "SYSTEM:field:field_enum:fixed"
templateParameters:
  metric: invalid_count
fields:
  - gender
valid:
  values:
    - male
    - female
pass: "when > 0"

SYSTEM:field:all_discrete_count:fixed

Recuento de valores de estado discretos, valor fijo

  • fields

  • pass

templateId: "SYSTEM:field:all_discrete_count:fixed"
fields:
  - gender
pass: "when > 0"

SYSTEM:field:discrete_group_count:fixed

Recuento de grupos discretos, valor fijo

  • fields

  • pass

templateId: "SYSTEM:field:discrete_group_count:fixed"
fields:
  - gender
pass: "when > 0"

SYSTEM:field:discrete_group_count:dynamic_threshold

Recuento de grupos discretos, umbral dinámico

fields

templateId: "SYSTEM:field:discrete_group_count:dynamic_threshold"
fields:
  - gender

SYSTEM:field:discrete_value_count:dynamic_threshold

Recuento de valores de estado discretos, umbral dinámico

fields

templateId: "SYSTEM:field:discrete_value_count:dynamic_threshold"
fields:
  - gender

SYSTEM:field:discrete_group_count:cycle:latest_bizdate

Recuento de grupos discretos, tasa de volatilidad respecto al periodo anterior

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:discrete_group_count:cycle:latest_bizdate"
fields:
  - gender
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:field:all_discrete_metrics:fluxdiscrete:1_7_1m_bizdate

Métricas discretas (grupos y valores), tasa de volatilidad de 1, 7 y 30 días

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:all_discrete_metrics:fluxdiscrete:1_7_1m_bizdate"
fields:
  - gender
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

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%"