相关疑难解决方法(0)

消除BigQuery表中的重复记录

我计划每天将增量数据附加到BigQuery表.每次我将增量数据添加到现有表时,我想从表中的现有数据中消除重复记录(基于主键列).一种方法是 -

  1. 从增量数据中收集密钥集(让我们调用它INCR_KEYS)
  2. 在 - 的行上运行查询SELECT all_cols from table where pkey_col NOT IN (INCR_KEYS),并将结果存储在新表中.
  3. 将增量数据附加到新表.

我对这种方法的关注是它创建了一个大表的副本并添加到我的账单中.

如果没有创建重复的表,是否有更好的方法来实现相同的目标?

google-bigquery

9
推荐指数
1
解决办法
7095
查看次数

除了覆盖表之外,还有其他方法可以更新Big Query中的行吗?

我有一些包含数据的包数据如下:

packageid-->string
status--->string
status_type--->string
scans--->record(repeated)
     scanid--->string
     status--->string
scannedby--->string
Run Code Online (Sandbox Code Playgroud)

每天,我有10万包的数据.每天的总包数据大小变为100 MB(大约),1个月后变为3GB.对于每个包,可以进行3-4次更新.因此,每次更新软件包(例如,仅更改状态字段)时,我是否必须覆盖软件包表?

假设我在表中有3个包的数据,现在第二个包的更新来了,我是否必须覆盖整个表(删除和添加整个数据需要每个包更新2个事务)?对于10万个包裹,总交易量将为10 ^ 5*10 ^ 5*2/2.

在没有覆盖表的情况下,还有其他原子更新方法吗?(好像该表包含100万个条目,然后包更新到来,然后覆盖整个表将是一个开销.)

overwrite sql-update google-bigquery

5
推荐指数
1
解决办法
1554
查看次数

标签 统计

google-bigquery ×2

overwrite ×1

sql-update ×1