BigQuery“复制表”不适用于小表

Ida*_*dan 5 google-bigquery

我正在尝试使用 API 将 BigQuery 表从一个表复制到同一数据集中的另一个表。虽然复制大表似乎工作得很好,但复制具有有限行数 (1-10) 的小表时,我注意到目标表是空的(创建了 0 行)。我使用 API 和 BigQuery 管理控制台获得了相同的结果。

对于我拥有的任何数据集中的任何表,都会复制该问题。看起来像一个错误或设计的行为。

在文档中找不到任何“最小行数”指令..我错过了什么吗?

编辑: 截图

原始表:video_content_events 有 2 行

复制表:copy111 有 0 行

Sea*_*hen 5

您如何填充小表?您是否可能使用流式插入(从命令行工具进行 bq 插入,tabledata.insertAll 方法)?如果是这样,根据文档,数据可能需要长达 90 分钟才能复制/导出:

https://cloud.google.com/bigquery/streaming-data-into-bigquery#dataavailability

我不会太详细,但原因是我们的复制和导出操作经过优化以处理具体化文件。我们的流缓冲区中的数据存储在完全不同的系统中,因此在缓冲区刷新到传统存储机制之前不会被拾取。也就是说,我们正在努力消除复制/导出延迟。

如果您不使用流式插入来填充表,那么一定要联系支持人员/在此处提交错误。

  • 是的。最后一行不会被复制。您可以(以查询为代价)“select *”到目标表中(确保允许大结果并禁用扁平化),这将包含所有内容 - 流数据对查询和 tabledata.list 完全可见。否则,根据文档,执行一次tables.get(每隔几分钟),直到“streamingBuffer”部分消失(最多90分钟),此时复制应该获取所有行。 (2认同)