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

标签 google-bigquery

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

这是一些上下文。我每天都将数据从电子表格更新到 BigQuery。我正在使用带有简单 WRITE_APPEND 方法的 Google App Script。

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

我可以构建一个 sql 查询,以便每天从重复行中清除我的表吗?或者这是否有可能在导入它们之前检测到重复(例如,在我的作业定义中使用一些特定的命令......)?

谢谢 !

最佳答案

  • 步骤 1 : 有一张要导入数据的表

  • enter image description here
  • 步骤 2 :在 BigQuery 中将电子表格设置为联合数据源。

  • enter image description here
  • 步骤 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`
    )
    
    WHERE id NOT IN (...)确保仅将具有新 ID 的行加载到表中。

    关于google-bigquery - 如何避免和/或清除 BigQuery 中的重复行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48999488/

    相关文章:

    google-bigquery - 是否有元数据表来检查 BigQuery 中的表是否已分区?

    mysql - 将数据从 MySQL 迁移到 BigQuery 的最佳实践

    java - BigQuery,如何以编程方式定义类似字段的数组?

    google-bigquery - 如何在BigQuery中实现 "like"?

    google-bigquery - 在 BigQuery 中输出嵌套结果

    google-bigquery - BigQuery API 超出限制错误

    Python - 操作方法 - Big Query 异步任务

    java - 如何安全地将参数注入(inject)字符串数据库查询java?

    google-bigquery - BigQuery 中查询量的每日限制

    python - 如何修复: compairing result of a bigquery query to a list