Dova Docs6.0.2

Transformaciones y reglas de calidad

Manual completo ↗

Objetivo y contrato de los registros

Las transformaciones integradas trabajan sobre los registros que llegan desde sus padres. Una operación puede cambiar campos, valores, cantidad de filas u orden. Antes de conectar un destino, declare cuáles de esas propiedades deben conservarse. La calidad no se limita a que el Mapping sea válido: un grafo correcto puede producir un resultado de negocio incorrecto si las claves o el tipo de unión no representan la relación real.

El catálogo siguiente contiene todos los componentes de categorías Transform y Quality. Sus identificadores son estables dentro de la configuración; las etiquetas son las mostradas al usuario. Los campos enumerados describen el contrato del componente, no funciones de un lenguaje de programación abierto. Para fuentes y destinos consulte componentes de Mapping.

Catálogo completo

Componente / identificador Categoría Configuración declarada
Row filter / filter Transform field; operator (equals, not_equals, contains, starts_with, ends_with, gt, gte, lt, lte, not_empty); value
Field selector / select Transform fields
Field mapper / rename Transform mapping
Calculated field / derive Transform field; template
Convert type / convert Transform field; targetType (string, integer, number, boolean, date, datetime); outputField; onError (fail, null, keep, default); defaultValue
Clean text / clean Transform fields; operations
Replace values / replace Transform field; find; replacement; matchMode (contains, exact, starts_with, ends_with); caseSensitive
Split field / split Transform field; delimiter; outputFields; keepSource; trimParts
Concatenate fields / concat Transform fields; outputField; separator; skipEmpty
Join / join Transform joinType (inner, left, right, full); leftInputId; rightInputId; leftKey; rightKey; conditions; keyType (auto, string, integer, number, boolean, date, datetime); strategy (auto, hash, sorted); caseSensitive; trimStrings; nullsEqual; rightPrefix
Default value / defaults Quality field; value; when (null_or_empty, null, empty)
Limit rows / limit Transform count; offset
Deduplicate / dedupe Quality fields
Row sort / sort Transform field; direction (asc, desc)
Group aggregate / aggregate Transform groupBy; metric (count, sum, avg); field; outputField
Quality check / validate Quality field; maxNullPercent
Required fields / quality_required Quality fields; maxInvalidPercent
Type check / quality_type Quality field; expectedType (string, integer, number, boolean, date, datetime); allowEmpty; maxInvalidPercent
Pattern check / quality_pattern Quality field; pattern; allowEmpty; maxInvalidPercent
Range check / quality_range Quality field; minimum; maximum; inclusive; allowEmpty; maxInvalidPercent
Allowed values / quality_domain Quality field; allowedValues; caseSensitive; allowEmpty; maxInvalidPercent

Proyección y enriquecimiento

Field selector conserva la lista de campos elegida. Field mapper relaciona nombres de origen con nombres de destino; úselo para establecer un esquema de salida reconocible por el consumidor. Revise colisiones antes de renombrar: dos conceptos distintos no deben terminar representados por un mismo nombre lógico.

Calculated field crea un campo a partir de una plantilla. ${customer} toma el valor de una columna y ${param.region} toma un parámetro. La sustitución produce texto; no interpreta una fórmula aritmética ni ejecuta JavaScript o SQL. Consulte expresiones y variables para distinguir esta plantilla de una condición de Workflow.

Convert type admite String, Integer, Number, Boolean, Date y Date and time. Output field vacío reemplaza el campo de origen; un nombre distinto permite conservar el valor inicial. On conversion error decide entre fallar, asignar nulo, conservar el original o usar un valor predeterminado. Conservar valores originales puede dejar una columna heterogénea: valide la salida antes de enviarla a una tabla tipada.

Limpieza de texto

Clean text aplica una lista ordenada de operaciones: trim, collapse_whitespace, lower, upper y remove_accents. Por defecto recorta extremos y colapsa espacios. Aplique una política coherente a ambos lados de una clave de unión. No elimine acentos de un nombre que deba conservarse legalmente sólo para facilitar una comparación; cree un campo normalizado separado cuando sea necesario.

