Google bigquery 如何将重复字段流到bigquery中?

Google bigquery 如何将重复字段流到bigquery中?,google-bigquery,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))

我正在使用
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)
            }
        ]
    }
}
它给了我一个错误:

为非重复字段指定的数组


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

您无法更新现有行。无法添加到现有行。你需要重新考虑这一点。不要忘记BigQuery是仅附加的

行中可以有重复的字段,但必须在模式中声明为重复字段


在您的情况下,您需要在每次读取时创建新行<如果您想这样构造数据,代码>读取可以是一个记录。

正确!你应该考虑整平你的表,为每一个新的读数插入一个新的行。

所以不可能附加到一个记录上。不,这是不可能的。这里的关键短语是“BigQuy只是追加”。如果你第一次删除父行,然后用所有重复行重新添加整个行,你可以向重复的字段添加额外的行。我从不尝试更新BigQuery中的任何内容;相反,我按日期删除了大量数据,然后重新添加它们。