Google bigquery 无状态令牌已过期

Google bigquery 无状态令牌已过期,google-bigquery,Google Bigquery,我每天上传几个文件,其中大约一半是成功的。某些作业返回错误 BigQuery error in load operation: Token invalid - Invalid token: Stateless token expired 我在我的服务器上使用IST日期格式(如果有必要的话) 成功作业的相关日志如下所示: Waiting on job_9847e7bb715f40d994becff8e5f4ac1a ... (1s) Current status: PENDING Waitin

我每天上传几个文件,其中大约一半是成功的。某些作业返回错误

BigQuery error in load operation: Token invalid - Invalid token: Stateless token expired
我在我的服务器上使用IST日期格式(如果有必要的话)

成功作业的相关日志如下所示:

Waiting on job_9847e7bb715f40d994becff8e5f4ac1a ... (1s) Current status: PENDING 
Waiting on job_9847e7bb715f40d994becff8e5f4ac1a ... (4s) Current status: PENDING 
Waiting on job_9847e7bb715f40d994becff8e5f4ac1a ... (7s) Current status: PENDING 
Waiting on job_9847e7bb715f40d994becff8e5f4ac1a ... (10s) Current status: PENDING 
Waiting on job_9847e7bb715f40d994becff8e5f4ac1a ... (14s) Current status: PENDING 
Waiting on job_9847e7bb715f40d994becff8e5f4ac1a ... (17s) Current status: RUNNING 
Waiting on job_9847e7bb715f40d994becff8e5f4ac1a ... (20s) Current status: RUNNING 
Waiting on job_9847e7bb715f40d994becff8e5f4ac1a ... (23s) Current status: RUNNING 
Waiting on job_9847e7bb715f40d994becff8e5f4ac1a ... (26s) Current status: RUNNING 
Waiting on job_9847e7bb715f40d994becff8e5f4ac1a ... (29s) Current status: RUNNING 
Waiting on job_9847e7bb715f40d994becff8e5f4ac1a ... (32s) Current status: RUNNING 
Waiting on job_9847e7bb715f40d994becff8e5f4ac1a ... (33s) Current status: DONE 

为什么只有一些上传的文件会出错?

另一位谷歌用户向我指出了这个潜在的问题——它本质上是Python客户端库中的竞争条件(bq工具基于此)。Google OAuth 2.0访问令牌当前有效期为1小时,之后客户端库(或bq)将尝试使用存储的刷新令牌获取新令牌。但是,如果在1小时边界附近开始新的数据上载,则令牌将无效

根据这个线程,我们很快就会推出一个新版本的底层python库,这将解决bq命令行工具新版本中的问题


请参阅:

您好,请确保您使用的是最新版本的Java API客户端库(如果您使用的是Java)。两件事:1。您如何处理您的访问和刷新令牌管理?您是否正在使用当前刷新令牌请求新的访问令牌?2.确保服务器的时钟正确,并且与NTP服务器同步。我不刷新令牌。我使用命令##/home/bigquery/bq load--max#u bad_record=30000-F'^'company.junelog1/data/2012061108.log.gz oneid:STRING,ativeid:STRING,ip:STRING,cbd:STRING,country:STRING…$$如果我再试一次,有时我可以成功上传数据,而不会出现令牌过期错误。当您在bq加载操作中出现错误时,作业是否确实成功,或者客户端只是给出了一个错误?例如,如果执行
bq show-j
,它会将作业显示为成功还是失败?我的直觉是,运行以检查作业状态的循环失败,但作业实际上可能正在成功完成。当我收到此错误时,我没有获得作业id。上面显示的摘录仅是成功作业的日志。如果我再次尝试相同的命令,有时它会成功加载数据。
Waiting on job_9847e7bb715f40d994becff8e5f4ac1a ... (1s) Current status: PENDING 
Waiting on job_9847e7bb715f40d994becff8e5f4ac1a ... (4s) Current status: PENDING 
Waiting on job_9847e7bb715f40d994becff8e5f4ac1a ... (7s) Current status: PENDING 
Waiting on job_9847e7bb715f40d994becff8e5f4ac1a ... (10s) Current status: PENDING 
Waiting on job_9847e7bb715f40d994becff8e5f4ac1a ... (14s) Current status: PENDING 
Waiting on job_9847e7bb715f40d994becff8e5f4ac1a ... (17s) Current status: RUNNING 
Waiting on job_9847e7bb715f40d994becff8e5f4ac1a ... (20s) Current status: RUNNING 
Waiting on job_9847e7bb715f40d994becff8e5f4ac1a ... (23s) Current status: RUNNING 
Waiting on job_9847e7bb715f40d994becff8e5f4ac1a ... (26s) Current status: RUNNING 
Waiting on job_9847e7bb715f40d994becff8e5f4ac1a ... (29s) Current status: RUNNING 
Waiting on job_9847e7bb715f40d994becff8e5f4ac1a ... (32s) Current status: RUNNING 
Waiting on job_9847e7bb715f40d994becff8e5f4ac1a ... (33s) Current status: DONE