Does anyone have any experience developing a tap f...
# singer-tap-development
g
Does anyone have any experience developing a tap for an API which does not support query parameters for incremental runs? Unluckily, this API for my source does not offer the ability to get records past a certain date or anything so unfortunately I cannot support incremental ELTs. Is there a workaround or some custom behavior that can be implemented to get around this?
In the past, a prior approach (not using meltano) was to store each API query params in Redshift along with timestamps, and then query that table to get the list of id parameters to make each downstream API call, so it was like a hacky incremental solution. Wondering if the same can be done here?
l
Github has a similar problem on some endpoints. So for tap-github, we've done workaround where we query records from the most recent backwards, when the records pass the "starting timestamp", then we stop. Obviously, if your api does not allow ordering, then this won't work.
p
Another not so ideal approach ive seen is to iterate for all API records on every sync but have the tap only emit the events that are greater than the bookmarked timestamp, the others are just ignored. For obvious reasons its not ideal but if the amount of data isnt too big and you care more about only sending the new records to the downstream then its an option
g
Thanks everyone for responding. Can’t go with the github tap option, no way to sort the result set. I was also thinking along the lines of your solution, Pat. Although the volume of data retrieved will be the same, it still allows me to sync only that subset to my target. I suppose its the only option, and better than nothing!