В настоящее время у меня есть задание потока данных Google Cloud, которое получает сообщения из подписки Google Cloud PubSub и записывает результаты в BigQuery с помощью Load Jobs каждые 2 минуты. Однако я, похоже, на самом деле пишу меньше строк в BigQuery, чем количество добавленных элементов, отображаемых в пользовательском интерфейсе потока данных Google Cloud для шага WriteToBigQuery:
![Dataflow Diagram](https://i.stack.imgur.com/6Y1rw.png)
![](https://i.stack.imgur.com/6MPgV.png)
Количество строк, записанных в BigQuery, составило всего около 200 000. После просмотра журналов StackDriver было несколько журналов уровня информации, в которых указывалось, что задание не выполнено и повторная попытка произошла, но не было никаких признаков того, почему задание было неудачным. Не было явных ошибок, кроме одной со следующим сообщением:
"Request failed with code 409, performed 0 retries due to IOExceptions, performed 0 retries due to unsuccessful status codes, HTTP framework says request can be retried, (caller responsible for retrying)"
Ресурс HTTP, включенный в сообщение, был:
{ "error": {
"code": 401,
"message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
"errors": [
{
"message": "Login Required.",
"domain": "global",
"reason": "required",
"location": "Authorization",
"locationType": "header"
}
],
"status": "UNAUTHENTICATED"}}
За ошибкой также последовала другая Журнал информационного уровня со следующим сообщением (вместе с кодом исключения 409):
BigQuery job {jobId=insert_job_id, location=US, project=project_id} already exists, will not retry inserting it:
Не должно быть никаких ошибок аутентификации, так как в противном случае ни одна из строк не будет записана в BigQuery, поэтому я довольно запутался здесь , Есть ли другой способ диагностики проблемы?