Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance Bigquery.go导出作业比WebGUI慢_Performance_Google App Engine_Go_Google Bigquery_Google Cloud Storage - Fatal编程技术网

Performance Bigquery.go导出作业比WebGUI慢

Performance Bigquery.go导出作业比WebGUI慢,performance,google-app-engine,go,google-bigquery,google-cloud-storage,Performance,Google App Engine,Go,Google Bigquery,Google Cloud Storage,后续行动 现在我发现我的两份工作分别需要2-4秒和8-15秒 当我从Bigquery.go客户端库运行我的两个作业时,它们会在50-70秒后完成。我使用job.Wait()并尝试了自己的轮询函数(每5秒轮询一次),但没有明显的变化。这是客户端库中的问题,是链接级别的问题还是我的代码问题 作业1(数据库查询,~5s通过控制台检查) 作业2(通过控制台检查时约12秒) 之后是一个代码为200的简单返回 我知道有些代码不起任何作用,稍后将被删除。尝试创建一个简单的可运行示例,并将其作为问题发布在git

后续行动

现在我发现我的两份工作分别需要2-4秒和8-15秒

当我从Bigquery.go客户端库运行我的两个作业时,它们会在50-70秒后完成。我使用job.Wait()并尝试了自己的轮询函数(每5秒轮询一次),但没有明显的变化。这是客户端库中的问题,是链接级别的问题还是我的代码问题

作业1(数据库查询,~5s通过控制台检查)

作业2(通过控制台检查时约12秒)

之后是一个代码为200的简单返回


我知道有些代码不起任何作用,稍后将被删除。

尝试创建一个简单的可运行示例,并将其作为问题发布在github的库问题跟踪程序上。这可能是一个实现错误。@Pentium10考虑到我将数据导出到GCS,我该怎么做?您可以使用公共数据进行导出,您可以将GCS路径保留为编辑状态只是一个猜测,但我想知道Go库是否将默认查询优先级设置为
批处理
,而不是
交互式
。您是否可以尝试显式地将
QueryPriority
设置为Interactive,看看这是否有帮助?如果您在WebUI中将其设置为
batch
,那么时报是否会排队?@GrahamPolley API至少明确表示,它将它们设置为默认的交互式,尝试创建一个简单的可运行示例,并将其作为问题发布在github的库问题跟踪器上。这可能是一个实现错误。@Pentium10考虑到我将数据导出到GCS,我该怎么做?您可以使用公共数据进行导出,您可以将GCS路径保留为编辑状态只是一个猜测,但我想知道Go库是否将默认查询优先级设置为
批处理
,而不是
交互式
。您是否可以尝试显式地将
QueryPriority
设置为Interactive,看看这是否有帮助?如果您在WebUI中将其设置为
batch
,那么times是否会排队?@GrahamPolley API至少明确表示,它将它们设置为默认的交互式
job, err := database_query.Run(ctx)
if err != nil {
    return err
}

jobID := job.ID()
job, err = client.JobFromID(ctx, jobID)
if err != nil {
    return err
}

status, err := job.Wait(ctx)
if err != nil {
    return err
}
job_extract, err := extractor.Run(ctx)
if err != nil {
    return err
}

status, err = job_extract.Wait(ctx)
if err != nil {
    return err
}
if status.Err() != nil {
    handler.Logger.Criticalf("Job failed with error %v", status.Err())
    return status.Err()
}