Ir para o conteúdo

Primeiros Passos

Instalação

Pré-requisitos

  • Python 3.11+
  • Apache Airflow 2.9.3
  • Conexões com sistemas de origem e destino

Instalação do Pacote

pip install fracttal-etl-hub

Configuração Inicial

  1. Configurar Apache Airflow

    export AIRFLOW_HOME=/path/to/airflow
    airflow db init
    

  2. Configurar Variáveis de Ambiente

    export FRACTTAL_API_KEY=your_api_key
    export DATABASE_URL=postgresql://user:pass@localhost/db
    

Configuração Básica

Estrutura de um ETL

Todo ETL no Fracttal segue esta estrutura JSON-RPC 2.0:

{
  "id": "unique-request-id",
  "jsonrpc": "2.0",
  "method": "etl.etl_update",
  "params": {
    "id": "unique-config-id",
    "config": {
      "source": { /* configuração de origem */ },
      "transform": { /* lógica de transformação */ },
      "target": { /* configuração de destino */ },
      "settings": { /* configurações adicionais */ }
    },
    "environment": "production"
  }
}

Conexão Básica

"source": {
  "connection": {
    "id_type": 1,
    "name": "Database"
  },
  "operation": "list_table",
  "parameters": {
    "table": "users"
  }
}

Primeiro ETL

Vamos criar um ETL simples que extrai dados de um banco de dados e os carrega no Google Sheets.

1. Preparar a Configuração

{
  "id": "etl-example-001",
  "jsonrpc": "2.0",
  "method": "etl.etl_update",
  "params": {
    "id": "config-example-001",
    "config": {
      "source": {
        "connection": {
          "id_type": 1,
          "name": "PostgreSQL",
          "parameters": {
            "host": "localhost",
            "port": 5432,
            "database": "myapp",
            "username": "etl_user",
            "password": "secure_password"
          }
        },
        "operation": "list_table",
        "parameters": {
          "table": "customers"
        }
      },
      "transform": {
        "rename": [
          [{"var": "first_name"}, "nome", "string"],
          [{"var": "last_name"}, "sobrenome", "string"],
          [{"var": "email"}, "email", "string"]
        ]
      },
      "target": {
        "connection": {
          "id_type": 3,
          "name": "Google Sheets",
          "parameters": {
            "credentials_file": "/path/to/service-account.json",
            "spreadsheet_id": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"
          }
        },
        "operation": "append",
        "parameters": {
          "sheet_name": "Customers"
        }
      }
    },
    "environment": "develop"
  }
}

2. Executar o ETL

from fracttal_etl import ETLHub

hub = ETLHub()
result = hub.execute_etl(etl_config)
print(f"ETL executado: {result}")

3. Verificar Resultados

Os dados terão sido carregados na planilha "Customers" do Google Sheet especificado.

Próximos Passos