For PyMNtos Local Users Group Meeting
Duration: 15-20 minutes
Audience: Local Users Group (Python/Data/IT professionals)
Format: Live demo with slides
Goal: Introduce the tool, demonstrate capabilities, gather feedback
"Good evening, everyone! Thanks for having me tonight. I'm Joe Merten, and I've been working with data migrations and ETL processes for [X years].
Tonight, I want to share something I built that's been a game-changer in my daily work – an Excel-driven ETL tool that lets you configure database migrations using spreadsheets instead of writing repetitive SQL scripts."
"Show of hands – how many of you have had to migrate data between databases? [pause for response]
Now, how many of you have written the same basic SELECT-INSERT pattern over and over again, just changing table names and column lists? [pause]
That's exactly the pain point this tool addresses. What if I told you that you could define your entire ETL process in Excel, and let Python handle all the heavy lifting?"
"Let me paint a picture of how we typically handle database migrations:
- Write custom scripts for each table migration
- Hard-code connection strings and credentials
- Manually validate column mappings
- Repeat similar code for dozens or hundreds of tables
- Maintain multiple scripts that basically do the same thing
This approach is time-consuming, error-prone, and doesn't scale well."
"In my experience, what should be a 2-hour migration task often turns into a multi-day project because of:
- Configuration errors in connection strings
- Column name mismatches between source and destination
- Missing validation that causes runtime failures
- Lack of logging making debugging a nightmare
And heaven help you if you need to make changes – you're back to editing multiple scripts."
"So I asked myself: What if we could separate the what from the how?
- The what – which tables, which columns, where they go – that's configuration
- The how – connecting to databases, validating schemas, moving data – that's code
And what's the most universal configuration tool that every business user knows? Excel!"
"Let me show you how this works. [Switch to live demo]
"First, we have our
secrets.jsonfile that stores all our database connections securely. No more hard-coded connection strings scattered across multiple files."
"Here's where the magic happens –
etl_driver.xlsx. [Open Excel file]
- The Config tab defines our source and destination databases
- Each additional tab represents a table we want to migrate
- Column names are listed exactly as they appear in the source
- Future columns for renaming and filtering (coming soon!)
"Now the Python script: [Show code structure]
- Reads the Excel configuration
- Validates every column against the actual database schema
- Builds dynamic SQL queries
- Handles all the connection management
- Provides comprehensive logging"
"Let me run this against a sample database... [Execute script]
Watch what happens:
- Script reads our configuration
- Establishes connections to both databases
- Validates each column exists in the source table
- Builds and executes the migration query
- Adds an ETL timestamp to track when data was processed
- Logs everything for audit purposes
[Show log output] Look at this detailed logging – we can see exactly what matched, what didn't, and how long everything took."
"This approach gives us several immediate wins:
For Developers:
- Write the migration logic once, reuse it everywhere
- No more copy-paste-modify coding patterns
- Built-in validation prevents runtime surprises
- Comprehensive logging for debugging
For Business Users:
- Configure migrations using familiar Excel interface
- No need to understand SQL syntax or connection strings
- Easy to review and approve migration plans
- Visual representation of what's being moved where
For Operations:
- Centralized credential management
- Audit trail of all migration activities
- Consistent error handling and logging
- Easy to schedule and automate"
"I've used this for:
- Database consolidation projects – migrating 50+ tables from legacy systems
- Data warehouse loading – regular ETL jobs defined by business analysts
- System integration – moving data between different applications
- Database platform migrations – PostgreSQL to SQL Server, etc."
"This is very much a living project. Here's what's on the roadmap:
Column Renaming: Use that 'New_Name' column to rename fields during migration
Row-Level Filtering: Implement WHERE clauses based on the 'Filter' column
Incremental Loading: Support for delta loads instead of full table replacement
Enhanced UI: Maybe a web interface for managing configurations
More Database Support: Currently works with PostgreSQL, expanding to Oracle, SQL Server, etc."
"But here's where I need your help – what features would make this most useful for your work? What pain points am I missing?"
Q: "How does this handle data types between different database systems?"
"Great question! Right now, SQLAlchemy handles most basic type conversions automatically. For complex scenarios, that's definitely a future enhancement – explicit type mapping rules in the Excel configuration."
Q: "What about performance with large datasets?"
"Currently it loads everything into memory via Pandas, so there are practical limits. For very large tables, you'd want to implement chunking or streaming. That's on the roadmap for version 2."
Q: "How do you handle schema changes in source systems?"
"The column validation catches missing columns and logs them, so your ETL won't fail silently. You'd need to update your Excel configuration when source schemas change."
Q: "Can this handle transformations beyond just column selection?"
"Right now it's focused on extract and load – basic ETL. Complex transformations would need to be handled in the source query or as a post-processing step. But that's another area for enhancement."
"Before I talk about next steps, I want to share something interesting about how this project came together – specifically the documentation you'll see when I open-source this.
I'm a developer, not a technical writer. Creating comprehensive documentation usually takes me longer than writing the actual code! So I tried something different this time.
[Show README.md on screen]
I uploaded my Python script to Claude.ai and asked it to generate a README. Look at what it created – professional formatting, clear architecture diagrams, comprehensive installation instructions, troubleshooting guides, even future enhancement roadmaps based on my TODO comments in the code.
What would have taken me hours of writing and formatting, Claude delivered in minutes. And it's not just marketing fluff – it actually understood the technical architecture and created meaningful documentation.
This is a great example of using AI as a productivity multiplier. I focus on what I do best – solving technical problems with code – and let AI handle what it does best – creating clear, comprehensive documentation.
The lesson here? Don't just use AI for coding. Use it for all the tasks around coding that slow you down."
"So here's what I'm thinking – this tool has saved me dozens of hours on recent projects, and I believe it could help others in our community.
I'm planning to:
- Open source this on GitHub with that AI-generated documentation
- Create some tutorial videos showing common use cases
- Build a small community around it for sharing configurations and enhancements
Who here would be interested in trying this out on a real project?"
"I'd love to get your feedback and hear about your use cases. You can reach me:
- Email: kc8son@yahoo.com
- GitHub: kc8son
- LinkedIn: Joe Merten
And please, stick around after the presentation – I'd love to chat about your specific ETL challenges and how this might help."
"Thanks so much for your time tonight, and thank you PyMNtos for having me. Let's make ETL a little less painful, one Excel spreadsheet at a time!"
- Have sample databases ready with test data
- Prepare the Excel configuration file with 2-3 example tables
- Test the script execution beforehand
- Have backup slides in case live demo fails
- Bring handouts with your contact information
- Keep energy high – this is solving a real problem people face
- Use concrete examples – specific table names, real column counts
- Invite participation – ask about their ETL experiences
- Be ready to adapt – gauge technical depth of audience
- Have business cards – people will want to follow up
- Collect email addresses of interested participants
- Create GitHub repository within a week
- Send follow-up email with links and resources
- Schedule one-on-one calls with seriously interested users
- Plan next presentation based on feedback
Ready to revolutionize ETL processes one spreadsheet at a time! 🚀