【问题标题】:Bigquery API for get the job informationBigquery API 用于获取工作信息
【发布时间】:2017-04-18 09:53:24
【问题描述】:

支持团队,

我正在使用 google bigquery API python lib 来测试一些操作。一个目的是获取工作信息。然后我们可以更好地控制来自 API 的所有查询。发现REST参考here中提到了一个get()方法,可以获取job信息。但是在 API python lib here 中,我找不到任何关于这个 get() 方法的文档或者可以完成相同操作的东西。

你能帮我提供任何关于 python 库中任何方法的指南文档可以获取工作信息吗?

谢谢 志宏

【问题讨论】:

    标签: google-bigquery google-apis-explorer


    【解决方案1】:

    您正在查看的是 translate API 而不是 BigQuery 的文档。请参阅BigQuery client documentation 下的job_from_resource

    【讨论】:

    • 嗨,@Elliott,感谢您的回复。实际上我尝试了 job_from_resource(),但无法使其工作。你知道我在哪里可以找到“参数”的例子吗?我在github.com/GoogleCloudPlatform/google-cloud-python/blob/master/…这里的BQ测试中找到了一些线索,但没有弄清楚。
    • 从您的问题中不清楚您要查找什么。通常,您会将另一个客户端操作的结果(例如 run_async_query)传递给它。
    • 嗨,@Elliott,很抱歉让您感到困惑。我正在尝试获取作业信息作为 REST 参考中的 get() 方法描述。您提到“另一个客户端操作的结果”,您的意思是像另一个客户端操作的 jobId 吗?是的,我知道需要 projectId 和 jobId。但我不知道如何将此信息传递给 job_from_resource() 的参数
    • 嗨,@Elliott,我想我明白你的意思了。我上面的问题是想知道如何根据现有的jobId自己构造参数。我将看到如何从另一个客户端操作获取资源字典,它是 job_from_resource() 的参数。
    • 嗨,@Elliott,使用你的建议,它有效。在客户操作后,我得到了我需要的工作信息。
    【解决方案2】:

    根据 Elliott 的建议,我在运行查询后获得了所需的作业信息,但不知道如何获取现有作业的作业信息,如果在每次操作后获取查询信息,我认为不再需要。 python代码如下:

    from google.cloud import bigquery
    client = bigquery.Client()
    query = client.run_sunc_query(sql)
    query.use_legacy_sql = False
    query.use_query_cache = True
    query.run()
    trows = query.total_rows
    billed_byte = query.total_bytes_processed
    

    更多查询信息参数见here,更多示例代码见here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 2018-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多