There are many approaches for that, and some are more suitable than others.
A common approach is to import the external data into both author and publish and have components, which read this data while rendering a page. In such a scenario a scheduled import job is sufficient to trigger the import, and you might need to purge the caches for all affected pages after a successfull data import.
Another approach is to import the data only to author, and then replicate the imported data to the publish instances afterwards. And then have the components include them into the pages as described above.
It all depends on the frequency of these changes, the amount of data and pages and how fast such changes need to be reflected on the pages.