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中的任何内容;相反,我按日期删除了大量数据,然后重新添加它们。