【问题标题】:How to get progress on BQ file load如何获得 BQ 文件加载的进度
【发布时间】:2017-03-29 21:12:37
【问题描述】:

将大型 csv(或其他类型)文件导入 BigQuery 时,如何获取导入进度?例如,如果我们有一个 1TB 的文件并使用 import csv 命令,我不想等待十个小时来导入文件。我们如何才能取得进展,或者这是不可能的?

https://cloud.google.com/bigquery/loading-data

现在,在加载 csv 文件之前,我们无法获取它


关于进度条:

在任务进行时,永远不会返回特定于加载任务的统计信息。统计信息仅包含开始/结束时间,Java API 将其解析为 CopyStatistics 类。

{
 "kind": "bigquery#job",
 "etag": "\"smpMas70-D1-zV2oEH0ud6qY21c/crKHebm6x2NXA6pCjE8znB7dp-E\"",
 "id": "YYY:job_l9TWVQ64YjKx7BgDufu2gReMEL0",
 "selfLink": "https://www.googleapis.com/bigquery/v2/projects/YYY/jobs/job_l9TWVQ64YjKx7BgDufu2gReMEL0",
 "jobReference": {
  "projectId": "YYY",
  "jobId": "job_l9TWVQ64YjKx7BgDufu2gReMEL0"
 },
 "configuration": {
  "load": {
   "sourceUris": [
    "gs://datadocs/afdfb50f-cbc2-47d4-985e-080cadefc963"
   ],
   "schema": {
    "fields": [
       ...
    ]
   },
   "destinationTable": {
    "projectId": "YYY",
    "datasetId": "1aaf1682dbc2403e92a0a0ed8534581f",
    "tableId": "ORIGIN"
   },
   "createDisposition": "CREATE_IF_NEEDED",
   "writeDisposition": "WRITE_EMPTY",
   "fieldDelimiter": ",",
   "skipLeadingRows": 1,
   "quote": "\"",
   "maxBadRecords": 1000,
   "allowQuotedNewlines": true,
   "sourceFormat": "CSV"
  }
 },
 "status": {
  "state": "RUNNING"
 },
 "statistics": {
  "creationTime": "1490868448431",
  "startTime": "1490868449147"
 },
 "user_email": "YYY@appspot.gserviceaccount.com"
}

只有在整个 CSV 文件被导入后,最后才会返回负载统计信息。


我们如何在上传时获得进度?

【问题讨论】:

    标签: csv google-bigquery


    【解决方案1】:

    查看statistics.load.outputBytes

    根据文档 - 当加载作业处于运行状态时,此 值可能会改变

    您可以尝试一下 - 如果可以通过调用 Jobs: get 将其用作进度指标

    【讨论】:

    • 不,这似乎不起作用——请查看更新后的问题。
    • 我刚刚尝试了小得多的文件并获得了相同的体验,但认为这可能是因为文件小 - 希望这对于 1TB 文件会有所不同。感谢您更新结果!我认为文档中提到的change 要么不正确(不太可能),要么与多文件加载场景相关——当我们加载文件时,从来没有机会像在我的环境中那样玩这个(当我们移动到时不再那么频繁了)流)我们确保它们最大为 256MB,然后在我们这边处理进度
    猜你喜欢
    • 2019-11-07
    • 2014-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    • 2018-07-19
    • 2014-12-24
    • 1970-01-01
    相关资源
    最近更新 更多