【问题标题】:google big query - Flush data from buffer (4 days data on buffer)谷歌大查询 - 从缓冲区刷新数据(缓冲区上的 4 天数据)
【发布时间】:2017-10-23 16:30:20
【问题描述】:

我有一个将流数据流式传输到大查询的 python 实现,它类似于文档中的示例,在每个任务中我都有一个“加载 1 行到...”但是当查询表时我只得到了 30-每天 35 行(表按天分区)但是我平均收到 25k 对流式传输到表的数据的请求。当查看“get” api 调用时,它向我显示 800 行 ant 缓冲区,但是这样花了 4 天时间,我在表中看不到 4 天前的数据。

【问题讨论】:

    标签: google-app-engine google-bigquery gcloud


    【解决方案1】:

    您是否在调用 tabledata.insertAll 时为每一行提供重复数据删除 insertId?如果您对所有插入的行重复使用相同的 insertId,您将观察到与此类似的行为。

    【讨论】:

    • 嗨 shollyman,我正在使用库来生成符合 RFC 4122 的随机 ID。docs.python.org/2/library/uuid.html
    • 我正在使用版本 4 错误 = table.insert_data(rows, row_ids = str(uuid.uuid4()))
    • 鉴于这种用法,不要提供 row_ids。也就是说,由于写入的 insert_data 使用行中当前行的索引来获取从 uuid 转换为字符串的子字符串,因此您的 insert_id 可能只是单个字符或数字,而不是您期望的每行唯一的 uuid。跨度>
    • 调试 Ids 我得到了 36 个字符长度的字符串,这里是一个例子:c55a282e-8b6d-4c78-9056-e148f04daec8 我还没有找到 2 个相似的。
    • row_ids 应该是字符串列表,您传递的是 uuid4() 的字符串表示形式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-11
    相关资源
    最近更新 更多