Ir para o conteúdo

Custom Operators

Os operadores personalizados do Fracttal ETL permitem estender as capacidades de transformação além dos operadores JSON Logic padrão. Estes operadores são projetados especificamente para casos de uso comuns em integrações empresariais.

Operadores de Transformação de Dados

rename

Renomeia campos e altera seu tipo de dados.

{
  "transform": {
    "rename": [
      [{"var": "old_field"}, "new_field", "string"],
      [{"var": "birth_date"}, "fecha_nacimiento", "date"],
      [{"var": "price"}, "precio", "number"]
    ]
  }
}

Parâmetros: - field_path: Caminho para o campo a ser renomeado - new_name: Novo nome do campo - data_type: Novo tipo de dados (string, number, date, boolean)

flatten

Aplaina objetos aninhados em um único nível.

{
  "transform": {
    "flatten": {
      "data": {"var": "nested_object"},
      "separator": "_"
    }
  }
}

split_string

Divide valores de string em arrays.

{
  "transform": {
    "split_string": [
      {"var": "full_name"}, 
      " ",
      ["first_name", "last_name"]
    ]
  }
}

Operadores de Data e Hora

format_date

Formata datas para formatos especificados.

{
  "transform": {
    "format_date": [
      {"var": "date_field"},
      "from_format",
      "to_format"
    ]
  }
}

add_days

Adiciona ou subtrai dias de uma data.

{
  "transform": {
    "add_days": [
      {"var": "start_date"},
      30
    ]
  }
}

Operadores de String

clean_text

Limpa e normaliza strings de texto.

{
  "transform": {
    "clean_text": {
      "value": {"var": "text_field"},
      "trim": true,
      "lowercase": true,
      "remove_accents": true
    }
  }
}

extract_numbers

Extrai valores numéricos de strings.

{
  "transform": {
    "extract_numbers": {"var": "mixed_text"}
  }
}

Operadores Matemáticos

calculate

Realiza cálculos matemáticos.

{
  "transform": {
    "calculate": {
      "operation": "percentage",
      "value": {"var": "amount"},
      "percentage": 15
    }
  }
}

round_number

Arredonda números para casas decimais especificadas.

{
  "transform": {
    "round_number": [
      {"var": "decimal_value"},
      2
    ]
  }
}

Operadores de Array

group_by

Agrupa elementos de array por um campo.

{
  "transform": {
    "group_by": [
      {"var": "items"},
      "category"
    ]
  }
}

sort_array

Ordena arrays por critérios especificados.

{
  "transform": {
    "sort_array": [
      {"var": "items"},
      "date",
      "desc"
    ]
  }
}

Operadores de Validação

validate_email

Valida formato de email.

{
  "transform": {
    "validate_email": {"var": "email_field"}
  }
}

validate_phone

Valida formato de número de telefone.

{
  "transform": {
    "validate_phone": [
      {"var": "phone_field"},
      "BR"
    ]
  }
}

Melhores Práticas

  1. Combine operadores para transformações complexas
  2. Use validação de operadores para garantir qualidade dos dados
  3. Teste transformações com dados de amostra
  4. Documente o uso de operadores personalizados
  5. Trate erros graciosamente com valores de fallback

Exemplos

Transformação Completa de Dados de Usuário

{
  "transform": {
    "rename": [
      [{"var": "user_name"}, "name", "string"],
      [{"var": "user_email"}, "email", "string"]
    ],
    "clean_text": {
      "value": {"var": "name"},
      "trim": true,
      "lowercase": false
    },
    "validate_email": {"var": "email"}
  }
}

Padronização de Data

{
  "transform": {
    "format_date": [
      {"var": "created_at"},
      "dd/MM/yyyy",
      "yyyy-MM-dd"
    ],
    "add_days": [
      {"var": "created_at"},
      7
    ]
  }
}