Replace values distingue coincidencia por contenido, valor exacto, prefijo y sufijo; Case sensitive controla el tratamiento de mayúsculas. Split field divide por un delimitador y asigna Output fields, con opciones para conservar el origen y recortar partes. Concatenate fields define separador, campo de salida y omisión de valores vacíos. Ninguno de estos componentes debe confundirse con un analizador de expresiones regulares arbitrarias.

Cantidad, orden y agrupación

Row filter acepta Equals, Does not equal, Contains, Starts with, Ends with, comparadores mayor/menor con o sin igualdad, e Is not empty. Su lista de operadores no coincide con la de decisiones de Workflow. Tipifique números antes de comparar cuando el origen sea textual y valide los límites con registros exactamente iguales al umbral.

Limit rows combina Maximum rows y Rows to skip. Sirve para una ventana controlada, pero no convierte una muestra en una validación de toda la población. Row sort ordena por Field y Direction. Group aggregate agrupa por Group fields y calcula Count, Sum o Average, con Value field y Output field según corresponda. No documente medianas, percentiles ni múltiples métricas implícitas: no figuran en este catálogo.

Deduplicate configura Match fields. Es una regla de identidad, por lo que debe probarse con registros iguales en la clave y distintos en otros atributos. Confirme qué registro resulta antes de usarla para reconciliación de datos; no presuponga una política de “última actualización” que no haya modelado explícitamente.

Uniones

Join declara Inner, Left, Right y Full, padres izquierdo y derecho, claves y condiciones adicionales AND. Key type puede ser automático o un tipo explícito. Strategy distingue Automatic hash, Hash y Sorted merge. Case sensitive, Trim strings y Match nulls modifican la equivalencia de claves. Right collision prefix, inicialmente right_, permite distinguir nombres repetidos.

Compruebe unicidad y cardinalidad antes de unir. Dos coincidencias a la izquierda y tres a la derecha pueden multiplicar registros; ese resultado no es necesariamente un defecto del motor. Prepare casos sin coincidencia, con coincidencia única, con duplicados y con nulos. Un Left join debería preservar la intención de mantener registros izquierdos, pero la cantidad exacta depende de cuántas coincidencias produzca cada clave.

Reglas de calidad

Default value completa un campo cuando es nulo, vacío o cualquiera de ambos, según Apply when. Quality check controla porcentaje máximo de nulos. Required fields valida completitud de una lista. Type check valida el tipo declarado y puede permitir vacíos. Pattern check aplica un patrón. Range check define mínimo, máximo e inclusión de límites. Allowed values limita el dominio y ofrece sensibilidad a mayúsculas.

Los controles de porcentaje constituyen umbrales de aceptación; no describen una salida automática de cuarentena. No presente una regla como separación de filas válidas e inválidas si el diseño no la implementa. Establezca cero cuando ninguna infracción sea admisible y pruebe el comportamiento con una fila inválida conocida.

POC sintética de limpieza y control

Prepare un CSV con id,name,amount: dos registros válidos y un tercero con amount vacío. Conecte Flat File input → Clean text sobre name → Convert type sobre amount → Required fields sobre id y amount → Flat File output. Use trim y upper; configure conversión con Set null y calidad con Maximum invalid percent igual a cero.

La expectativa es un fallo de calidad debido al tercer registro, sin considerar esa ejecución una carga aceptada. Corrija el dato sintético de entrada, repita y verifique tres registros, nombres normalizados e importes numéricos compatibles con la salida. Si usa un destino remoto, haga esta prueba en un recurso descartable y compruebe efectos parciales antes de reintentar.

Como ampliación, prepare otra fuente con dos claves y una descripción, añada Join y compruebe manualmente el resultado esperado. Registre filas antes y después, claves sin coincidencia y duplicados. Este procedimiento es un ejercicio de aceptación para ejecutar en su entorno; no supone que un destino real ya haya sido validado.

Buscar documentación

Escriba al menos dos caracteres.

Tab para recorrer resultados · Escape para cerrar