Обработка застряла на шаге WriteSuccessfulRecords … при использовании шаблона Pub / Sub -> BigQuery

#google-bigquery #google-cloud-dataflow

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

Вопрос:

Я продолжаю сталкиваться с этой проблемой при использовании определенного шаблона. Я не уверен, в чем может быть проблема.

Что касается sdk: Apache Beam SDK for Java 2.10.0

 Processing stuck in step WriteSuccessfulRecords/StreamingInserts/StreamingWriteTables/StreamingWrite for at least 05m00s without outputting or completing in state finish
  at sun.misc.Unsafe.park(Native Method)
  at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
  at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:429)
  at java.util.concurrent.FutureTask.get(FutureTask.java:191)
  at org.apache.beam.sdk.io.gcp.bigquery.BigQueryServicesImpl$DatasetServiceImpl.insertAll(BigQueryServicesImpl.java:765)
  at org.apache.beam.sdk.io.gcp.bigquery.BigQueryServicesImpl$DatasetServiceImpl.insertAll(BigQueryServicesImpl.java:829)
  at org.apache.beam.sdk.io.gcp.bigquery.StreamingWriteFn.flushRows(StreamingWriteFn.java:130)
  at org.apache.beam.sdk.io.gcp.bigquery.StreamingWriteFn.finishBundle(StreamingWriteFn.java:102)
  at org.apache.beam.sdk.io.gcp.bigquery.StreamingWriteFn$DoFnInvoker.invokeFinishBundle(Unknown Source)
  

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

1. Привет, Аскар, интересный вопрос, если вы зайдете в BigQuery WebUI и посмотрите историю своих запросов / заданий, увидите ли вы там какую-либо полезную информацию, которая могла бы помочь вам понять, что происходит? Также, если вы можете поделиться немного большей частью своего кода и на какую схему вы ориентируетесь, на какие данные?

2. Это сообщение не обязательно означает, что ваш конвейер застрял. Возможно, BigQuery работает медленно. Вы подождали еще несколько минут и все еще сталкивались с тем, что вы продолжаете получать одно и то же сообщение / ваш конвейер не будет работать?

3. Я использую шаблон, который предоставлен. Я предполагаю, что у меня создалось неправильное впечатление, что нужно указать только таблицу, и когда объект json попадет в поток данных, он сгладит его и запишет в BQ. Я все еще вижу проблему.

Ответ №1:

Кажется, что существующему шаблону требуется схема, чтобы поток данных работал. После добавления схемы проблема исчезла.