Ever wanted to build a demo project but were frust...
# show-us-what-you-got
a
Ever wanted to build a demo project but were frustrated that all the interesting data sources require credentials? The new tap-jaffle-shop generates realistic-looking fake data you can use in samples, POCs, and tutorials. Use `meltano add extractor tap-jaffle-shop`to add it to your existing project. The speedrun version: fastparrot
Copy code
meltano init my-jaffle-demo && cd my-jaffle-demo
meltano add extractor tap-jaffle-shop
meltano add loader target-jsonl
meltano run tap-jaffle-shop target-jsonl
To see a finished end-to-end project, including dbt Transforms and Evidence BI reports, check out the new Meltano Jaffle Shop Template. This is is an extended MDS-in-a-Box approach with DuckDB as the warehouse and GitHub Pages used to publish the BI reports. Thanks to the dbtLabs team for creating the Python-based jafgen data generator and the base dbt project template. Enjoy your jaffles! 🏭 : 🥪 🥪 🥪 🥪 🥪 🥪
m
Thanks, very useful to start up. Any chance that I find the output of this in local files?
Copy code
meltano init my-jaffle-demo && cd my-jaffle-demo
meltano add extractor tap-jaffle-shop
meltano add loader target-jsonl
meltano run tap-jaffle-shop target-jsonl
a
Indeed! By default the files are stored in a folder called
output
at the base of the created project folder.
UPDATE - I'm happy to report that we've updated the DuckDB target so that it now also works with zero config, defaulting to store data in the
output
folder just like
target-jsonl
. Here's the DuckDB-centric speedrun: 🏎️ 🦆
Copy code
meltano init my-jaffle-demo2 && cd my-jaffle-demo2
meltano add extractor tap-jaffle-shop
meltano add loader target-duckdb
meltano run tap-jaffle-shop target-duckdb
And you should find the full dataset loaded into a new DuckDB database file at
my-jaffle-demo2/output/warehouse.duckdb
data party
e
t
Running this inside the
meltano/meltano:latest
Docker image I get the following error:
Copy code
root@c08fa1186d73:/project/jaffle# meltano add extractor tap-jaffle-shop
Added extractor 'tap-jaffle-shop' to your Meltano project
Variant:        meltanolabs (default)
Repository:     <https://github.com/MeltanoLabs/tap-jaffle-shop>
Documentation:  <https://hub.meltano.com/extractors/tap-jaffle-shop--meltanolabs>

Installing extractor 'tap-jaffle-shop'...
Extractor 'tap-jaffle-shop' could not be installed: failed to install plugin 'tap-jaffle-shop'.
  Running command git clone --filter=blob:none --quiet <https://github.com/MeltanoLabs/tap-jaffle-shop.git> /tmp/pip-req-build-sf9pv1hm
ERROR: Ignored the following versions that require a different python version: 0.2.1 Requires-Python >=3.10; 0.3.1 Requires-Python >=3.10
ERROR: Could not find a version that satisfies the requirement jafgen<0.4.0,>=0.3.1 (from meltanolabs-tap-jaffle-shop) (from versions: none)
ERROR: No matching distribution found for jafgen<0.4.0,>=0.3.1

Need help fixing this problem? Visit <http://melta.no/> for troubleshooting steps, or to
join our friendly Slack community.

Failed to install plugin(s)
root@c08fa1186d73:/project/jaffle#
Looks like it requires Python3.10 while that image only has Python3.9.
Using the
meltano/meltano:latest-python3.10
image it worked fine! 🎉
I found that with the following alias I was able to run everything locally with docker without needing to install anything:
Copy code
alias meltano='docker run --rm -it --user $(id -u):$(id -g) -v $(pwd):/project meltano/meltano:latest-python3.10'
a
@tobias_brandt - Thanks for calling this out! I had forgotten about the 3.10 requirement. That was the base constraint of the jafgen library. I'll open an issue upstream to see if that's an option. Also, you may try 'install --force' to ignore python constraints. (I haven't tried that myself as of yet.)
Feel free to upvote there 🙂