Can both pipelines use the same beats input or does each pipeline needs its own?
They need their own inputs. The whole point of the support for multiple pipelines is that they don't share any inputs, outputs, or filters.
pipeline 1 is processing beats input, pipeline 2 is processing scheduled jdbc input. Therfore a blocking / long runnning jdbc query will not delay / block the beats pipeline
A long running JDBC query won't block the beats input since they run in separate threads anyway, but they could compete for the same filters and outputs so that could be a reason to split into multiple pipelines.
If I have logs of production and dev stage (of a monitored application) in the same elastic stack, than I could set pipline prod to 6 CPU and pipeline dev to 2 CPU.
How would you limit the CPU usage per pipeline?