Starting Point
An international logistics and business process outsourcing provider with offices in 8 countries managed customer data, transaction data, and operational metrics across a fragmented ecosystem of over 15 different source systems:
- ERP systems: SAP and Oracle in different country organizations
- CRM: Salesforce for sales, a legacy CRM for customer service
- Operational systems: Warehouse Management, Transport Management, custom applications
- Flat files: CSV exports from partners and clients, daily delivery files
- APIs: Real-time data from IoT sensors and tracking systems
The consequences:
- No unified customer view — the same company existed in 4 systems with 4 different spellings
- Reports contradicted each other because source systems used different aggregation logic
- Manual data reconciliation consumed 3 full-time positions in the controlling team
- New reporting requirements took weeks because each data source had to be individually connected
Challenge
The requirements for an ETL platform were specific:
- Heterogeneous sources: SQL databases, REST APIs, SFTP files, SAP RFC — everything must be integrable
- Data quality: Automatic cleansing, deduplication, and validation before loading
- Scalability: 50 GB daily data volume today, estimated 200 GB in 2 years
- Self-service: The BI team should be able to create simple ETL workflows themselves — without developers
- Auditability: Every record must be traceable (source, timestamp, transformation steps)
- Cost: No six-figure enterprise ETL license
Solution
We chose KNIME Analytics Platform as the central ETL engine — for three reasons:
- Open source core: No license costs for the core platform
- Visual workflow designer: Drag-and-drop workflows that non-developers can also read and modify
- Connectors: Native support for SAP, Oracle, Salesforce, REST APIs, and file formats
Architecture
Source Systems → KNIME ETL Server → Staging Area → Data Warehouse → BI Layer
SAP (Orchestration) (Raw Data) (Star Schema) (Power BI)
Oracle (Scheduling) (Validation) (KPI Tables)
Salesforce (Monitoring) (Cleansing)
CSV/APIs (Error Handling) (Deduplication)
ETL Workflows
We implemented 35 ETL workflows in KNIME, organized in three layers:
Layer 1: Extraction (12 Workflows)
- SAP extraction via RFC connector (customer master, orders, financials)
- Oracle extraction via JDBC (operational data)
- Salesforce extraction via REST API (leads, opportunities)
- File ingestion via SFTP watcher (daily partner files)
Layer 2: Transformation (15 Workflows)
- Master data matching: fuzzy matching for customer names and addresses (Levenshtein distance)
- Deduplication: identification and merging of duplicates across source systems
- Standardization: unified formats for dates, currencies, country codes
- Calculation: derived KPIs (throughput time, utilization, cost per shipment)
Layer 3: Loading (8 Workflows)
- Incremental loading into the data warehouse (changed records only)
- Star schema population with dimension and fact tables
- Failed records routed to quarantine table with alert
Data Quality Framework
A central component of the solution was the automated data quality framework:
| Check | Rule | Action on Violation |
|---|---|---|
| Completeness | Mandatory fields populated? | Quarantine + alert |
| Plausibility | Revenue > 0, date in the future? | Warning + review |
| Consistency | Customer name in SAP = customer name in CRM? | Fuzzy match + manual review |
| Timeliness | Data older than 48 hours? | Trigger re-extraction |
| Duplicates | Same customer in multiple sources? | Apply merge rule |
Results
After 8 months in production:
- Data sources integrated: 15 (up from 6 manually connected)
- Data volume: 65 GB daily processing, reliably within the 4-hour load window
- Duplicates resolved: 12,000 customer duplicates identified and merged
- Controlling effort: 2.5 FTE saved through automatic data reconciliation
- Report creation time: from weeks to days for new reports (data is already in the warehouse)
- Data quality score: from an estimated 62% to a measured 94%
Lessons Learned
1. Data Quality Before Integration
We spent the first 6 weeks only measuring data quality — without loading anything. The discovery that 38% of customer data had quality issues fundamentally changed the project scope.
2. KNIME Is Not a Toy
The visual interface tempts the assumption that KNIME is for “simple” tasks. In practice, we implemented complex fuzzy-matching algorithms, parallel processing, and error handling — all visual but far from trivial.
3. Monitoring Is Not Optional
An ETL workflow that silently fails is worse than none at all. We implemented a monitoring dashboard that logs every workflow run: start time, duration, records processed, errors, and warnings.