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
- Combine operadores para transformações complexas
- Use validação de operadores para garantir qualidade dos dados
- Teste transformações com dados de amostra
- Documente o uso de operadores personalizados
- 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
]
}
}