Я собираю информацию о рейсах.Максимальная продолжительность полета 10 часов.Я получаю информацию об отслеживании примерно каждые 1 минуту.Порядок событий нарушается при обработке в Apache Beam.После объединения всех данных я хочу перенести их в BigQuery и отбросить данные, чтобы они не занимали память.
У меня есть 2 стратегии, как это сделать:
1) Подождите 1 час иесли новых данных не поступает, передайте их в BQ
2) Каждые 15 минут запускайте свой собственный алгоритм, который проверяет, полны ли данные.
Я хочу перейти с 1), потому что это проще,Может ли мой код быть правильным?:
models = (xmls | beam.FlatMap(process_xmls))
tracking_informations = models | beam.ParDo(FilterTI())
grouped_tis = tracking_informations | beam.WindowInto(window.FixedWindows(10 * 3600), trigger=AfterProcessingTime(1 * 3600), accumulation_mode=AccumulationMode.DISCARDING) | beam.GroupByKey() | "push and merge to BQ"