提问人:Idan 提问时间:2/8/2016 最后编辑:Idan 更新时间:2/23/2020 访问量:2064
BigQuery“复制表”不适用于小表
BigQuery "copy table" not working for small tables
问:
我正在尝试使用 API 将 BigQuery 表从同一数据集中的一个表复制到另一个表。 虽然复制大表似乎工作得很好,但复制行数有限 (1-10) 的小表,我注意到目标表是空的(已创建但 0 行)。 我使用 API 和 BigQuery 管理控制台得到了相同的结果。
对于我拥有的任何数据集中的任何表,都会复制该问题。看起来像一个错误或设计的行为。
在文档中找不到任何“最小行数”指令。.我错过了什么吗?
编辑:截图
原始表:2 行的 video_content_events
复制表:copy111 with 0 rows
答:
在同一数据集或不同数据集上复制表没有最小记录限制。这适用于 API 和 BigQuery 界面。我刚刚复制了您创建一个只有 2 条记录的新表的场景,并且我能够使用 UI 成功将该表复制到另一个表。
评论
你是如何填充小桌子的?您是否可能使用流式插入(命令行工具中的 bq insert,tabledata.insertAll 方法)?如果是这样,根据文档,数据最多可能需要 90 分钟才能复制/导出:
https://cloud.google.com/bigquery/streaming-data-into-bigquery#dataavailability
我不会非常详细,但原因是我们的复制和导出操作经过优化,可以处理具体化文件。流式缓冲区中的数据存储在完全不同的系统中,因此在缓冲区刷新到传统存储机制之前不会被拾取。也就是说,我们正在努力消除复制/导出延迟。
如果您不使用流式插入来填充表,那么请务必联系支持人员/在此处提交错误。
评论
我尝试复制到时间戳分区表。我搞砸了时间戳和 1000 x 当前时间戳。猜猜它超出了 BigQuery 的最大分区范围。尽管复制作业成功,但实际上不会将任何数据加载到目标表中。
评论