如何将重复的字段流式传输到bigquery?

时间:2014-07-01 14:47:04

标签: google-bigquery

我正在使用tabledata().insertAll()

这是我尝试插入的一些测试数据:

row = {
    'insertId': str(i*o),
    'json': {
        'meterId': i*o,
        'erfno': str(i),
        'latitude': '123123',
        'longitude': '123123',
        'address': str(random.randint(1, 100)) + 'foobar street',
        'readings': [
            {
                'read_at': time.time(),
                'usage': random.randrange(50, 500),
                'account': 'acc' + str(i*o)
            }
        ]
    }
}

它给了我错误:

  

为非重复字段指定的数组

我希望在“读数”的同时流式传输(并因此附加到重复字段)一条记录。每分钟重复一次。

2 个答案:

答案 0 :(得分:3)

您无法更新现有行。您无法添加到现有行。你需要重新考虑这一点。别忘了BigQuery只是追加。

您可以在行中重复显示字段,但必须将其声明为模式中的字段。

在您的情况下,您需要在每次阅读时创建新行。如果您想要像这样构建数据,reading可以是记录。

答案 1 :(得分:1)

正确!您应该考虑在表格上展开,为每个新阅读插入一个新行。