Но интересовал именно архитектурный момент такого приложения. Данные всегда можно сжать(изменив тип данных), можно распараллелить, можно посмотреть в сторону генераторов. Всяких приемов оч много и они легко гуглятся))) а вот такое, увы, не получилось))
и 2 вариант - dask, это асинхронно, параллельно, вообще как хочется. Если этого станет недостаточно - уже замахиваться в pyspark и hadoop(bigquery)