插入 BigQuery 的数据流因 asia-northeast1 位置的大量文件而失败
Posted
技术标签:
【中文标题】插入 BigQuery 的数据流因 asia-northeast1 位置的大量文件而失败【英文标题】:Dataflow insert into BigQuery fails with large number of files for asia-northeast1 location 【发布时间】:2018-08-17 11:13:30 【问题描述】:我在 Cloud Composer 上使用 Cloud Storage Text to BigQuery 模板。
模板是从 Python google api 客户端踢出来的。
同一个程序
在美国位置工作正常(适用于 Dataflow 和 BigQuery)。 在 asia-northeast1 位置失败。 在 asia-northeast 位置的较少(少于 10000 个)输入文件工作正常。有人对此有任何想法吗? 出于商业原因,我想在东北亚地区执行。
更多关于失败的细节:
程序一直工作到“ReifyRenameInput”,失败了。
dataflow job failed
错误信息如下:
java.io.IOException: Unable to insert job: beam_load_textiotobigquerydataflow0releaser0806214711ca282fc3_8fca2422ccd74649b984a625f246295c_2a18c21953c26c4d4da2f8f0850da0d2_00000-0, aborting after 9 .
at org.apache.beam.sdk.io.gcp.bigquery.BigQueryServicesImpl$JobServiceImpl.startJob(BigQueryServicesImpl.java:231)
at org.apache.beam.sdk.io.gcp.bigquery.BigQueryServicesImpl$JobServiceImpl.startJob(BigQueryServicesImpl.java:202)
at org.apache.beam.sdk.io.gcp.bigquery.BigQueryServicesImpl$JobServiceImpl.startCopyJob(BigQueryServicesImpl.java:196)
at org.apache.beam.sdk.io.gcp.bigquery.WriteRename.copy(WriteRename.java:144)
at org.apache.beam.sdk.io.gcp.bigquery.WriteRename.writeRename(WriteRename.java:107)
at org.apache.beam.sdk.io.gcp.bigquery.WriteRename.processElement(WriteRename.java:80)
Caused by: com.google.api.client.googleapis.json.GoogleJsonResponseException:
404 Not Found "code" : 404, "errors" : [ "domain" : "global", "message" : "Not found: Dataset pj:datasetname", "reason" : "notFound" ], "message" : "Not found: Dataset pj:datasetname"
(pj和数据集名不是实名,是outputTable参数的项目名和数据集名)
虽然报错信息说数据集未找到,但数据集肯定存在。
此外,程序结束后在数据集中创建了一些看似临时表的新表。
【问题讨论】:
【参考方案1】:根据this public issue tracker,这是与您的 Beam SDK 版本相关的已知问题。 Beam 2.5.0 SDK版本没有这个问题。
【讨论】:
感谢您的评论,但我看不到您的页面(谷歌内的妈妈...)。请给我另一个链接好吗?以上是关于插入 BigQuery 的数据流因 asia-northeast1 位置的大量文件而失败的主要内容,如果未能解决你的问题,请参考以下文章
BigQuery 数据传输作业因内部错误而失败(错误:80038528)
BigQuery 代码因使用 pandas python 客户端库的 MemoryError 而失败