For folks deploying meltano on Azure App Jobs or A...
# docker
h
For folks deploying meltano on Azure App Jobs or AWS batch (or comparable service). How do you handle scaling up your container if it encounters an OOM error?
v
for aws batch I up the memory
Generally if you need to do that though there's something up with your tap/target as the design of taps/targets and singer is not memory heavy
h
I see. would the memory consumption be roughly constant even if the volume of data fluctuates? I would assume that the memory usage would fluctuate • with # of rows transferred (e.g. if on some days the source system sees an abnormal amount of updates or a full refresh is triggered). i'm basing this assumption because bulk loading would require rows to be buffered on the target side, and I'm not sure if the tap will generally fetch each "page" of data, pipe it over and then free that memory before fetching another "page" of data. • as additional fields are added to the stream (since each record now needs more memory)
v
really it should only max at the buffer size for the target
Personally I'd just bump the memory and not worry about it until it becomes obnoxious or too costly
āœ… 2
Servers are cheap people are expensive
āœ… 1
l
We run in cloudrun jobs and do one tap one table. It makes config and scheduling a bit more verbose. But we don't have to think about things like scaling containers when adding more tables etc. I also think it makes state management a bit easier as you have one state file one table.
worth mentioning is that we use a target that writes out for every X thousand records recieved. So we shouldn't get problem with a lot of records for one day. We could of course experience problems if someone add a lot of new fields. But as we do one table one tap it would only impact that table and then we can create a new upscaled version of a cloudrun job to use for that table. But haven't run into that issue yet.
h
yes. im a big fan of splitting containers by stream. i do this through tap inheritance, and the meltano invocation looks like meltano run tap-source-streamname target-destination
šŸ‘ 1