如何获得 BQ 文件加载的进度
Posted
技术标签:
【中文标题】如何获得 BQ 文件加载的进度【英文标题】:How to get progress on BQ file load 【发布时间】: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 文件被导入后,最后才会返回负载统计信息。
我们如何在上传时获得进度?
【问题讨论】:
【参考方案1】:查看statistics.load.outputBytes
根据文档 - 当加载作业处于运行状态时,此 值可能会改变
您可以尝试一下 - 如果可以通过调用 Jobs: get 将其用作进度指标
【讨论】:
不,这似乎不起作用——请查看更新后的问题。 我刚刚尝试了小得多的文件并获得了相同的体验,但认为这可能是因为文件小 - 希望这对于 1TB 文件会有所不同。感谢您更新结果!我认为文档中提到的change
要么不正确(不太可能),要么与多文件加载场景相关——当我们加载文件时,从来没有机会像在我的环境中那样玩这个(当我们移动到时不再那么频繁了)流)我们确保它们最大为 256MB,然后在我们这边处理进度以上是关于如何获得 BQ 文件加载的进度的主要内容,如果未能解决你的问题,请参考以下文章