【发布时间】:2015-05-20 11:30:29
【问题描述】:
我使用 python sdk 创建一个新的 bigquery 表:
tableInfo = {
'tableReference':{
'datasetId':datasetId,
'projectId':projectId,
'tableId':targetTableId
},
'schema':schema
}
result = bigquery_service.tables().insert(projectId=projectId,
datasetId=datasetId,
body=tableInfo).execute()
result 变量包含 etag,id,kind,schema,selfLink,tableReference,type 创建的表信息 - 因此我假设表已正确创建。
之后我什至拿到了桌子,当我打电话给bigquery_service.tables().list(...)
问题是:
之后插入时,我仍然(经常)收到错误:Not found: MY_TABLE_NAME
我的插入函数调用如下所示:
response = bigquery_service.tabledata().insertAll(
projectId=projectId,
datasetId=datasetId,
tableId=targetTableId,
body=body).execute()
我什至多次重试插入,重试之间的睡眠时间为 3 秒。有什么想法吗?
我的 projectId 是stylight-bi-testing
在 10:00 到 12:00(UTC 时间)之间发生了很多故障
【问题讨论】:
-
您确定将正确的表名传递给插入而不是错误的常量吗?您能否在您的问题中添加项目 ID 以及错误发生的时间,BQ 团队正在检查这些帖子,并将能够进行内部调查。
-
嘿奔腾,我检查打印了上面给定的“结果”变量,并且创建的 tableId 是相同的。实际上,代码在大约 50% 的时间内工作。我使用的重试次数越多,机会就越高,但我希望有一种可靠的方式来插入数据。
-
您正在使用流式插入或作业加载?
-
我用的是流式方法(insertAll)
-
它是一个全新的表,还是你删除并重新创建它?