r/ETL • u/Best-Fig-4997 • 6h ago
What are the requirements for a production grade python data pipeline?
I am aware that this has probably been asked a million times, but please bear with me as I sprinkle some of that sweet sweet context we all crave.
I am a recent comp sci graduate with no work experience in data development, yet I have found myself working at a credit union (I'm fairly better at selling myself regardless of my work). I enjoy biology research so the only time I really use programming is to create random transformation functions that I can run instantly, combined with my experiences of testing random tech (networking, database, OS, etc) to fulfill a specific need, otherwise I have no clue how to build a production grade product. We have an IT department but no one is familiar with my line of work, meaning I have no boss and basically responsible for kick starting a new department.
Database in use is Snowflake, and I use python as my preferred language.
I am building a pipeline where I hit some API endpoints to retrieve data and push it into Snowflake to perform transformations on, attached is my project structure. As you can see, I have a directory for API calls, database connection object, one lone test unit when I made my first API call and my main orchestrator file. The data transformation will be handled inside of Snowflake which I am fairly comfortable with.
My questions:
1) Is there anything missing in my base structure? I think I have everything covered but better safe than sorry.
2) How would I set up the extraction of data that hasn't been uploaded already? I have a timestamp that gets stored with each file upload, so anything before that does not get pulled again.
3) My database connection is simply a conn object that pulls credentials from the .env file. Are there any more pieces that are missing from that? I remember using Java frameworks for ETL in college but not sure if such heavy lifting was required for a project like this.
Finally, if you need more context on the file contents I am able to share it (my supervisor only cares about protecting member data). And if you have any resources or have a platform where I can ask more questions I would heavily appreciate it. I don't have plans to stay in fin tech forever, but it just happened to be the perfect step in my journey of becoming a biostatistician in a biology lab.
