- autor: Renata Hlavova hlavova.renata@gmail.com
- created: 2023-06-15
This package was prepared as part of the interview task. It sends data about warehouse products to Inventoro API.
The inventoro
package:
- preprocesses csv files to Duckdb-friendly format due to incompatible python dictionaries in the source files (seems that transforming python dict to DuckDB struct is very painful)
- transforms warehouse products for API
- sends warehouse products to Inventoro API
- validates that the data were sent by retriving the first row
See pyproject.toml
Install this project using poetry
.
poetry install
Run the project using poethepoet
.
poe run
- this was my first time working with DuckDB, so the main aim was to learn the tool
- working with DuckDB wasn't clean from my point of view, I had to make a lot of compromises while retrieving and loading data from and to different formats (it may be due to my low experience though)
- chaining queries is one of the main advantages of DuckDB but it was very hard to stay true to SOLID principles while also taking advantage of this. the implementation suffered due to this
- lack of in-depth DuckDB documentation
- however, the performance was good (although tried it only on small data, cannot judge performance on bigger data)
- the ETL process could be more detailed as I skipped non-mandatory fields