node-red-contrib-elt 1.0.28
Node-RED nodes for ELT operations with automatic Singer.io plugin management and schema-driven configuration
node-red-contrib-elt
A collection of Node-RED nodes for ELT (Extract, Load, Transform) operations using Singer.io taps and targets with automatic plugin management and schema-driven configuration.
Features
- Extractor Node: Extract data from various sources using Singer.io taps
- Loader Node: Load data to various destinations using Singer.io targets
- Automatic Plugin Management: Virtual environments are set up automatically
- Schema-Driven Configuration: Dynamic UI forms based on plugin schemas
- File-Based Communication: Extractor saves results to files, loader reads from them
- Retry Logic: Configurable retry attempts and timeouts
- Visual Status Indicators: Real-time status with attempt counters
Installation
Via Node-RED Palette Manager (Recommended)
- Open Node-RED in your browser
- Go to Menu → Manage palette
- Click Install tab
- Search for
node-red-contrib-elt
- Click Install
Via Command Line
cd ~/.node-red
npm install node-red-contrib-elt
Quick Start
Add Extractor Node:
- Drag
extractor
node from the palette - Configure plugin (e.g.,
tap-postgres
) - Set database connection details
- Drag
Add Loader Node:
- Drag
loader
node from the palette - Configure plugin (e.g.,
target-postgres
) - Set destination database details
- Drag
Connect Nodes:
- Wire extractor output to loader input
- Deploy the flow
Available Plugins
Extractors (Taps)
- tap-postgres: Extract from PostgreSQL databases
Loaders (Targets)
- target-csv: Load to CSV files
- target-postgres: Load to PostgreSQL databases
Configuration
Each node provides a dynamic configuration form based on the selected plugin's schema:
- Database Connection: Host, port, database name, credentials
- Retry Settings: Max attempts, timeout values
- Plugin-Specific Options: Varies by plugin type
Environment Setup
The package automatically sets up Python virtual environments with required Singer.io plugins during installation. If you encounter environment issues:
- Go to Menu → Manage palette
- Remove the
node-red-contrib-elt
package - Install it again to trigger environment setup
Usage Example
[inject] → [extractor] → [loader] → [debug]
- Inject Node: Triggers the extraction
- Extractor Node: Extracts data and saves to file
- Loader Node: Reads file and loads to destination
- Debug Node: Shows completion status
Troubleshooting
Environment Issues
- Error: "Environment not ready - reload module from palette"
- Solution: Remove and reinstall the package via palette manager
Configuration Issues
- Error: "No configuration found"
- Solution: Double-click node and configure plugin settings
Connection Issues
- Error: "Failed to connect"
- Solution: Verify database credentials and network connectivity
Requirements
- Node-RED: v2.0.0 or higher
- Node.js: v14.0.0 or higher
- Python: v3.6 or higher
- virtualenvwrapper: For automatic environment management
Support
- Issues: GitHub Issues
- Documentation: See
DEVELOPER.md
for technical details - Examples: Check the
/examples
directory
License
ISC License
Keywords
node-red, elt, etl, data-pipeline, singer, tap-postgres, target-postgres, meltano