nith3n
I answer almost all questions posed to me with a simple have you read this (confluence link )
Mixed emotions after knowing that i was almost not hired for being younger / having less experience than expected for the role. 7 years now in the same company and the same person has claimed that I hired him multiple times over the years.
CSV is a great format for humans to comprehend.
For big data systems, CSV is a arguably worse format
Row wise storage doesn't provide compression benefits like columnar storage which can significantly reduce storage needs.
Data could contain the same delimiters ( comma, newline ) as used by the parsers and introduce errors in computations. binary formats( parquet/ORC) can eliminate this issue while providing other benefits as well.
A data quality framework like deequ should help catch errors in data before you introduce the same to downstream applications in ELT.(not infalliable )
For ELT processes, always filter first before other processing.
Plan your partitions according to expected querying patterns. If reports are run country wise , then country is a good partition key or if date wise then date is a good parition key.
Be aware of data skews , you might introduce skew during partitions ( ex : partitioning by country and a few countries have large number of records compared to others.
Random thoughts
Why does every company feel the urge to copy this and also fail so badly at this
There are some rice varieties which can tolerate salinity , but not upto sea water levels.