【问题标题】:Streaming Data into bigquery only returns partial data将数据流式传输到 bigquery 仅返回部分数据
【发布时间】:2018-11-05 15:58:35
【问题描述】:

我正在将数据流式传输到 bigquery 并且日志根本没有记录任何问题,当我运行 "SELECT * FROM datatable WHERE _PARTITIONTIME = TIMESTAMP("2018-11-05") LIMIT 1000" 它只返回 16 行,行数据随着新数据的流入而不断变化,但只返回16行。

Streaming 缓冲区统计显示缓冲区中有行。

我大约 10 小时前开始直播,所以我假设会有一些数据可以访问。

我在这里有点茫然,因为我看不到错误

这是收集到的一些样本数据

https://docs.google.com/spreadsheets/d/1Svm6cDWzSvD0RHGo_O5J16UDvqFfDAK5irNki5nYtos/edit?usp=sharing

【问题讨论】:

  • 您能否提供有关如何流式传输数据的详细信息?我想验证您是否经常覆盖前 16 行。
  • 我正在使用这个link
  • 似乎覆盖了,Streaming 缓冲区统计信息一直显示插入日志中的实际行,但实际表保持不变。
  • 有些数据在 Streaming Buffer 中而不在表中的事实应该是无关紧要的。这是内部的,数据一插入(到流缓冲区或表中)就应该被查询。 - 查询分区表的详细信息cloud.google.com/bigquery/docs/querying- partitioned-tables - 一段时间内数据可能会停留在UNPARTITIONED分区cloud.google.com/bigquery/docs/…

标签: google-bigquery


【解决方案1】:

来自the documentation

当流式传输到分区表时,流式缓冲区中的数据具有 _PARTITIONTIME 伪列的 NULL 值。

您应该将过滤器更改为:

WHERE _PARTITIONTIME IS NULL OR _PARTITIONTIME = TIMESTAMP "2018-11-05"

这将包括指定日期的数据以及当前在流缓冲区中的日期。

【讨论】:

  • 我已经尝试过了,但问题仍然存在,我可以看到数据进入,但随后在第 16 行下降。我正在使用 Mark Edmondson ga-bq-stream - github.com/MarkEdmondson1234/ga-bq-stream
  • 如果没有更多细节,很难提供有意义的建议。我不知道在这种情况下“丢弃”是什么意思,也不知道您是如何看到数据进来的。考虑更新您的问题以更具体。
  • 在日志中,我可以看到成功插入了具有唯一用户 ID 的行。当我查询 bigquery 时,我可以看到出现的特定行。但是随着新条目的插入,该行就会消失。最大行数保持在 16,表格不会随着新条目的添加而增加。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-19
  • 2016-10-19
  • 2016-08-10
  • 1970-01-01
  • 1970-01-01
  • 2020-01-27
相关资源
最近更新 更多