Как отслеживать количество записей, загруженных в таблицу BQ, при использовании потоковой передачи больших запросов?

#google-cloud-platform #google-bigquery #google-cloud-dataflow #google-cloud-stackdriver

#google-cloud-platform #google-bigquery #google-cloud-поток данных #google-cloud-stackdriver

Вопрос:

Мы пытаемся вставить данные в bigquery (потоковую передачу) с помощью dataflow. Есть ли способ, с помощью которого мы можем отслеживать количество записей, вставленных в Bigquery? Эти данные нужны нам для целей согласования.

Комментарии:

1. Можете ли вы вызвать API? Если это так, вы можете вызвать Tables.get и просмотреть метаданные таблицы или выполнить запрос к ТАБЛИЦАМ с идентификатором таблицы. Дайте мне знать, возможно ли это?

2. Я попробую этот подход. Но я боюсь, что при передаче потоковых данных в BQ запрос может привести к числу, которое мы, возможно, не сможем проверить. Возможно, нам потребуется создать окно, хотя

3. Если вы просто запросите таблицу с помощью select count(*).. , даст ли это вам ответ, который вы ищете? В процессе также запрашивается буфер потоковой передачи.

4. Для согласования мне нужно начальное и окончательное количество. Я могу получить окончательное количество, которое было записано в BQ, используя count (*). Но мне нужно начальное значение, с которым можно сравнить это количество. Это начальное значение будет тем, которое должно быть получено из конвейера, который будет подсчитывать, сколько было получено записей, которые будут записаны в BQ.

5. Вам нужно выполнять эти подсчеты внутри вашего конвейера потока данных?

Ответ №1:

Добавьте шаг к вашему потоку данных, который вызывает Google API Tables.получите ИЛИ запустите этот запрос до и после потока (оба одинаково хороши).

 select row_count, table_id from `dataset.__TABLES__` where table_id = 'audit'
  

В качестве примера запрос возвращает это

введите описание изображения здесь

Комментарии:

1. Да, чтение meta из dataset выполняется быстрее, чем a COUNT(*) . Но почему это «более безопасно» ?

2. » SELECT COUNT(*) может занять некоторое время» не должно быть более медленной операцией — фактически, она сканирует 0 данных независимо от размера таблицы

3. Спасибо за ваши комментарии, я удалил запутанный текст из своего ответа

Ответ №2:

Вы также можете просмотреть «Добавленные элементы», нажав на шаг записи в bigquery в пользовательском интерфейсе потока данных.