Гарантирует ли слив задания потока данных, использующего метод записи FILE_LOAD, все элементы записаны? - PullRequest
1 голос
/ 14 апреля 2020

Вы пишете элементы в bigquery следующим образом:

pcoll.apply(BigQueryIO.writeTableRows()
     .to(destination)
     .withSchema(tableSchema)
     .withMethod(BigQueryIO.Write.Method.FILE_LOADS)
     .withTriggeringFrequency(org.joda.time.Duration.standardMinutes(10))
     .withNumFileShards(10)
     .withWriteDisposition(BigQueryIO.Write.WriteDisposition.WRITE_APPEND)
     .withCreateDisposition(BigQueryIO.Write.CreateDisposition.CREATE_IF_NEEDED));

И истощаете работу либо с помощью инструмента gcloud cli, либо через облачную консоль Google, кажется, что работа считается "опустошенной" почти мгновенно, даже если withTriggeringFrequency только что сработал раньше. Поведение функции стока таково, что она запускает все записи, если они ожидают?

1 Ответ

3 голосов
/ 14 апреля 2020

Да. Поток данных немедленно закрывает все внутрипроцессные операции windows и запускает все триггеры. После запуска «Слив» конвейер перестанет принимать новые входные данные. Входной водяной знак будет продвинут до бесконечности. Элементы, уже находящиеся в конвейере, будут продолжать обрабатываться. Слитые задания можно безопасно отменить. При вводе команды Слив.

Для справки см. Это: c от Google Эффекты увольнения с работы Эффекты увольнения с работы

...