I'm looking into using Beam to ingest from various sources into a PostgreSQL database, but there is something that I don't quite know how to fit into the Beam model. How to deal with "non data" tasks that would need to happen before or after the pipeline proper?
For example, creation of tables, renames of tables, migrations on existing tables. Where should all this sort of code/logic live if the fetch/ingestion of data is via Beam? Or - is this entirely outside of the Beam model? It should happen before the pipeline, or after the pipeline, but not as part of the pipeline?