如何避免和/或清除 BigQuery 中的重复行?

Sim*_*ton 5 google-bigquery

当我有潜在的重复行时,我应该如何每天在 BigQuery 中导入数据?

这是一些背景信息。我每天都会将数据从电子表格更新到 BigQuery。我正在使用 Google App Script 和简单的 WRITE_APPEND 方法。

有时我会导入前一天已经导入的数据。所以我想知道如何避免这种情况?

我可以构建一个 SQL 查询来每天清除表中的重复行吗?或者,即使在导入它们之前也可以检测到重复项(例如,使用我的作业定义中的某些特定命令......)?

谢谢 !

Fel*_*ffa 5

  • 第 1 步:准备一张包含要导入数据的工作表

在此输入图像描述

  • 第 2 步:将电子表格设置为 BigQuery 中的联合数据源。

在此输入图像描述

  • 步骤 3:使用 DML 将数据加载到现有表中

(需要#standardSql)

#standardSQL
INSERT INTO `fh-bigquery.tt.test_import_native` (id, data)
SELECT *
FROM `fh-bigquery.tt.test_import_sheet` 
WHERE id NOT IN (
  SELECT id 
  FROM `fh-bigquery.tt.test_import_native`
)
Run Code Online (Sandbox Code Playgroud)

WHERE id NOT IN (...)确保只有具有新 ID 的行才会加载到表中。