Почему мой конвейер потока данных Apache Beam не записывает данные в BigQuery?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему мой конвейер потока данных Apache Beam не записывает данные в BigQuery?

Сообщение Anonymous »

Я работаю над конвейером Apache Beam, который обрабатывает данные и записывает их в BigQuery. Конвейер отлично работает при использовании DirectRunner, но когда я переключаюсь на DataflowRunner, он завершается без ошибок и предупреждений, но не вставляет никаких строк в BigQuery. Кроме того, я вижу большие оставшиеся файлы во временном каталоге моего сегмента Cloud Storage (

Код: Выделить всё

gs://my-bucket/temp/bq_load/...
), а в целевой таблице данные не отображаются.
Вот структура конвейера:

Код: Выделить всё

worker_options.sdk_container_image = '...'

with beam.Pipeline(options=pipeline_options) as p:
processed_data = (
p
| "ReadFiles" >> beam.Create(FILE_LIST)
| "ProcessFiles" >> beam.ParDo(ProcessAvroFileDoFn())
| "WriteToBigQuery" >> beam.io.WriteToBigQuery(
table=f"{PROJECT_ID}:{DATASET_ID}.{TABLE_ID}",
schema=BQ_SCHEMA,
write_disposition=beam.io.BigQueryDisposition.WRITE_APPEND,
create_disposition=beam.io.BigQueryDisposition.CREATE_IF_NEEDED
)
)

Основные наблюдения:
  • Конвейер успешно работает с DirectRunner, записывая данные в BigQuery без каких-либо проблем.
    При использовании DataflowRunner конвейер завершается без ошибок и предупреждений, но:
    - Строки не записываются в BigQuery.
    - Большие временные файлы остаются в корзине (например, bq_load/...).
  • Обрабатываемые данные действительны в формате NDJSON.
  • Схема BigQuery соответствует структуре данных.
Что я пробовал:
  • Проверяя оставшиеся временные файлы, я скачал temp и проверил, что он содержит допустимые строки NDJSON. Загрузка этого файла в BigQuery вручную с помощью команды bq load работает нормально.
  • Тестирование с другими наборами данных:
    Я пробовал много разных входных данных. , но проблема сохраняется.
  • Проверка журналов потока данных:
    Я просмотрел журналы в консоли мониторинга потока данных, но не обнаружил ошибок. или предупреждения.
Я видел еще одну ветку об этом (невозможно сделать выходные данные записи луча Apache в bigquery при использовании DataflowRunner), но там ничего не решено.< /п>

Подробнее здесь: https://stackoverflow.com/questions/793 ... o-bigquery
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Почему мой конвейер потока данных Apache Beam не записывает данные в BigQuery?
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Почему мой конвейер потока данных Apache Beam не записывает данные в BigQuery?
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Почему мой конвейер потока данных Apache Beam не записывает данные в BigQuery?
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Do BigQuery.loadJobConfig () и File Loads Method of Apache Beam записать в метод BigQuery - это то же самое
    Anonymous » » в форуме Python
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Apache Beam записывает ошибку полезной нагрузки bigquery json
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»