sheetwork is a handy open-source CLI-tool that allows non-coders to ingest Google Spreadsheets directly into their databases with control over data types, renaming, basic data sanitisation etc.
It offers a "close to no code" workflow that can still live alongside your codebase as all configuration lives in text files and is easily version-controllable. This makes it an ideal tool for teams.
⚠️ warning
sheetwork
is still in its early inception (don't get fooled by the 1 in the version). Please do some testing before you end up using it in production, and feel free to report bugs.compatibility:
- Python: 3.6, 3.7, 3.8 OS: Mac OSX >10.14, Linux
- So far all our unit tests work on Windows (tested in GitHub Actions) but no comprehensive testing has been done on this platform.
- sheetwork currently only offers support for cloud database Snowflake. However, its design follows an adapter pattern (currently in the making) and can be extended to interact with most databases. Feel free to check how you can contribute to the project or reach out on Discord..
Getting google sheets into any database often requires writing custom Python code that interacts with the Google API. That's fine if you can write Python, but it may not always be an option. On top of that, if your workflow requires you to ingest a bunch of sheets you may find yourself writing the same boiler plate code over and over.
Sheetwork offers a way to bring some DRY practices, standardisation, and simplification to basic google sheet ingestion. It won't do a lot of transformations and doesn't have room for baking in much transformational logic because we believe this is best done by fully-fledged ETL open-source tools such as dbt.
🙋🏻♂️ Want to use sheetwork
on other databases? Let's talk! (Make an issue, or ping me on Discord)
Head over to the pretty documentation.