Hi Meltano team Took me whole day but I resolved ...
# getting-started
i
Hi Meltano team Took me whole day but I resolved my problems dancingpanda Short writeup here - if this may help others (arm64 + tap-mysql) See the chain for the long version It was combination of several factors: 1. I am using Mac M1 with arm64 CPU. It looks like there is some native binary in pysql which doesn't build properly. I was getting weird errors like "replication strategy invalid (FULL TABLE)". Once I installed tap from source the error was better: "module mysql,replication_strategy not found, 2. tap-mysql seems to ignore "selected_by_default true", I had to add "selected": trie ( this was in github readme ) Workaround for the main problem was to use rosetta x86 emulation/prompt - and make sure to have python3.8 installed into it. I can provide longer instructions if needed. Tested with meltano 1.94, python 3.8, head of tap-mysql commit a27af469d πŸ†˜πŸ†˜πŸ†˜πŸ†˜πŸ†˜ I am learning meltano and need some help. I had problems with my RDS mysql and decided to try local server I have latest version 1.94 and trying something which should be super-easy. I see that tap-postgres is working as expected - I see the recordsΒ Β dancingpenguindancingpenguindancingpenguin I noticed that tap-mysql gives me only {"type": "STATE", "value": {"currently_syncing": null}} no errors, no records ❓❓❓ I installed mysql 8 and tap-mysql, configured it, I verified mysql connectivity with cmd line, have simple schema with a few tables. For some reason discovery fails, and config test also errors out I added --log-level=debug - but there is nothing in the stack traces (I can provide them) that explains the problem. something like
Copy code
meltano.cli.utils.CliError: Plugin configuration is invalid
Catalog discovery failed: command ['/Users/ivo/gitlab/sandbox/meltano/learn/.meltano/extractors/tap-mysql/venv/bin/tap-mysql', '--config', '/Users/ivo/gitlab/sandbox/meltano/learn/.meltano/run/tap-mysql/tap.21b7bf56-7146-48aa-926b-cab71aa6d014.config.json', '--discover'] returned 1

I am wondering - could it be related to Mac M1. I am reinstalling it now and I've noticed wheel rebuilds for showflake (which I don't use) and other stuff.
t
Hi @ivo_stoyanov. I've been working on the same thing. The most recent version of the PipelineWise tap for MySQL doesn't support MySQL 8. 😞 There's a branch in their repo that adds it but it hasn't been released yet. I got things working with the Singer tap (by adding it as a custom extractor) but I'm leery of using that... it seems unsupported and I already had to fix one bug in it. πŸ˜•
That was the conclusion I came to when I set everything up with Meltano anyway. I just grabbed the latest version of the PW tap from github and it seems to work stand-alone. πŸ€”
I was seeing a "KeyError: 255" that I traced to this problem, BTW: https://github.com/PyMySQL/PyMySQL/pull/591 If that's not what you're seeing it may not be the same issue.
i
yes, I also suspected mysql version. I also tried singer-io/tap-mysql.git instead of PW tap. discover works standalone.
In my case I have to use RDS mariadb - and noticed weird things. so I will try with mysql5.7 or mariadb but which tap to use? singer.io or PW? I saw comments like this in github
Warning: singer is basically dead, you'll have more chance talking to <https://meltano.com/> (they have a slack)
I like meltano but my evaluation doesn't go smooth so far...
t
I'm not sure either at this point. I was able to get the Singer tap working with Meltano but I'm not sure I'd want to go to production with it...
The changes to the PW tap to support MySQL 8 are fairly recent... a couple months ago, I think. So hopefully they'll have official support soon.
v
https://hub.meltano.com/taps/mysql generally the tap listed on the hub is the current known "best" version @ivo_stoyanov And yeah we need to see the full debug logs so
meltano --log-level=debug invoke tap-mysql
to be able to help at all! I'm not a mysql user myself but I'll help if I can!
With the release of the sql connector by Meltano no the SDK, I wonder how far you'd get if you hooked up mysql to the base setup (Uses SQLALchemy). If you wanted to venture that far it might be worth a few hours of time
i
I am using the default tap-mysql (which is wise and matches above), also turned the debug log I also installed mariadb 10.5 which matches my RDS source. Errors due to mysql 8 are gone. My next problem is that the tap doesn't output records as I'd expect. I have configured the catalog, I have test db with a single table with a few records. If I do invoke - no errors, no records 😞 I must be missing something simple (I have entity selected). Same with elt pipeline I am trying tap-mysql -> target-csv I don't have transform yet (can this be the problem) I will try postgres next Are you suggesting to try the SDK? It looks like I have to start debugging. Spent 1+ day already.
Attaching full log for reference
I see that tap-postgres is working as expected - I see the records dancingpenguindancingpenguindancingpenguin I noticed that tap-mysql gives me only {"type": "STATE", "value": {"currently_syncing": null}} I will try from source, on clean x86, vs mysql5 I couldn't find any mariadb tap....(so much for "binary compatible"....)
v
Sounds like you have something going, good! If not please give logs, and your meltano.yml again
i
RESOLVED dancingpenguin
v
🦜
t
I need to amend one thing I said here: the latest release of the Pipelinewise tap for MySQL (v.1.4.3) doesn't play nicely with MySQL 8. So if you install that using
meltano add extractor tap-mysql
you'll have problems. The latest code available from github works just fine though. So if you clone that repo and then add it into Meltano as a custom plugin (e.g.
meltano add --custom extractor tap-mysql
) everything pretty much Just Works.