从 BigQuery 中删除重复记录
Posted
技术标签:
【中文标题】从 BigQuery 中删除重复记录【英文标题】:Delete Duplicate Record From BigQuery 【发布时间】:2021-06-06 14:06:15 【问题描述】:我有一个具有列 ID 的表,它定义了唯一的记录,所有具有相同 ID 的行都是重复的,我想删除重复的行并只保留唯一的 ID
ID Data
1 2
1 2
2 3
2 3
删除后(BigQuery 表中的我的数据)
ID Data
1 2
2 3
我可以创建一个只有唯一记录的新表,但有什么方法可以更新现有表,即从表中删除重复记录。
【问题讨论】:
【参考方案1】:考虑下面(所有具有相同 ID 的行都是重复的)
select as value any_value(t)
from `project.dataset.table` t
group by id
有输出
如果重复的定义是-所有字段都重复的所有行-请考虑以下
select as value any_value(t)
from `project.dataset.table` t
group by format('%t', t)
以下是如何将其与 DDL 一起使用的示例:
create or replace table `project.dataset.table` as
select * from (
select as value any_value(t)
from `project.dataset.table` t
group by format('%t', t)
);
【讨论】:
我想更新现有表并删除重复项,该怎么做? 您可以使用create or replace table your_table as ...
和上面提供的选择 - 对吧?
但这可能是昂贵的操作,我们可以只针对重复项吗?
与删除相同的成本-但最重要的是,我怀疑在您的情况下删除是否有用!还要记住 - BQ 是一个柱状的,所以成本不是根据行数计算的,而是根据所触及的列数计算的
能否举个同表删除的例子对我有用以上是关于从 BigQuery 中删除重复记录的主要内容,如果未能解决你的问题,请参考以下文章