У меня есть конвейер потока данных, который берет много файлов из корзины gcs, извлекает записи и применяет некоторые преобразования и, наконец, выводит их в паркетные файлы. Он постоянно наблюдает за файлами в корзине, что делает этот конвейер потоковой передачи, хотя на данный момент у нас есть условие завершения, чтобы остановить конвейер по прошествии 1 минуты с момента последнего нового файла. Мы тестируем с фиксированным набором файлов в корзине
Сначала я запускал этот конвейер в пакетном режиме (без непрерывного просмотра файлов), и после запроса файлов parquet в bigquery было около 36 миллионов записей. Однако, когда я включил непрерывный просмотр файлов и повторно запустил конвейер, паркетные файлы содержали только ~ 760 тыс. Записей. Я дважды проверил, что в обоих прогонах входная корзина имеет одинаковый набор файлов.
Показатели на странице сведений о потоковом задании вообще не совпадают с тем, что было выведено. Переходя к разделу Добавленные элементы (приблизительно) , говорится, что ~ 21 миллион записей (что неверно) было добавлено во входную коллекцию для последнего шага записи паркета, хотя файлы содержали ~ 760 тыс. Записей.
На том же шаге пакетного задания было правильное число (36 миллионов) для Добавленных элементов (Приблизительно) , и это было такое же количество записей в полученных файлах паркета.
Я не знаю В журналах ничего необычного не обнаружено.
Почему поток данных в облаке помечает задание потоковой передачи как успешное, даже если при записи вывода было отброшено множество записей?
Почему возникает несоответствие с отчетом метрик для пакетных и потоковых заданий в потоке данных в облаке с одним и тем же входом?
Для обоих заданий я установил 3 рабочих с типом машины n1-highmem-4. Я почти достиг своей квоты на проект.